InstructGPT 与 ChatGPT的学习与解读

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

最近ChatGPT大火,简单整理了一些文章和帖子。
ps.此时ChatGPT还没公布相应的论文,所有以下内容为官网发布内容,以及一些合理的推测。

InstructGPT

相比于GPT,2022年初推出的InstructGPT在某种程度上更像是ChatGPT的“直系前辈”。因为InstructGPT大量的使用到了人类反馈与指导,在大力出奇迹的GPT3的基础上,更加的进一步精调,使得InstructGPT的输出更加的可控,也就是跟人类习惯更加贴近了。

对于这项工作,OpenAI 表示:“我们成功训练出了在遵守用户意图方面比 GPT-3 显著更强的新语言模型,并且同时确保这些模型更加诚实,减少了有害结果的生成。具体来说,我们采用了在对齐 (alignment) 研究当中掌握的技术,使得这些训练结果成为可能”。

新的模型名为 InstructGPT(instruct 是指导的意思),意即和一般模型训练的自我监督模式不同,这次在新模型的训练当中,OpenAI 重度使用了人类作为“教师”的身份,对模型训练进行反馈和指导。从人类反馈中进行强化学习的过程,称为reinforcement learning from human feedback,简称 RLHF。这个也是使ChatGPT变得特殊的秘密武器(也许~)。

人类的监督即为,每一次GPT的反馈都会交由数据标记员评估,他们对不同 GPT模型版本生成的结果进行打分并优化参数,最后训练得到的即为InstructGPT。
InstructGPT 与 ChatGPT的学习与解读

RLHF

在通过语言模型实现下游任务的过程中,如生成对话任务,在使用token级别的loss以外,我们还会使用评估整体文段输出的指标,人们往往用BLEU或ROUGH等评价指标来刻画模型输出与人类偏好的相近程度,但这也仅仅是在评价的层面,模型在训练的时候是见不到这些人类真实的偏好的。因此,训练阶段,如果直接用人的偏好(或者说人的反馈)来对模型整体的输出结果计算reward或loss,显然是要比上面传统的“给定上下文,预测下一个词”的损失函数合理的多。基于这个思想,便引出了本文要讨论的对象——RLHF(Reinforcement Learning from Human Feedback):即,使用强化学习的方法,利用人类反馈信号直接优化语言模型。

RLHF的训练过程可以分解为三个核心步骤:

  1. 预训练语言模型(LM):如InstructGPT使用了标准的预训练GPT3
  2. 收集数据并训练奖励模型:奖励模型reward model的目标是刻画模型的输出是否在人类看来表现不错。通过已有的Prompt训练奖励模型,奖励模型可以看做一个判别式的语言模型,因此我们可以用一个预训练语言模型热启,而后在 [x=[prompt,模型回答], y=人类满意度] 构成的标注语料上去微调。
  3. 通过强化学习微调 LM:我们将初始语言模型的微调任务建模为强化学习(RL)问题,因此需要定义策略(policy)、动作空间(action space)和奖励函数(reward function)等基本要素。显然,策略就是基于该语言模型,接收prompt作为输入,然后输出一系列文本(或文本的概率分布);而动作空间就是词表所有token在所有输出位置的排列组合(单个位置通常有50k左右的token候选);观察空间则是可能的输入token序列(即prompt),显然也相当大,为词表所有token在所有输入位置的排列组合;而奖励函数则是基于上一章节我们训好的RM模型,配合一些策略层面的约束进行的奖励计算。

如上图所示,标注人员的任务则是对初始语言模型生成的文本进行排序。有人可能会奇怪,为啥不直接让标注人员对文本进行打分呢?这是因为研究人员发现不同的标注员,打分的偏好会有很大的差异(比如同样一段精彩的文本,有人认为可以打1.0,但有人认为只能打0.8),而这种差异就会导致出现大量的噪声样本。若改成标注排序,则发现不同的标注员的打分一致性就大大提升了。一种比较有效的做法是“pair-wise”,即给定同一个prompt,让两个语言模型同时生成文本,然后比较这两段文本哪个好。奖励模型的训练流程:InstructGPT 与 ChatGPT的学习与解读

计算得到奖励reward:首先,基于前面提到的预先富集的数据,从里面采样prompt输入,同时丢给初始的语言模型和我们当前训练中的语言模型(policy),得到俩模型的输出文本y1,y2。然后用奖励模型RM对y1、y2打分,判断谁更优秀。显然,打分的差值便可以作为训练策略模型参数的信号,这个信号一般通过KL散度来计算“奖励/惩罚”的大小。显然,y2文本的打分比y1高的越多,奖励就越大,反之惩罚则越大。这个reward信号就反映了文本整体的生成质量。

