3. ⼤语⾔模型深度学习背景知识

news2024/11/15 19:32:14

1. LLM⼤语⾔模型⼀般训练过程

Step 1.预训练阶段
Step 2.微调阶段
  1. ⼤模型⾸先在⼤量的⽆标签数据上进⾏训练,预训练的最终⽬的是让模型学习到语⾔的统计规律和⼀般知识。在这个过程中模型能够学习到词语的语义、句⼦的语法结构、以及⽂本的⼀般知识和上下⽂信息。需要注意的是,预训练本质上是⼀个⽆监督学习过程;

    得到预训练模型(Pretrained Model),也被称为基座模型(Base Model),模型具备通⽤的预测能⼒。如GLM-130B模型、OpenAI的A、B、C、D四⼤模型,都是基座模型;

  2. 预训练好的模型然后在特定任务的数据上进⾏进⼀步的训练。这个过程通常涉及对模型的权重进⾏微⼩的调整,以使其更好地适应特定的任务;

    得到最终能⼒各异的模型,例如gpt code系列、gpt text系列、ChatGLM-6B等模型;

2. 关于大模型微调

2.1 什么是⼤模型微调?

感性理解:⼤模型微调指的是“喂”给模型更多信息,对模型的特定功能进⾏“调教”,即通过输⼊特定领域的数据集,让其学习这个领域的知识,从⽽让⼤模型能够更好的完成特定领域的NLP任务,例如情感分析、命名实体识别、⽂本分类、对话聊天等;

2.2 为什么需要微调?

  • 核⼼原因:需要“赋予”⼤模型更加定制化的功能,例如结合本地知识库进⾏检索、围绕特定领域问题进⾏问答等;
  • 例如,VisualGLM是通⽤多模态⼤模型,但应⽤于医学影像判别领域,则需要代⼊医学影像领域的数据集来进⾏⼤模型微调,从⽽使得模型能够更好的围绕医学影像图⽚进⾏识别;
  • 就像机器学习模型的超参数优化,只有调整了超参数,才能让模型更佳适⽤于当前的数据集;
  • 同时,⼤模型是可以多次进⾏微调,每次微调都是⼀次能⼒的调整,即我们可以在现有的、已经具备某些特定能⼒的⼤模型基础上进⼀步进⾏微调;

3. 深度学习基础概念

3.1 预训练模型的核⼼模型特性:⾃回归与⽣成式

⾃回归概念,⼤模型的预训练过程是采⽤了⼀种名为⾃回归(Autoregressive)的⽅法,⾃回归模型是⼀种序列模型,它在预测下⼀个输出时,会将之前的所有输出作为输⼊,然后根据统计规律、结合已经输⼊的样本,预测下个位置各单词出现的概率,然后输出概率最⼤的单词,类似于完形填空;
在这里插入图片描述
⽣成式概念:与之类似的还有⼀个名为⽣成式模型的概念,也就是GPT中的G(Generative),所谓⽣成式模型的预测过程和⾃回归模型类似,都是根据统计规律预测下个单词的概率,所不同的是,⽣成式模型可以根据之前的样本的概率分布⽣成下⼀个词,⽣成式模型预测时会存在⼀定的随机性

  • 不过⾃回归和⽣成式模型并不冲突,例如对于GPT来说,就是⼀个⾃回归⽣成式模型;
  • ⼀个⾃回归⽣成式模型在进⾏预测的时候,会⾸先根据⾃回归模型,在参考到⽬前为⽌已经⽣成的词的情况下确定下⼀个词的概率分布,然后再根据⽣成式的⽅式来根据这个分布⽣成下⼀个词;
  • 从最终的表现上来看,GPT这类⾃回归⽣成式模型在完成预训练之后,就获得了所谓的“Zero-Shot”或“Few-Shot”学习。即使没有针对新任务的训练数据,预训练模型也可以在新任务上有⼀定的表现;

3.2 ⾃回归模型预测过程的极简示例

在这里插入图片描述

  • ⼤模型能够创建语意连贯的句⼦,但其本身并不理解句⼦的含义;
  • 正是因为GPT的⽣成性的特性,所以很多时候会“编造”⼀些事实;
  • 预训练的过程实际上就是“⼤⼒出奇迹”的过程,模型参数越多、输⼊的数据越多,就越能够“读书百遍、其义⾃现

