InstructGPT论文详解(学习ChatGPT必看论文)
创始人
2025-05-29 02:22:04
0

InstructGPT论文详解(Training language models to follow instructions with human feedback,学习ChatGPT必看论文)

返回论文和资料目录

1.导读

ChatGPT大火后,越来越多人想了解ChatGPT相关技术。OpenAI官网虽然没有给出ChatGPT足够详细的信息,但给出了一篇推荐阅读论文InstructGPT,经过对比,可以发现两者技术相差不大,所以完全可以通过InstructGPT了解ChatGPT。下面就给出InstructGPT内容详解。
阅读本文内容最好提前了解GPT1-GPT3。

2.摘要和概述

这篇文章企图解决的问题:已有的大型语言模型(例如GPT3.5)并非模型越大越好。越大的模型仍然会生成假的、有害的、简单的和没有用的内容。简单的说,得不到用户想要的内容。
解决方法:1.人工引导,使用监督学习。2.强化学习,人工帮助的情况下,训练一个模型,该模型会进一步引导GPT模型生成优质的结果。
实验结果InstructGPT使用1.3B参数的模型对比GPT-3的1750B参数模型能取得更优的性能(即能生成更优,更有用,更安全,更无害的内容,调戏过ChatGPT的人应该更有体会)。

3.引言

已有大型语言模型经常会生成不想要的内容(很好理解,因为目标函数只是预测下一个词和数据集信噪比高的原因)。

所以,本文使用微调的方法在一个大型语言模型LM上进行改进。大致思路是:首先,收集大量的指令prompt(可以理解为问题,但实际是指令大于问题,例如帮我写一首诗是一个指令,但具体问题的时候我们可能不是这么问的,即我们有多种问法,所以一个指令对应于多个问题),让人工提供答案,扩充数据集,进行第一步的引导。其次,人工给LM的回答进行排名,并用这些排名作为标签label。以(promptlabel)形式训练一个RM模型,该训练完成后模型能对LM生成的答案进行打分,告诉LM哪些是好的回答。最后,RM会作为一个奖励函数,同时使用PPO算法微调GPT模型最大化RM奖励函数。

评估:使用未在数据集中出现的prompt,采用人工的方式对GPT模型生成的结果进行打分。

模型InstructGPT模型考虑3种设置方案:1.3B,6B,150B。模型的结构和GPT-3保持一致。

实验结果

  1. 在人工打分结果上,InstructGPT显著优于GPT-3
  2. InstructGPT的结果比GPT-3更真实,即不会瞎说(但从ChatGPT的结果来看,还是有待提高)
  3. InstructGPT的结果比GPT-3更不会有害,即不会有种群歧视之类的
  4. 面对具体的NLP数据集,还可以改进
  5. 面对没有出现的人工引导的promptInstructGPT的结果也会更好,即 InstructGPT模型得到了推广
  6. InstructGPT效果会比使用一般的公开的NLP数据集后的GPT模型更好
  7. InstructGPT仍然会犯简单的小错误(从ChatGPT的结果来看确实)。

4. InstructGPT流程

InstructGPT流程如下图所示。可以分成3个阶段:

  1. 阶段一:在这个阶段前,我们首先有一个大型语言模型GPT-3.5。然后,我们随机从指令库中采样出一些指令prompt,并人工给出答案。最后,将这些指令和答案作为新的数据集进一步训练GPT-3.5模型,这里是由人工给出的答案作为标签,所以是有监督学习。我们将这一阶段完成后的模型称为SFT(supervised fine-tuning )。
  2. 阶段二:使用SFT对指令库中的指令生成多个答案。然后人工对这些答案进行排名。使用这些排名训练一个奖励模型RW,即可以通过这个模型对一个指令的多个回答给出奖励值。
  3. 阶段三:从指令库中采样一批指令,让SFT回答多个答案,并使用RW给出预测的奖励值。最后,使用奖励值采用PPO算法更新模型。

在这里插入图片描述

5.数据集

我觉得主要包含4个数据集,并且刚好4个数据集对应于不同的阶段。第2、3和4个数据集对应于InstructGPT流程的第1-3个阶段,而第1个数据集对应于第一个阶段前的训练GPT3.5模型的阶段。

在了解4个数据集前要先了解OpenAI先做了个指令库数据集
指令库数据集:前面多次提到指令库,这个指令库来自于OpenAI以前的GPT模型提供的API中收集的用户问题。但这些问题经过了一定的处理,包括去除重复,限制每个用户最多200个指令,去除个人身份信息等。下表Table1给出了来自API的指令分布。然而,这个处理好后的指令库数据集也并不全面,好用。所以InstructGPT让人工(请的labelers)写了3类指令进行扩充:(1)Plain:尽可能广地写各种指令,增加多样性。(2)Few-shot:写出一些指令,并给出多对(问题,回答)。(3)User-based:根据刚才OpenAI提供的API中得到的用户的请求队列waitlist中收集用户需求,并写出对应的指令。
在这里插入图片描述

