大模型相关基础(基于李沐)

news2024/11/19 23:12:27

InstructGPT

介绍

ChatGPT用到的技术和InstructGPT一样的技术,区别是InstructGPT是在GPT3上微调,ChatGPT是在GPT3.5上微调。

InstructGPT论文发表在2022年3月4号,标题是《训练语言模型使得它们能够服从人类的一些指示》。

标题解释:语言模型是每次给定一段东西,然后去预测下一个词,是一个自监督学习,是没有标注的。如果你想让语言模型去解释费马小定理,那么你的训练文本中需要出现过相关的内容。训练的文本是几百亿这个数量级,你不知道里面会有什么东西,只能全送进去期待大力出奇迹。

但是这样做模型的控制能力太弱了,会有两个问题:

1、有效性,想让模型去学做一件事,但是模型就是学不会,因为你的文本中可能就没有相关的东西。

2、安全性,你的模型输出一些不应该输出的内容。

如何解决这两个问题呢,就是我们标一点数据,再把语言模型进行微调,效果会更好一些,能够更加服从人类的指示,也就是标题的意思。

这篇论文展示了怎么样对语言模型和人类意图之间进行匹配,方法是在人类的反馈上进行微调。

方法简介:收集很多问题,使用标注工具将问题的答案写出来,用这些数据集对GPT3进行微调。接下来再收集一个数据集,通过刚才微调的模型输入问题得到一些输出答案,人工对这些答案按好坏进行排序,然后通过强化学习继续训练微调后的模型,这个模型就叫InstrunctGPT。

结果上说,有了标注的数据集,1.3B的模型参数,InstructGPT要好过最大的175B个参数的GPT3。适当对数据进行人工的标注,可能反而总体的成本会降低。

思路

大的语言模型会生成有问题的输出,因为模型训练用的目标函数不那么对。

实际的目标函数:在网上的文本数据预测下一个词。

我们希望的目标函数:根据人的指示、有帮助的、安全的生成答案。

InstructGPT就是解决这个问题,方法是RLHF(reinforcement learning from human feedback),基于人类反馈的强化学习。

 

重点:两个标注数据集,三个模型。

1、找人来写出各种各样的问题(或者从以前GPT3接口收集的问题),这些问题在GPT里面叫做prompt

例如:什么是月亮?

2、让人根据问题写答案

例如:围绕地球旋转的球形天体。

3、将问题和答案拼在一起,形成一段对话。大量这样的对话文本,形成第一个标注数据集。

例如:什么是月亮?围绕地球旋转的球形天体。

4、使用这些对话微调GPT3。GPT3的模型在人类标注的这些数据上进行微调出来的模型叫做SFT(supervised fine-tune),有监督的微调。这就是训练出来的第一个模型。

5、给出一个问题,通过SFT模型生成几个答案,这里假设生成四个答案。

例如:什么是月亮?

SFT模型生成了四个答案:

A、月亮是太阳系中离地球最近的天体。

B、月亮是太阳系中体积第五大的卫星。

C、月亮是由冰岩组成的天体,在地球的椭圆轨道上运行。

D、月亮是地球的卫星。

6、将四个答案让人根据好坏程度进行排序。

例如:张三觉得答案D是最好的,其次是C,C比A要好,A和B差不多。就是D>C>B=A。

7、将大量的人工排序整理为一个数据集,就是第二个标注数据集。

8、使用排序数据集训练一个RM模型,reward model,奖励模型。这是第二个模型。

模型输入:问题+答案,例如:什么是月亮?月亮是地球的卫星。

模型输出:分数,例如:9.4。

优化目标:问题+答案得到的分数要满足人工排序的顺序。

例如:

什么是月亮?月亮是太阳系中离地球最近的天体。 5.4

什么是月亮?月亮是太阳系中体积第五大的卫星。 5.4

什么是月亮?月亮是由冰岩组成的天体,在地球的椭圆轨道上运行。 8.2

什么是月亮?月亮是地球的卫星。 9.4

这里得到的分数就满足张三的排序:D>C>B=A。

