LLM中的微调演变

news2024/11/28 0:45:50

目录

  • 微调演变
  • InstructGPT的训练

微调演变

首先是任务驱动了微调的发展,GPT1和BERT遵循经典的预训练+微调范式,到GPT3时期,预训练任务表现为句子接龙,给定前文持续预测下一个word,当模型参数规模和训练数据增大后,GPT3面对few shot甚至是zero shot任务的表现都超越了原本的SOTA方法。

下面是几个关于zero shot,few shot,经典微调的例子(以机器翻译问题为例):
fig1

  • 右侧是经典微调示例,预训练的模型通过特定任务数据集进行微调训练,其中会涉及梯度更新(gradient update),训练至收敛后的模型才具备良好的翻译能力。左侧是GPT3在零样本(只给出任务描述,task description),单样本(给出任务描述+一个样本),少样本(任务描述+少量样本)的情况下的工作流程。

不管是零样本,还是少样本,都没有要求更新参数,这也引发了In context learning的研究。

零样本或少样本任务看似美好,但却受task description和prompt有很大影响,因此,FLAN(Finetuned Language Models Are Zero-Shot Learners)重新利用微调,弱化task description和prompt的影响,发挥作用的就是指令微调(Instruction Fine-Tuning,IFT)。IFT数据由三个主要组成部分组成:指令、输入和输出,对于给定的指令(指令可以由人工编写),可以有多个输入和输出实例:
fig2

相比于GPT-3和经典finetune范式,FLAN的核心思想是:

  • 当面对给定的任务A时,首先将模型在大量的其他不同类型的任务比如B、C、D上进行微调,微调的方式是将任务的指令与输入输出进行拼接(可以理解为一种新的prompt),有监督指令微调(Supervised Instruction Fine-Tuning,SIFT)后,给出任务A的指令和输入,直接进行推断。

这样做可以实现:当模型根据"指令"完成了微调阶段的各种任务后(将指令拼接在微调数据的前面),在面对从未见过的自然语言推理任务的指令比如"这段话能从假设中推导出来吗"时,就能更好地调动出已有的知识回答问题,其相当于通过指令微调之后,模型可以更好的做之前训练时没见过的新任务且降低了对prompt的敏感度(不需要再设计特定prompt也能激发模型更好地回答自然语言问题)。

为了让LLM具备更强的推理能力,在prompt learning的发展中出现了思维链(Chain-of-thought,CoT)。这是一种新的prompt机制,其本质是给模型看到推理步骤的prompt,让其模仿推理,从而求解简单的问题。
fig3

  • 左边为标准的1-shot prompt,右边为加入CoT的1-shot prompt。注意,CoT和IFT并不冲突,CoT是在数据层面增加额外的句子,IFT则是在任务层面加上指令。

此后,CoT技术被应用到0-shot和few-shot任务中,并且在21年引出了"let’s think step by step"的新闻:
fig4

InstructGPT的训练

fig5

  • 其中,labeler为人工,即human。SFT,RM,PPO都是GPT3模型,但因为不同的训练方式,使其参数不同。

InstructGPT的训练包括3个阶段:

step 1,利用人类的问答对数据对GPT3进行有监督训练得到SFT模型,OpenAI设计了一个prompt dataset,里面有大量的提示样本,prompt为各种各样的问题描述,然后,找了一个团队对这个prompt dataset进行标注(本质就是人工回答问题,给每个prompt一个答案)。最终得到大小为13k的数据集,其中都是"问题-答案pair",用这个数据集有监督微调GPT3,得到SFT模型,其大小为175B。

step 2,用上一阶段的SFT模型初始化新的GPT3,叫做RM模型,继续从prompt dataset中采样prompt,注意这里是不需要step 1中的label的,具体做法上不止prompt dataset,还会扩展一些新的问题,只要问题即可。然后由SFT生成多个答案,比如4个。至于如何得到多个答案,原因在于模型每次预测一个词都有对应的概率,根据不同的概率大小可以采样出很多答案,比如通过beam search保留4个当前最优的答案(beam search相当于贪心算法的加强版,除了最好的答案外,还会保留多个比较好的答案供选择)。

接着人工(即labeler)对这4个回答的好坏进行排序(得到新的标注),排序的结果用来训练奖励模型RM,目的是学习排序结果从而理解人类的偏好。训练RM是有监督的,扩充问题并包括排序标注后的数据集大小为33k。