InstructGPT 与 ChatGPT的学习与解读
以上摘自:https://mp.weixin.qq.com/s/hm_bbVebSF4JudctCsiRcA

ChatGPT 更进一步

此外,ChatGPT 的强大还依赖于一项秘密武器 —— 一种名为 RLHF(人类反馈强化学习)的训练方法。
大家可以看到ChatGPT的官方示意图跟InstructGPT非常相似。在一定程度上也证明了InstructGPT与之的关系,其实就是一脉相承的,只是在一些细节上进行了修改。

所以当然训练数据的变化应该更大更有影响力。

InstructGPT 与 ChatGPT的学习与解读根据 OpenAI 官方公布的资料,这种训练方法主要也有三个阶段:

  1. 冷启动阶段的监督策略模型:从测试用户提交的 prompt 中随机抽取一批,靠专业的标注人员,给出指定 prompt 的高质量答案,然后用这些人工标注好的 < prompt,answer > 数据来 Fine-tune GPT 3.5 模型,从而让 GPT 3.5 初步具备理解指令中蕴含的意图的能力;
  2. 训练回报模型(Reward Model,RM):随机抽样一批用户提交的 prompt,然后使用第一阶段 Fine-tune 好的冷启动模型为每个 prompt 生成 K 个不同的回答,再让标注人员对 K 个结果进行排序,以此作为训练数据,通过 pair-wise learning to rank 模式来训练回报模型;
  3. 采用强化学习来增强预训练模型的能力:利用上一阶段学好的 RM 模型,靠 RM 打分结果来更新预训练模型参数。可以观察到使用RLHF仍然是被声明为关键环节。

关于RLHF在整个训练过程中到底起了多大作用,我个人比较喜欢张俊林老师的这段话“尽管如此,我觉得第三阶段采用强化学习策略,未必是ChatGPT模型效果特别好的主要原因。假设第三阶段不采用强化学习,换成如下方法:类似第二阶段的做法,对于一个新的prompt,冷启动模型可以产生k个回答,由RM模型分别打分,我们选择得分最高的回答,构成新的训练数据<prompt,answer>,去fine-tune LLM模型。假设换成这种模式,我相信起到的作用可能跟强化学习比,虽然没那么精巧,但是效果也未必一定就差很多。第三阶段无论采取哪种技术模式,本质上很可能都是利用第二阶段学会的RM,起到了扩充LLM模型高质量训练数据的作用。”

实际上我的理解是,无论收敛是否用的是强化学习,其目的是为了引入忍得评价作为一种loss来干预模型的精调,那么无论是一般的token级的比对,还是对每一个输出进行排序打分,亦或是使用RLHF,都不过是一种实现方法,希望后续能有陆续的研究对该内容进行消融实验看看效果。别是消融试验一做,发现如transform一般,很多设置都是帮助不大的,改成MLP is all you need 也可以 \笑。

我的感悟:
  1. 不用恐慌:刚开始我自己没进行测评的时候,看帖子大家说 ChatGPT的短板的时候会说,ChatGPT不能看得懂脑筋急转弯,我当时还在想,那这不是说明ChatGPT已经很厉害很智能了嘛。但是当我自己进行测试,也阅读了很多测试帖子之后,还是明显能感觉到ChatGPT并没有大家说的那么夸张,无懈可击。相反,对于应用ChatGPT到现实生活中,实际上还是很有距离的。最好能把ChatGPT理解成一种工具,他不会直接反馈给你绝对正确的答案,但是能在一定程度上帮助你节约时间,减少工作量,就犹如最近大火的Diffusion model在绘画上面能给画师提供草稿一样,是需要具备一定专业知识的从业人员能利用好的工具,而不是随便来个人加上ChatGPT就可以抢工程师饭碗了。但是在这个基础上,我们可以说ChatGPT的确是能改变某些行业的生态的。
  2. ChatGPT也有短板:在基于 RLHF 范式训练模型时,人工标注的成本是非常高昂的,而 RLHF 性能最终仅能达到标注人员的知识水平。
  3. 合理的认识ChatGPT带来的技术优化:实际上并没有啥突破性的技术进展,但是得到了比较不错的效果。
  4. 数据:数据应该是ChatGPT成功很大程度依赖一个关键因素,首先是人工标注的有监督学习的数据,根据内容编写prompt来得到的。回报函数模型的训练也同样依赖标注者的人工排序。这些不仅需要大量的人力,同时对人工标注的成熟度,准确度也有很大要求,并不容易复现。
  5. 对于非常拿手的写代码,Stack overflow表示:关于 Stack Overflow 为何禁用 ChatGPT,官方表示:「我们正在试图阻止 ChatGPT 随机编造,现阶段让其与当前技术保持平衡是很棘手的主要问题在于,虽然 ChatGPT 产生的答案错误率很高,但我们很难看出来它哪里错了。」这会造成问题回答鱼目混珠的情况,\摊手手