9、继续给出一些没有答案的问题,通过强化学习继续训练SFT模型,新的模型叫做RL模型(Reinforcement Learning)。优化目标是使得RF模型根据这些问题得到的答案在RM模型中得到的分数越高越好。这是第三个模型。

10、最终微调后的RL模型就是InstructGPT模型

备注:两次对模型的微调:GPT3模型—>SFT模型—>RL模型,其实这里始终都是同一个模型,只是不同过程中名称不一样。

需要SFT模型的原因:GPT3模型不一定能够保证根据人的指示、有帮助的、安全的生成答案,需要人工标注数据进行微调。

需要RM模型的原因:标注排序的判别式标注,成本远远低于生成答案的生成式标注。

需要RF模型的原因:在对SFT模型进行微调时,生成的答案分布也会发生变化,会导致RM模型的评分会有偏差,需要用到强化学习。

数据收集

首先要收集问题集,prompt集:标注人员写出这些问题,写出一些指令,用户提交一些他们想得到答案的问题。先训练一个最基础的模型,给用户试用,同时可以继续收集用户提交的问题。划分数据集时按照用户ID划分,因为同一个用户问题会比较类似,不适合同时出现在训练集和验证集中。

三个模型的数据集:

1、SFT数据集:13000条数据。标注人员直接根据刚才的问题集里面的问题写答案。

2、RM数据集:33000条数据。标注人员对答案进行排序。

3、RF数据集:31000条数据。只需要prompt集里面的问题就行,不需要标注。因为这一步的标注是RM模型来打分标注的。

openai专门找了40个标注人员进行标注,需要长期交流的合同工,因为这些标注任务需要一定熟练度、对业务的理解、并需要做到随时沟通。

三个模型的解释

相关知识:

  1. 交叉熵用来评估标签和预测值之间的差距。这里是将排序的分数差转换成分类问题,就可以计算分数差的分类(1或者-1)和真实预测值之间的差距,1表示yw比yl排序更前,-1表示yl比yw排序更前。
  2. KL散度用来评估两个概率分布之间的相似度,KL散度始终大于等于0。这里是用来评估πφRL和πSFT两个模型相似度,两个模型相同则KL散度为0,KL散度越大表示两个模型相差越大。

一、SFT(Supervised fine-tuning)模型

把GPT3这个模型,在标注好的第一个数据集(问题+答案)上面重新训练一次。

由于只有13000个数据,1个epoch就过拟合,不过这个模型过拟合也没什么关系,甚至训练更多的epoch对后续是有帮助的,最终训练了16个epoch。

二、RM(Reward modeling)模型

把SFT模型最后的unembedding层去掉,即最后一层不用softmax,改成一个线性层,这样RM模型就可以做到输入问题+答案,输出一个标量的分数。

RM模型使用6B,而不是175B的原因:

1、小模型更便宜

2、大模型不稳定,loss很难收敛。如果你这里不稳定,那么后续再训练RL模型就会比较麻烦。

损失函数,输入是排序,需要转换为值,这里使用Pairwise Ranking Loss

参数解释:

1、D:第二个数据集,人工对答案进行排序。

2、x:第二个数据集D中的问题,每个问题对应K个答案,答案的顺序已经人工标注好了。

3、yw和yl:x对应的K个答案中的两个,其中yw排序比yl高,因为是一对,所以叫pairwise。

4、rθ(x,y):即需要训练的RM模型,对于输入的一对x和y得到的标量分数。

5、θ:需要优化的参数。

损失函数理解:

1、x和yw这一对问题和答案,放进RM模型中算出一个分数rθ(x,yw)

2、x和yl这一对问题和答案,放进RM模型中算出一个分数rθ(x,yl)

3、因为人工标注出yw的排序要比yl高,r(x,yw)得到的分数应该比r(x,yl)得到的分数高,所以rθ(x,yw)-rθ(x,yl)这个差值要越大越好

4、把相减后的分数通过sigmoid,那么这个值就在-1到1之间,并且我们希望σ(rθ(x,yw)-rθ(x,yl))越大越好