3.3 双向⾃回归与⾃回归

主要的区别就在于⾃回归模型只看前⽂,⽽双向⾃回归模型会同时考虑前⽂和后⽂。

  • ⾃回归预训练:在这种⽅法中,模型在预测下⼀个词时,只会考虑已经看过的词(即前⽂)。例如,如果你正在阅读这个句⼦:“我喜欢吃…”,⾃回归模型会根据“我喜欢吃”来预测下⼀个词。这种⽅式类似于我们⼈类阅读⽂本的⽅式,我们通常是从左到右,⼀次读⼀个词,然后根据已读的内容预测下⼀个词。GPT系列模型就是使⽤⾃回归预训练的;
  • 双向⾃回归预训练:在这种⽅法中,模型在预测某个词时,会同时考虑该词的前⽂和后⽂。例如,如果你正在阅读这个句⼦:“我喜欢吃…苹果”,即使"苹果"这个词是被预测的⽬标,双向⾃回归模型仍会考虑“我喜欢吃”(前⽂)和“苹果”(后⽂)来预测这个词。这种⽅式类似于你同时读到了整个句⼦,然后再去理解每个词的含义。BERT和GLM模型就是采⽤的双向⾃回归进⾏预训练;

3.4 ⽣成式模型与判别模型

很⻓⼀段时间,⽣成模型效果⼀直不如判别模型,直⾄“⼤模型”涌现能⼒出现

  • ⽣成式模型:判别式模型直接学习输⼊到输出的映射,判别模型试图找到输⼊和输出之间的直接关系,⽽不是试图理解输⼊数据或输出数据的整体分布,因此通常在⼩规模数据和模型中能得到更好的性能。此外,判别式模型的训练过程通常⽐⽣成式模型更加稳定和直接;
  • 判别类模型:试图学习数据的整体分布,这通常需要更⼤规模的模型和数据。在⼩规模模型中,学习这种复杂的分布可能会⾮常困难。因此,在深度学习早期,⽣成式模型的应⽤确实相对有限。然⽽,随着计算能⼒的提升和⼤规模数据集的出现,⽣成式模型的潜⼒逐渐得到展现;

⼀个经过预训练的⼤语⾔模型,就具备“⼀定程度的”通⽤能⼒,⽽只有经过微调,才能够让模型具备解决某项具体任务的能⼒

4. 大模型微调

4.1 微调算法基本背景介绍

  • 微调并不是⼤模型领域独有的概念,⽽是伴随着深度学习技术发展,⾃然诞⽣的⼀个技术分⽀,旨在能够有针对性的调整深度学习模型的参数(或者模型结构),从⽽能够使得其更佳⾼效的执⾏某些特定任务,⽽不⽤重复训练模型;
  • 伴随着⼤模型技术的蓬勃发展,微调技术⼀跃成为⼤模型⼯程师必须要掌握的核⼼技术。并且,伴随着⼤模型技术的蓬勃发展,越来越多的微调技术也在不断涌现;

4.2 微调算法核⼼概念介绍

  • 微调数据:不同于⼤模型预训练过程可以代⼊⽆标签样本,深度学习模型微调过程需要代⼊有标签的样本来进⾏训练,微调的本质是⼀个有监督学习过程;
  • 微调的本质:相⽐海量数据在超⼤规模模型上进⾏预训练,微调只需要⼀部分有标签数据、并对模型的部分参数进⾏修改即可使得模型获得某种特殊能⼒;因此,从所需数据量和算⼒消耗来看,相⽐于训练微调的⻔槛和成本都要低很多;
  • 例如:对于⼀个经过预训练的⼤模型,如果我们代⼊诸多标有“垃圾邮件”和“⾮垃圾邮件”的标签⽂本进⾏训练,则可训练其具备垃圾邮件分类这⼀能⼒;
  • 从模型本身⻆度⽽⾔:微调阶段相当于是进⼀步进⾏训练,该过程会修改模型参数,并最终使模型“记住”了这些额外信息;让⼤模型永久记住信息的唯⼀⽅法就是修改参数;
  • 有监督微调:supervised fine-tuning,简称SFT;
  • 数据标注:⾼质量的有标签数据集在微调过程中必不可少, 数据标注⼯作则是⽤于创建这些有标签的数据集;伴随着⼤模型发展,⼈们也在尝试使⽤⼤模型来完成很多数据标注⼯作;