参考文章,部分内容截取自:
【1】OpenAI 拾回初心?总爱乱讲话的GPT-3终于懂事了
【2】台大資訊 深度學習之應用 | ADL 17.2: OpenAI InstructGPT 從人類回饋中學習 ChatGPT 的前身
【3】抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文
【4】张俊林:由ChatGPT反思大语言模型(LLM)的技术精要
【5】ChatGPT的前世今生
【6】张俊林:ChatGPT会成为下一代搜索引擎吗
【7】前沿重器[31] | 理性聊聊ChatGPT文章来源地址https://www.toymoban.com/news/detail-414193.html

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

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

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

相关文章

  • 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日
    浏览(35)
  • ChatGPT的来源-InstructGPT论文简要介绍

    现在大火的ChatGPT功能十分强大,不仅可以回答用户问题,编写故事,甚至还可以写代码。ChatGPT跟OpenAI之前发表的InstructGPT使用的模型方法比较类似,只是训练的数据不同,为了探索ChatGPT的原理,笔者找来2022年3月发表的InstructGPT的论文,做了简要的介绍。 ChatGPT,美国OpenAI 研

    2024年02月02日
    浏览(43)
  • 随着ChatGPT、文言一心的大火,未来可能的生活工作方式

            前面的文章笼统的扯了一些ChatGPT、文言一心的差异化,感觉还是不够明白直观。特地找了一份资料,通过基础能力、进阶能力、和一些垂直领域的几百个各种问题,来对比分析两者的回答情况,让大家可以有个更接地气的了解。         由于问题太多,这里实在没

    2024年02月09日
    浏览(56)
  • 嗯?大火的ChatGPT和new bing都离不开它?

    概述:本文是对 WhalePaper 向量检索领域第一次直播活动内容的文字版,会对向量检索这个 ChatGPT 和 new bing 都离不开的技术进行介绍,结合了 ChatGPT 以及 new bing 的应用场景进行讲解,相信被标题骗进来的你还真能有所收获的(手动狗头)!本期内容入门友好,对课件进行了一

    2024年02月03日
    浏览(45)
  • 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日
    浏览(38)
  • 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日
    浏览(40)
  • 解读一下最近Midjourney开放的中国版

    最近Midjourney在中国开放测试申请,吸引了众多朋友加入,但也存在许多问题需要解答。因此,我决定撰写一份使用指南,以帮助大家更好地理解与国际版的差异。 接下来,我将分为两个部分进行详细介绍,其中一部分涵盖了免费用户可使用的功能和限制,而一些基础功能也

    2024年02月13日
    浏览(43)
  • 最近读的AIGC相关论文思路解读

    提示:本博客是作者本人最近对AIGC领域相关论文调研后,临时记录所用,所有观点都是来自作者本人局限理解,以及个人思考,不代表对。如果你也正好看过相关文章,发现作者的想法和思路有问题,欢迎评论区留言指正! 既然是论文阅读分享,首先,你需要有一些AIGC基础

    2024年02月10日
    浏览(33)
  • 聊一聊近段时间大火的ChatGPT,它真的能代替程序员导致失业潮来袭吗?

    OpenAI又火了!近期许多人的朋友圈里都混进了一个让人既爱又怕的狠角色,以至于StackOverflow不得不急忙下架。 近日,OpenAI发布了聊天AI ChatGPT,短短几天,其用户量直冲百万级,甚至服务器一度被注册用户挤爆了。 这种被网友惊叹“超越谷歌搜索”的神器究竟怎么做到的?到

    2023年04月17日
    浏览(52)
  • Python大火,零基础还能学习么?

    Python近段时间一直涨势迅猛,在各大编程排行榜中崭露头角,得益于它多功能性和简单易上手的特性,让它可以在很多不同的工作中发挥重大作用。 正因如此,目前几乎所有大中型互联网企业都在使用 Python 完成各种各样的工作,比如Web应用开发、自动化运维、人工智能领域

    2024年02月06日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包