5、这里相当于将排序问题转换为了分类问题,即σ(rθ(x,yw)-rθ(x,yl))越接近1,表示yw比yl排序高,属于1这个分类,反之属于-1这个分类。所以这里就用logistic loss,由于是二分类,也相当于是交叉熵损失函数。

6、对于每个问题有K个答案,所以前面除以C(K,2),使得loss不会因为K的变化而变化太多。

7、最后是最小化loss(θ),就是要最大化rθ(x,yw)-rθ(x,yl)这个值,即如果一个答案的排序比另一个答案排序高的话,我们希望他们通过RM模型得到的分数之差能够越大越好。

对于K的选择,为什么选9,而不选择4?

1、进行标注的时候,需要花很多时间去理解问题,但答案和答案比较相近,所以4个答案排序要30秒,但9个答案排序可能40秒就够了。加上看问题的时间,K=9花的时间可能比K=4多了30%。同时C(9,2)=36,C(4,2)=6,即K=9生成的问答对是K=4的6倍,等于说K=9比K=4只多花了30%的时间,但是能够标注的信息量却是他的6倍,非常划算。

2、K=9时,每次计算loss都有36项rθ(x,y)要计算,这个RM模型计算比较贵,但可以通过重复利用之前算过的值,使得只要计算9次就行,这样就可以剩下很多时间。

标注时为什么不选择只标注最好的那个,而是进行排序?

K=4的时候是在4个答案中只标注最好的那一个,标注方便很多,这时候计算loss时变成了一个多分类的softmax。但是这样做有一个问题,就是容易overfitting。所以K=9时,保留了排序的信息,从而解决overfitting的问题。

三、RL(Reinforcement learning)模型

这里用的是强化学习,因为他的数据分布是随着策略的更新,环境会发生变化的。优化算法是PPO,Proximal Policy Optimization,近端策略优化。简单来说,就是对目标函数objective(φ)通过随机梯度下降进行优化。

参数解释:

1、πSFT:SFT模型。

2、πφRL:强化学习中,模型叫做Policy,πφRL就是需要调整的模型,即最终的模型。初始化是πSFT。

3、(x,y)∼DπφRL:x是第三个数据集中的问题,y是x通过πφRL模型得到的答案。

4、rθ(x,y):对问题x+答案y进行打分的RM模型。

5、πφRL(y | x):问题x通过πφRL得到答案y的概率,即对于每一个y的预测和它的softmax的输出相乘。

6、πSFT(y | x):问题x通过πSFT得到答案y的概率。

7、x∼Dpretrain:x是来自GPT3预训练模型的数据。

8、β、γ:调整系数。

目标函数理解:

优化目标是使得目标函数越大越好,objective(φ)可分成三个部分,打分部分+KL散度部分+GPT3预训练部分

1、将第三个数据集中的问题x,通过πφRL模型得到答案y

2、把一对(x,y)送进RM模型进行打分,得到rθ(x,y),即第一部分打分部分,这个分数越高就代表模型生成的答案越好

3、在每次更新参数后,πφRL会发生变化,x通过πφRL生成的y也会发生变化,而rθ(x,y)打分模型是根据πSFT模型的数据训练而来,如果πφRL和πSFT差的太多,则会导致rθ(x,y)的分数估算不准确。因此需要通过KL散度来计算πφRL生成的答案分布和πSFT生成的答案分布之间的距离,使得两个模型之间不要差的太远。

4、我们希望两个模型的差距越小越好,即KL散度越小越好,前面需要加一个负号,使得objective(φ)越大越好。这个就是KL散度部分。

5、如果没有第三项,那么模型最终可能只对这一个任务能够做好,在别的任务上会发生性能下降。所以第三部分就把原始的GPT3目标函数加了上去,使得前面两个部分在新的数据集上做拟合,同时保证原始的数据也不要丢,这个就是第三部分GPT3预训练部分。

6、当γ=0时,这个模型叫做PPO,当γ不为0时,这个模型叫做PPO-ptx。InstructGPT更偏向于使用PPO-ptx。