下面是InstructGPT用到的4个数据集:

  1. 已有的用于训练GPT3.5的数据集:这个数据集主要来自NLP数据集、网络爬虫和OpenAI从其他公司拿来的。可参考GPT-3(Language Models are Few-Shot Learners)的工作。
  2. 训练SFT的模型(数据量:13k):来自指令数据库中的API和人工写的(promptanswer),用于第一阶段初步训练InstructGPT
  3. 训练RM的排名数据集(数据量:33k):首先从指令数据库中的API和人工写的指令中获得指令,再使用InstructGPT进行回答,人工给InstructGPT的回答进行排名得到排名数据集(promptRank)。该数据集会用于训练得到一个RM模型。
  4. PPO数据集(数据量:31k):只从指令数据库的API中获得指令,并使用InstructGPTRM模型分别得到answerRM给出的分数。最后这个数据集由多个三元组(promptanswerRM给出的分数)组成,用于进一步微调采用PPO算法微调InstructGPT

总结:InstructGPT特有的数据集并不大,13k-33k对于一个公司来说是很小的了。不过仍然有效,能显著提升模型性能。

6.模型的训练

SFT(Supervised fine-tuning ):第一阶段训练的模型SFT。具体地,迭代轮数使用16个epoch、学习率使用余弦衰减、模型残差连接dropout率为0.2。

RM:第二阶段训练的奖励模型,模型结构是在SFT基础上去掉了最后的unembedding层,并以(promptanswerRank=Reward)训练模型。模型大小使用6B。

相关内容

热门资讯

财经大V走进广州,感受新质生产... 5月27日,由广州市自媒体协会主办的第四届湾区自媒体创新发展大会在广州鸣泉居酒店圆满举行。在互联网快...
华谊兄弟:从影视巨头到断臂求生... 近日,华谊兄弟董事长王忠军油画作品流拍事件引发市场热议——这幅曾以368万元高价成交的作品,如今30...
springcloud学习总结 springcloud 构建微服务项目步骤 导入依赖编写配置文件开启这个功能 @Enable...
刚刚,德勤中国官宣新CEO 德... 5月30日,德勤中国宣布,刘明华将接替曾顺福出任德勤中国首席执行官,自2025年6月1日起生效,任期...
React 执行架构流程详细-... React 执行架构流程详细----归阶段 mount 时流程(三) 目...
险资活水入市来 超1700亿元... 既有新的保险系私募证券基金管理人完成备案,也有新的保险系私募基金产品发起设立,还有险企宣布将设立私募...
石药集团:就三项潜在交易进行磋... 新京报贝壳财经讯 5月30日,石药集团在港交所公告,集团目前正与若干独立第三方就三项潜在交易进行磋商...
Spring学习(三) Spring的AOP的XML开发(重要指数五颗星*****) 一、AOP...
缓存穿透,缓存雪崩,缓存击穿 注:该文章基于黑马程序员中《黑马点评》软件的学习 视频链接 涉及视频 p40p42p4...
去年净利增五成,厦门国际银行遭... 来源:密探财经(ID:Spy Finance)刚刚,号称“中国第一家中外合资银行”的厦门国际银行被“...
石药集团:就三项潜在交易进行磋... 新京报贝壳财经讯 5月30日,石药集团在港交所公告,集团目前正与若干独立第三方就三项潜在交易进行磋商...
「开盘」A股三大股指集体低开,... A股三大股指5月30日集体低开。其中,沪指跌0.14%报3358.81点,深成指跌0.36%报100...
淘宝天猫消费者频频上当维权艰难... 文丨顾小白 编辑丨百进来源丨正经社(ID:zhengjingshe)(本文约为3100字)【正经社“...
哪吒汽车“债转股”失败,知情人... 据媒体5月29日报道,哪吒汽车上海总部外墙的“哪吒汽车”LOGO目前被拆除,一并被拆除的还有位于总部...
Struts2—Ognl 表达... 0x00 前言 补充一下Ognl表达式的相关的知识点。尽量调有用的知识点来进行记录。 Ognl&#x...
恒生指数开盘跌0.99%,恒生... 5月30日,恒生指数开盘跌0.99%,网易跌近4%领跌蓝筹,恒生科技指数跌1.26%。手回集团上市首...
昨日获资金净流入,科创板人工智... 5月30日,三大指数集体低开,科技方向震荡走低。截至发稿,上证科创板人工智能指数下跌1.69%。相关...
25. 在QWidget窗口中... 1. 说明: QML开发界面是最近才开始流行,在之前的老项目中一般都是使...
Redis高级篇 文章目录面试题库redis有哪些用法?redis单线程时代性能依然很快的原因ÿ...
STM32+Keil+新建工程... 导言: 近来开始学习嵌入式相关,谁曾想一个新建工程就给我整懵了。 以前大...