4.3 提示⼯程(prompt)

提示⼯程也能让模型暂时记住⼀些信息

  • 除了微调外,提示⼯程也能通过让⼤模型“暂时记住”某些信息,从⽽影响或优化模型输出结果;
  • 从算法原理层⾯来说,当⼀个模型接收到⼀个输⼊时,它会在内部创建⼀个表示这个输⼊的数字向量,这被称为模型的”隐藏状态"。然后,模型使⽤这个隐藏状态来⽣成⼀个回答。模型的隐藏状态是基于其接收到的所有输⼊⽣成的,因此它包含了模型当前所"知道"的所有信息。这也是为什么模型的输出可能会受到输⼊的所有部分(包括上下⽂)的影响。
  • 不过,⼤模型的隐藏状态是有接受信息的上限的,当超过这个上限,模型就会“遗忘”最开始的信息。这也就是为什么ChatGPT在进⾏对话的时候会有Token上限。也正是因为存在上限,提示⼯程在让模型“记住”信息⽅⾯,作⽤有限;

4.4 ⼤模型时代AI应⽤开发的新范式

  • NLP“⼩模型”时代开发流程:⼀个(类)场景训练⼀个模型。在传统的⾃然语⾔处理(NLP)中,通常会针对每个具体任务(如情感分析、命名实体识别、⽂本分类等)训练⼀个专⻔的模型。这些模型通常需要⼤量的标注数据,并且通常很难泛化到不同的任务或
    不同类型的数据;
  • 通⽤⼤模型时代:⼀个通⽤的⼤模型能够在很多领域完成Zero-Shot。伴随着⼤模型的诞⽣,这些经过海量数据预训练的⼤模型已经能够在预训练阶段学习到了丰富的语⾔知识,包括语法、词汇、⼀般常识和⼀些任务相关的模式。因此,这些模型在许多通⽤的⾃然语⾔处理(NLP)任务上,即使没有接受过特定任务的训练,也能够达到很好的效果
  • ⼤模型时代的开发流程:由于通⽤⼤模型在很多通⽤NLP任务上都有⾮常好的表现,因此针对某项特定的任务,我们只需要选择⼀个⼤模型,然后带⼊特定领域的专业数据集对其进⾏微调,即可⾮常⾼效的完成对应任务;
    一个任务单独训练一个模型
    选择一个大模型围绕具体任务进行微调

如何进行微调后续待更

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1436192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端实现标题滚动点击导航

效果图 右边滚动的html代码 <div class"right-box"><el-tabs v-model"isScrollNow" tab-position"right" class"updateTab" tab-click"scrollTo"style"height: fit-content;"><el-tab-pane label…

怎么把视频音乐提取成mp3?分享详细工具和方法!

在数字媒体时代&#xff0c;音乐已经成为我们生活中不可或缺的一部分。有时候&#xff0c;我们会在社交媒体、视频分享网站或在线视频平台上看到一些非常喜欢的视频音乐&#xff0c;想要将其保存为MP3格式以便随时随地聆听。那么&#xff0c;如何从视频中提取音乐并转换为MP3格…

Python操作Word表格对齐、单元格对齐

通过Table的alignment可以设置表格居左对齐、居中对齐、居右对齐。通过Cell的vertical_alignment可以设置垂直位置。通过单元格里段落的alignment可以设置文本的左右对齐方式。 import docx from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from…

@Repository注解的作用和用法,以及和@Mapper的区别

1、Repository的作用 Repository是属于Spring的注解。它用来标注访问层的类&#xff08;Dao层&#xff09;&#xff0c;它表示一个仓库&#xff0c;主要用于封装对于数据库的访问。其实现方式与Component注解相同&#xff0c;只是为了明确类的作用而设立。 即Repository是Comp…

Qt:QFileDialog

目录 一、介绍 二、功能 三、具体事例 1、将某个界面保存为图片&#xff0c;后缀名可选PNG、JPEG、SVG等 一、介绍 QFileDialog提供了一个对话框&#xff0c;允许用户选择文件或者目录&#xff0c;也允许用户遍历文件系统&#xff0c;用以选择一个或多个文件或者目录。 QF…

