InstructGPT论文详解(学习ChatGPT必看论文)

这篇具有很好参考价值的文章主要介绍了InstructGPT论文详解(学习ChatGPT必看论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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算法更新模型。

InstructGPT论文详解(学习ChatGPT必看论文)

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论文详解(学习ChatGPT必看论文)

下面是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。模型结构为标准LM。

RM:第二阶段训练的奖励模型,模型结构是在SFT基础上去掉了最后的unembedding层,并以(promptanswerReward)训练模型。在这,模型一个prompt输出了 K K K个结果,所以有 ( K 2 ) \binom{K}{2} (2K)次比较,OpenAIlabeler对这些比较都进行了标注。模型大小为6B。模型的损失函数为:
InstructGPT论文详解(学习ChatGPT必看论文)
其中 x x xprompt y w y_w yw是标出的更优的answer y l y_l yl是标出的更差的answer r θ ( x , y w ) r_\theta(x,y_w) rθ(x,yw)是模型对 x x x y w y_w yw的输出奖励值 r r r r θ ( x , y l ) r_\theta(x,y_l) rθ(x,yl)是模型对 x x x y l y_l yl的输出奖励值 r r r , r θ ( x , y w ) − r θ ( x , y l ) r_\theta(x,y_w) - r_\theta(x,y_l) rθ(x,yw)rθ(x,yl)是两者的差值,训练时需要最大化这个差值,即最小化损失函数。
模型训练超过一个epoch后会过拟合,故只训练一个epoch。

RL(PPO):第三阶段用PPO微调SFT。其目标函数如下, 我们需要最大化它。

InstructGPT论文详解(学习ChatGPT必看论文)
理解时, x x x y y y分别是promptanswer

r θ ( x , y ) r_\theta(x,y) rθ(x,y)是模型对 x x x y y y的输出奖励值 r r r,即我们要最大化这个奖励,越大越好。
π R L ( y ∣ x ) \pi^{RL}(y|x) πRL(yx)RL模型在给定 x x x后输出 y y y的分布, π S E T ( y ∣ x ) \pi^{SET}(y|x) πSET(yx)SFT模型在给定 x x x后输出 y y y的分布。
我们希望 β log ⁡ ( π R L ( y ∣ x ) / π S E T ( y ∣ x ) ) \beta \log \left(\pi^{RL}(y|x)/{\pi^{SET}(y|x)}\right) βlog(πRL(yx)/πSET(yx))越小越好,即两个分布尽量一致。(这里有个背景要说下,由于RL模型是在原SFT模型的最后一层出修改得到的,所以RL模型输出和SFT模型输出不一致。另外,当在优化RL模型时这种不一致会越来越大,因此,我们加上了这一个项。)
最后一项 γ γ γ为0,不用管,详情可看PPO原文。文章来源地址https://www.toymoban.com/news/detail-435677.html

到了这里,关于InstructGPT论文详解(学习ChatGPT必看论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • InstructGPT 论文阅读笔记

    InstructGPT 论文阅读笔记

    目录 简介 数据集                                 详细实现 实验结果 参考资料 InstructGPT 模型是在论文《Training language models to follow instructions with human feedback》被提出的,OpenAI在2022年1月发布了这篇文章。 论文摘要翻译 :把语言模型做得更大并不意味着让它们更好的遵循

    2024年02月01日
    浏览(14)
  • InstructGPT——ChatGPT前身

    InstructGPT——ChatGPT前身

    We trained this model using Reinforcement Learning from Human Feedback (RLHF), using the same methods as InstructGPT, but with slight differences in the data collection setup. ChatGPT is fine-tuned from a model in the GPT-3.5 series, which finished training in early 2022. 从ChatGPT”方法“原文可以看出,其使用的网络模型来自GPT-3.5,其原

    2023年04月15日
    浏览(13)
  • ChatGPT/InstructGPT解析

    ChatGPT/InstructGPT解析

    目录 前言 1. 背景知识 1.1 GPT系列 1.2 指示学习(Instruct Learning)和提示(Prompt Learning)学习 1.3 人工反馈的强化学习 2. InstructGPT/ChatGPT原理解读 2.1 数据集采集 2.1.1 SFT数据集 2.1.2 RM数据集 2.1.3 PPO数据集 2.1.4 数据分析 2.2 训练任务 2.2.1 有监督微调(SFT) 2.2.2 奖励模型(RM) 2.2

    2023年04月22日
    浏览(9)
  • GPT3.5 , InstructGPT和ChatGPT的关系

    GPT3.5 , InstructGPT和ChatGPT的关系

    GPT-3.5 系列是一系列模型,从 2021 年第四季度开始就使用文本和代一起进行训练。以下模型属于 GPT-3.5 系列: code-davinci-002 是一个基础模型,非常适合纯代码完成任务 text-davinci-002 是一个基于 code-davinci-002 的 InstructGPT 模型 text-davinci-003 是对 text-davinci-002 的改进 gpt-3.5-turbo-030

    2023年04月09日
    浏览(10)
  • GPT3.5, InstructGPT和ChatGPT的关系

    GPT3.5, InstructGPT和ChatGPT的关系

    GPT-3.5 系列是一系列模型,从 2021 年第四季度开始就使用文本和代一起进行训练。以下模型属于 GPT-3.5 系列: code-davinci-002 是一个基础模型,非常适合纯代码完成任务 text-davinci-002 是一个基于 code-davinci-002 的 InstructGPT 模型 text-davinci-003 是对 text-davinci-002 的改进 gpt-3.5-turbo-030

    2024年02月01日
    浏览(10)
  • 【论文阅读】InstructGPT: Training language models to follow instructions with human feedback

    【论文阅读】InstructGPT: Training language models to follow instructions with human feedback

    论文链接:InstructGPT 🤗关注公众号 funNLPer 了解更多AI算法🤗 把语言模型变大并不意味着会让模型更好的理解用户意图,例如大的语言模型会生成一些不真实、有害的、没有帮助的输出给用户,换句话说,这些模型并没有和用户的意图对齐(aligned)。在这篇论文中我们展示了

    2023年04月19日
    浏览(10)
  • InstructGPT高效实践——【DeepSpeed-Chat】源码详解(2/3):Supervised Finetuning、Reward Model Finetuning

    InstructGPT高效实践——【DeepSpeed-Chat】源码详解(2/3):Supervised Finetuning、Reward Model Finetuning

      本篇为上中下三篇章的【中篇】,接续自【上篇】。主要针对三阶段训练中第一阶段、第二阶段较为重要的部分源码进行详解。   尽管官方的上手文档均是以sh文件为例进行演示,且源码中确实也提供了便捷的sh文件供直接使用,但我仍建议通过各阶段的main.py文件(

    2024年02月08日
    浏览(27)
  • ChatGPT 话题相关和类 ChatGPT 工具 | 优质文章、相关论文、应用、学习资源整理

    ChatGPT 话题相关和类 ChatGPT 工具 | 优质文章、相关论文、应用、学习资源整理

    🍉 CSDN 叶庭云 : https://yetingyun.blog.csdn.net/ 人工智能与手机和互联网一样具有革命性。 2023 年已经过去一半,ChatGPT 在今年以来一直备受瞩目。目前 ChatGPT 的更新速度逐渐放缓,热度有所减退,但它的发展和应用仍在继续。这篇博客旨在整理 ChatGPT 话题相关的信息和类 ChatGP

    2024年02月11日
    浏览(15)
  • 论文工具——ChatGPT结合PlotNeuralNet快速出神经网络深度学习模型图

    论文工具——ChatGPT结合PlotNeuralNet快速出神经网络深度学习模型图

    介绍如何安装PlotNeuralNet工具,并结合chatGPT减少学习成本,快速出图。 将按照软件安装和软件使用,以及最终使用结果四个部分进行介绍。 PlotNeuralNet PlotNeuralNet是一个带有python借口的latex包,能够生成任何你需要的神经网络的可视化图片。生成的图片质量很高,可以用于课程

    2024年02月16日
    浏览(13)
  • 必看![文心一言] 中国版ChatGPT“狂飙,傲视诛仙

    必看![文心一言] 中国版ChatGPT“狂飙,傲视诛仙

    最近,有一个叫作ChatGPT的技术产品在社交媒体上引起了热议,这是一种基于人工智能的聊天机器人,能够像人类一样进行对话。目前,它在国外的应用已经非常广泛,而中国地区也在迅速跟进。现在,中国版的文心一言来了!这是一款由百度开发的AI,采用了中国文化和语言

    2024年02月16日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包