step 3,利用SFT模型初始化GPT3得到名称为PPO的模型,并新建一个大小为31k的只有问题的数据集,此时用PPO模型对每个问题生成4个答案,然后用RM模型进行排序(这里注意,排序结果对应一个得分,令ABCD为4个答案,比如D=C=A=B的得分是最高的,大于D>C>A>B,这个得分被称为奖励)。

通过不断更大化奖励从而优化生成策略(生成策略也就是PPO模型,生成策略更好,代表模型的回答会更好,得到的多个答案都符合人类偏好),策略优化的过程中使用PPO算法限制策略更新范围。根据优化后的策略再次生成→RM再评估→模型再优化后再生成,如此循环,直到策略最优为止。


PPO策略的目的是确保优化后的策略与优化前的策略差距不会太大,也就是让优化前后的回答差异不会太偏离,不至于step 3训练发散。

综上,step 1是SFT(有监督微调),step 2和step 3被称为RLHF,即具有人类反馈的强化学习。


上面的策略可以让GPT在单轮对话上具有出色的表现,对于多轮对话,则存在某一轮对话中的词指向上一轮对话中的某个人或物的可能,简单的解决方案是:

  • 在回答用户问题的过程中,每段对话都是一个序列,把之前的对话内容(需要对历史对话数据的规模做个限制,比如限制在8k大小,比如GPT4可以处理的上下文大小最高可达32k)都保存下来,和当前的输入一起作为新的输入给模型;得益于Transformer的自注意力机制,使得模型能够理解不同对话历史之间的依赖关系,并在生成回答时考虑到之前的对话历史,此外,模型还使用位置编码来区分每个对话历史的位置,确保模型可以正确地捕捉到对话历史的顺序信息。

参考:https://blog.csdn.net/v_JULY_v/article/details/128579457

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

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

相关文章

【从零学习python 】11.Python循环语句和控制流程

文章目录 while 语法for循环for循环的格式range break和continuebreak的使用continue的使用 嵌套循环while嵌套的格式语法结构:练习题答案进阶案例 while 语法 while 判断条件:代码块我们发现,while循环的语法结构和if语句的结构很相像,那么这两个之间有…

CSS-grid布局

网格布局也叫grid布局,平常写样式的时候基本上都是用的flex布局。 像以下布局,用flex布局就可能会有有点麻烦,这时候用grid布局就方便的多了。 或者是照片墙 grid布局就是将容器划分为行和列,产生单元格,然后在指定的…

幻读怎么复现

大家好,我是想想。 很久没有给大家分享技术了,主要在计划一些事情,几乎没什么时间爽文了。 今天从实操上实现了MySQL事务隔离复现问题,就记录分享给大家吧。 正文 我们知道,著名的四大事务特性ACID特性 Atomicity…

Mongodb管道函数操作数组,过滤,数组截取,条件分支,字符串合并