基于Java超市管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

牛客网--------------小红统计区间(easy)

题目描述&#xff1a; 本题为easy版本&#xff0c;和hard版本的唯一区别是aia_iai​保证是正整数&#xff01; 小红拿到了一个数组&#xff0c;她想知道&#xff0c;有多少非空区间满足区间所有元素之和不小于kkk&#xff1f; 输入描述: 输出描述: 输出一个整数表示满足条件的非…

Camunda流程引擎数据库架构

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;数据库架构…

WINDOWS搭建NFS服务器

下载并安装 Networking Software for Windows 启动配置 找到安装目录&#xff08;如C:\Program Files\nfsd&#xff09;&#xff0c;双击nfsctl.exe&#xff0c;菜单Edit->Preferences 启动后&#xff1a; 配置Export Exports->Edit exports file 其他的几句我都删除…

[Linux] 网络编程套接字

目录 预备知识 网络字节序 网络字节序和主机字节序转换的库函数 socket编程接口 socket常见API sockaddr结构 套接字的种类 预备知识 1.在IP数据包头部中&#xff0c;有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。 2.端口号&#xff1a;是传输层协议的内容…

速过计算机二级python——第八讲:基本编程

第八讲:基本编程 基本编程题【15 分】简单应用题【25 分】综合应用题【20 分】**问题一**【5分】问题二【5 分】问题二【10 分】小结基本编程题【15 分】 考生文件夹下存在一个文件 PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:【5 分】键盘输入正整数 n,按要…

EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读

导语 本文记录了今年的自然语言处理国际顶级会议EMNLP 2023中接收的所有与Text-to-SQL相关&#xff08;通过搜索标题关键词查找得到&#xff0c;可能不全&#xff09;的论文&#xff0c;共计12篇&#xff0c;包含5篇正会论文和7篇Findings论文&#xff0c;以下是对这些论文的略…

国图公考:公务员面试资格复审需要准备什么?

参加国考面试的考生在资格审核阶段需要准备以下材料&#xff1a; 1、本人身份证、学生证或工作证复印件。 2、公共科目笔试准考证复印件。 3、考试报名登记表。 4、本(专)科、研究生各阶段学历、学位证书(应届毕业生没有可以暂时不提供)。 5、报名资料上填写的各类证书材料…

Debezium发布历史103

原文地址&#xff1a; https://debezium.io/blog/2021/03/18/understanding-non-key-joins-with-quarkus-extension-for-kafka-streams/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 了解 Kafka Streams 的 Q…

文心一言用户规模破亿 /微软宣布:支付费用延长旧版Windows 10使用寿命|魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; &#x1f525;资讯预览 百度大模型重要突破&#xff0c;文心一言用户规模破亿&#xff0c;飞桨开发者…

LeetCode、198. 打家劫舍【中等,一维线性DP】

文章目录 前言LeetCode、198. 打家劫舍【中等&#xff0c;一维线性DP】题目及分类思路线性DP&#xff08;一维&#xff09; 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注…

Netty源码 之 bind绑定流程

1.Netty框架总览 Netty是一个基于NIO异步通信框架 Netty框架是由许多组件&#xff0c;优化的数据结构所构建成。 正是通过灵活的组件构建&#xff0c;优化后的数据结构&#xff0c;进而才能保证Netty框架面对高并发场景具有一定的能力 1.1 Netty相关组件 Netty重要的组件有…

SpringBoot中使用Spring自带线程池ThreadPoolTaskExecutor与Java8CompletableFuture实现异步任务示例

场景 关于线程池的使用&#xff1a; Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)&#xff1a; Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorservice executorservice executors.newfix-CSDN博客 Java中创建线程的方式…

Unity_ShaderGraph节点问题

Unity_ShaderGraph节点问题 Unity版本&#xff1a;Unity2023.1.19 为什么在Unity2023.1.19的Shader Graph中找不见PBR Master节点&#xff1f; 以下这个PBR Maste从何而来&#xff1f;

Arthas使用教程—— 阿里开源线上监控诊断产品

文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 &#xff1a;启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 &#xff08;类比 jinfo&#xff09;3.6 通过 jad 来反编译 …