7、最终优化后的πφRL模型就是InstructGPT的模型。

参考:

笔记详情 (bilibili.com)icon-default.png?t=N7T8https://www.bilibili.com/h5/note-app/view?cvid=21090098&pagefrom=comment&richtext=true

 InstructGPT 论文精读【论文精读·48】_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1hd4y187CR/?spm_id_from=333.999.0.0

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

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

相关文章

8+NAM+分型+单细胞生信思路

今天给同学们分享一篇肿瘤NAM分型单细胞的生信文章“Comprehensive analysis of nicotinamide metabolism-related signature for predicting prognosis and immunotherapy response in breast cancer”,这篇文章于2023年3月8日发表在Front Immunol期刊上&#xff0…

2023年中国现制咖啡市场发展概述分析:交易笔数和客单价将持续上升[图]

受到疫情封控影响,咖啡线下门店受到影响,但线上外卖门店仍保持良好发展态势,整体零售规模增长稳中有升。2022年,中国现制咖啡总零售规模为640亿元,2017-2022年零售规模的年复合增长率为16.3%。受益于资本关注、茶饮品牌…

安徽怀宁领导一行莅临蓝海彤翔集团参观考察

10月17日上午,中共怀宁县委书记余学峰,怀宁县政府副县长谭宪锋、怀宁县委办主任刘劲松、怀宁县招商中心副主任余飞、怀宁县委办四级主任科员彭俊等领导一行莅临蓝海彤翔集团参观考察,集团总裁鲁永泉、集团CTO穆凯辉接待了考察团一行。 考察团…

UE4 AI群集实现

逻辑就不用说了,就是计算对应图形位置让每个Pawn移动到该位置 因为有时候AI与AI会卡住 所以加上这个Bool为true,以及设置两个AI之间至少隔的距离,设置在一个合理的参数即可 有时候AI群集,AI与AI会比较紧密,可以将Caps…

【完美世界】两男神一美女登场,石昊杀真神夺金果,战帝老天人出世,云曦参战

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 完美世界动画终于更新第134集预告了,虽然不是云曦特别篇的内容,但是画质与特效明显提升了,打斗也开始燃起来了。而且还登场三位新角色,两大男神,一位…

c语言练习90:反转链表

反转链表 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 与方法一相比方法二的思路更容易实现 报错原因:head和n3不能为空,为空则不能执行后面的操作 报错原因:listnode*n1,n2,n3; 纠正:listnode *n1…

杨帆 2022年 毕业论文相关 基于WS-DAN与时空注意力的学生课堂行为检测研究

杨帆: 毕业论文相关 下面是我公开的毕业论文全部相关文件: https://share.weiyun.com/UhFV67ds https://share.weiyun.com/9qOxwpqz 下面是我曾经公开在b站上的视频,因为我导师不建议公开,今年9月删除了,下面是视频源…

私域流量经营怎么做?私域流量转化功能推荐

流量在商业中扮演着至关重要的角色。无论是在线下还是线上,谁能更快地获取和利用流量,谁就能在激烈的市场竞争中占据优势。然而,流量的转化方式在传统和数字化营销系统中有着显著的差异。 数字化营销系统,如分销系统、拼团系统、分…

《机器学习----简单的分类器》第二章、朴素贝叶斯,项目:使用特征值给语句打标签

贝叶斯分类器 1,朴素贝叶斯算法1. 朴素贝叶斯算法、2. 算法思路3. 贝叶斯定理4.特征的选用的要求和处理 2,算法应用1 文本分类2 垃圾邮件过滤3 情感分析 3. 朴素贝叶斯的优缺点1. 优点2. 缺点 项目实践1,算法流程2,具体实现 1,朴素贝叶斯算法…

第二证券:什么股票属于创业板?

股票商场是一种杂乱的国际,不同类型的股票对应不同的生意商场。其间,创业板股票是一个备受关注的论题。那么,什么样的股票归于创业板呢?本文将从商场定义、股票分类以及出资关键点三个角度分析这个问题,帮忙读者全面了…