(学习的本质,不在于记住哪些知识,而在于它触发了你的思考——迈克尔桑德尔) 假如有以下数据结构 其中features内value的数据结构是可变的 {"_id": {"$oid": "64bd0b17258d09faf6ebb6ee"},"i…

wpf控件上移下移,调整子集控件显示顺序

页面代码&#xff1a; <!-- 导出A2&#xff0c;自定义导出设置列&#xff0c;添加时间&#xff1a;2023-8-9 14:14:18&#xff0c;作者&#xff1a;whl&#xff1b; --><Window x:Class"WpfSnqkGasAnalysis.WindowGasExportA2"xmlns"http://schemas.…

【福建事业单位-资料分析】03 比重和平均数

【福建事业单位-资料分析】03 比重和平均数 一、比重&#xff08;现期比重&#xff0c;基期比重、两期比重&#xff09;1.1 现期比重增长贡献量&#xff0c;利润率 1.2基期比重&#xff08;用现期和增长率逆求&#xff09;1.3两期比重&#xff08;难点重点&#xff09;——比较…

工厂食堂就餐全攻略!还不赶紧来码住?

随着科技的不断进步&#xff0c;智能化系统在各个领域都呈现出令人瞩目的应用前景。在这个数字化时代&#xff0c;工厂食堂也逐渐走向智能化管理的道路。 智慧收银系统作为其中的一环&#xff0c;正为工厂食堂的效率提升、成本降低以及服务质量提升提供了全新的可能性。无需繁琐…

持有PMP证书,可申请CSPM证书!

一&#xff0c;CSPM介绍 CSPM的全称是&#xff1a;项目管理专业人员能力评价&#xff0c;是我们国内的“PMP”&#xff0c;是我们中国人自己的项目管理专业人士评价指南&#xff0c;符合中国国情且符合中国未来发展的项目管理专业人员能力评价标准。 2022年10月12日发布实施了…

计算机组成原理-笔记-第五章

目录 五、第五章——中央处理器 1、CPU的功能和基本结构 &#xff08;1&#xff09;运算器内部结构 &#xff08;2&#xff09;控制器的基本结构 &#xff08;3&#xff09;CPU的四大部分 2、指令执行过程&#xff08;数据流向 & 执行方案&#xff09; &#xff08;…

libheif —— 2、编写苹果、小米的.heic图片查看器

效果图 .heic简介 HEIC,是iOS 11更新后,iPhone 7及其后硬件,在拍摄照片时的默认图像存储格式。 HEIC是一种图像格式,上线时间还比较短,只有4年左右。自iOS 11和macOS High Sierra(10.13)内测开始,苹果将HEIC设置为图片存储的默认格式。与JPG相比,它占用的空间更小,画…

【ADS】在同一个symbol层次化实现理想器件和EM仿真的切换

ADS层次化切换理想器件和电磁仿真 1.需求描述2.实现步骤2.1 层次结构2.2 新建schematic2.3 新建symbol2.4 使用演示 3.后言 1.需求描述 在使用ADS做电磁仿真时&#xff0c;得到的结果需要多次迭代去接近原理图&#xff0c;那么就需要反复与原理图切换进行对比。 比较直接的方法…

Spring Initailizr--快速入门--SpringBoot的选择

&#x1f600;前言 本篇博文是关于IDEA使用Spring Initializer快速创建Spring Boot项目的说明&#xff0c;希望能够帮助到您&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可…

tsmc12 via0_grid

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口 PG VIA0连接ME1和ME0,存在cell中奇数site中,如下图,所以两个cell在竖直方向邻接时要对其有via0的site,为了方便place与检查需要place前定义via0_grid,辅助奇数cell site落在grid上 自定义的via0_…

AcWing算法提高课-1.3.18能量石

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 岩石怪物杜达生活在魔法森林中&#xff0c;他在午餐时收集了 N N N 块能量石准备开吃。 由于他的嘴很小&#xff0c;所以一次只能…

Elasticsearch 与 OpenSearch:揭开性能差距

作者&#xff1a;George Kobar, Ugo Sangiorgi 对于任何依赖快速、准确搜索数据的组织来说&#xff0c;强大、快速且高效的搜索引擎是至关重要的元素。 对于开发人员和架构师来说&#xff0c;选择正确的搜索平台可以极大地影响你的组织提供快速且相关结果的能力。 在我们全面的…

突破笔试:力扣计算布尔二叉树的值(medium)

1.题目链接&#xff1a;2331. 计算布尔二叉树的值 2. 题目描述&#xff1a; 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a;叶子节点 要么值为 0 要么值为 1 &#xff0c;其中 0 表示 False &#xff0c;1 表示 True 。 非叶子节点 要么值为 2 要么值为 …

通过Easy Excel导入数据

目录 &#x1f351;一、背景&#x1f351;二、开发验证&#x1f34a;2.1、引入easyexcel依赖&#x1f34a;2.2、创建表及基础代码&#x1f34a;2.3、处理类及接口&#x1f353;2.3.1、EasyExcel监听处理器&#x1f353;2.3.2、Controller接口&#x1f353;2.3.3、service调用监…

Vue3使用wangEditor

那么这一节我们在编辑公司信息的弹窗中使用富文本插件wangEditor官网 Vue3使用wangEditor 安装wangEditor在弹窗中引入wangEditor结构api接口部分editor组件script部分怎么去修改富文本的编辑器&#xff1f; 案例内效果&#xff1a; 安装wangEditor npm install wangeditor/…

bash: make: command not found

make之后报错信息如下&#xff1a;cd 对应的文件路径后 make 发现报错&#xff1a;bash: make: command not found 这个原因可能是没有安装make工具,也可能是安装了make之后,没有将make的文件路径添加到系统环境变量中 有没有安装make,可以使用Search Everything搜索是否有make…

24聊城大学823软件工程考研

1.软件发展有几个阶段&#xff1f;各有何特征&#xff1f; ①程序设计阶段 硬件特征&#xff1a;价格贵、存储容量小、运行可靠性差。 软件特征&#xff1a;只有程序、程序设计概念&#xff0c;不重视程序设计方法。 ②程序系统阶段。 硬件特征&#xff1a;速度、容量及工作可…