Vue3+ElementPlus el-date-picker时间选择器,设置最多选择60天区间内,必须选择大于今天

Vue3ElementPlus el-date-picker时间选择设置&#xff0c; 必须选择大于今天&#xff1b;最多选择60天区间内&#xff1b; 使用disabled-date&#xff1a; 具体实现代码&#xff1a; <el-date-pickerv-model"state.queryParams.dateTime":editable"false&q…

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-[4]客户端与服务端连接

红队专题 招募六边形战士队员服务端编写新建工程server函数创建主线程类获取配置信息运行command 命令头文件里创建引用win32 类库/头文件startsocket 开始监听 类函数添加类StartSocketmysend/myrecv 设置 m_sockCommon 头文件MSGINFO_S 结构体 ThreadMain头文件runflag 启动 …

RN:指定模拟器启动

背景 我们启动 react native 项目的时候&#xff0c;会打开一个模拟器&#xff0c;但是有时不是我们想要的&#xff0c;我们如何去指定一个模拟器启动呢&#xff1f; IOS xcrun simctl list devicesyarn ios --simulator"<模拟器的UDID>"Android 目前没发现…

量子力学应用的特殊函数1----谐振子场与线性场

量子力学应用的函数--谐振子 Hermite 函数 厄米函数的一些性质 Laguerre 函数 a不为零时&#xff0c;称之为广义拉盖尔函数&#xff0c;这里不去研究他的解的性质 拉盖尔函数的一些性质 /. AiryAi 函数 在脑海中补充他的边界条件通过傅里叶变换等一些列复杂的微操&#xff0c;…

VMware Workstation 15 安装教程

在本文中&#xff0c;我们将以VMware Workstation 15 为例&#xff0c;演示如何在Windows上安装VMware Workstation。首先&#xff0c;用户需要从VMware官网下载VMware Workstation 15 for Windows软件安装包。不知道如何下载的&#xff0c;小编也为大家准备了最新的分流下载地…

第三章 内存管理 八、两级页表

目录 一、定义 二、如何实现地址变换 三、注意 四、总结 一、定义 二级页表是一种分层的虚拟内存管理机制。在二级页表中&#xff0c;虚拟地址被分成两个层次&#xff0c;第一层是页目录&#xff0c;第二层是页表。通过这种方式&#xff0c;二级页表可以管理更大的虚拟内存…

比亚迪、吉利、蔚来等将出席2023第四届中国新能源汽车热管理峰会

会议背景 2023第四届中国新能源汽车热管理创新国际峰会将于11月16日-17日在上海举办。会议线上线下同步举行&#xff0c;会场提供中英同声传译。 本次峰会将密切关注“双碳”目标下中国新能源汽车一体化热管理的最新行业动态与关键技术的研发和应用方案。会议将对中国新能源汽…

伦敦银怎么算自己的收益?

伦敦银国际贵金属投资市场上的高收益的投资工具&#xff0c;目前投资者在香港的平台参与交易&#xff0c;可以获得50倍的资金杠杆&#xff0c;因此只有拿下一小波的行情&#xff0c;就有望赚取一波爆发性的收益。 但伦敦银交易中的收益具体是如何计算的呢&#xff1f;假设投资者…

沃通SSL证书申请指南:(一)如何注册下单、填写域名?

&#xff08;一&#xff09;如何注册下单、填写域名&#xff1f; 一、如何注册【沃通数字证书商店】账号 提交注册信息&#xff1a;打开沃通数字证书商店站点&#xff0c;如下图所示&#xff1b;填写邮箱、登录密码、确认密码、验证码等。点“注册”按钮&#xff0c;提交注册…

jenkins 安装与使用

jenkins 安装与使用 安装插件&#xff1a; 开启该插件功能 验证用户管理 创建web01~02 使用web01登录 用户权限划分 安装 Role-Based Strategy 插件后&#xff0c;系统管理 中多了如图下所示的一个功能&#xff0c;用户权限的划分就是靠他来做的 创建角色 重新访问 创建项目…