ChatGPT技术解构

ChatGPT的训练主要分为三个步骤,如图所示:

Step1:

使用有监督学习方式,基于GPT3.5微调训练一个初始模型;训练数据约为2w~3w量级(根据InstructGPT的训练数据量级估算,参照https://arxiv.org/pdf/2203.02155.pdf P33 Table6),由标注师分别扮演用户和聊天机器人,产生人工精标的多轮对话数据;值得注意的是,在人类扮演聊天机器人时,会得到机器生成的一些建议来帮助人类撰写自己的回复,以此提高撰写标注效率。

以上精标的训练数据虽然数据量不大,但质量和多样性非常高,且来自真实世界数据,这是很关键的一点。经过第一步,微调过的GPT3.5初步具备了理解人类Prompt所包含意图的能力,可以根据不同意图给出高质量的回答。

Step2:

收集相同上文下,根据回复质量进行排序的数据:即随机抽取一大批Prompt,使用第一阶段微调模型,产生多个不同回答,之后标注人员对结果排序,形成 C^{2}_{n} 组训练数据对,使用pairwise loss来训练Reward Model,从而可以预测出标注者更喜欢哪个输出。这种比较学习可以给出相对精确的reward值。

这一步使得ChatGPT从命令驱动转向了意图驱动。训练数据不需过多,维持在万量级即可,因为它不需要穷尽所有的问题,只是要告诉模型人类的喜好,强化模型意图驱动的能力。

Step3:

使用PPO来微调第一阶段的模型。核心思想是随机抽取新的Prompt,用第二阶段的Reward Model给产生的回答打分,这个分数即回答的整体reward;进而将此reward回传,由此产生的策略梯度可以更新PPO模型参数;整个过程迭代数次直到模型收敛。

以上三个步合称为文献中提到的 RLHF(Reinforcement Learning from Human Feedback) 技术。

相关技术

InstructGPT

ChatGPT是InstructGPT的兄弟模型(sibling model),后者经过训练以遵循Prompt中的指令,提供详细的响应。InstructGPT是OpenAI在今年3月在Training language models to follow instructions with human feedback中提出的模型,整体流程和以上的ChatGPT流程基本相同,除了在数据收集和基座模型(GPT3 vs GPT 3.5),以及第三步初始化PPO模型时略有不同。

在InstuctGPT的工作中,与ChatGPT类似,给定Instruction,需要人工写回答。首先训练一个InstructGPT的早期版本,使用完全人工标注的数据,数据分为3类:Instruction+Answer,Instruction+多个examples和用户在使用API过程中提出的需求。从第二类数据的标注,推测ChatGPT可能用检索来提供多个In Context Learning的示例,供人工标注。剩余步骤与以上ChatGPT相同。

尤其需要重视但往往容易被忽视的,即OpenAI对于数据质量和数据泛化性的把控,这也是OpenAI的一大优势:

1)寻找高质量标注者:寻找在识别和回应敏感提示的能力筛选测试中,表现良好的labeler;

2)使用集外标注者保证泛化性:即用未经历以上1)步骤的更广大群体的标注者对训练数据进行验证,保证训练数据与更广泛群体的偏好一致。

在完成以上工作后,我们可以来看看InstuctGPT与GPT3的区别,通过下图可以明显看出:

GPT3的回答简短,回复过于通用毫无亮点;而InstructGPT“侃侃而谈”,解释自由主义为何愚蠢,显然模型学到了对于此类问题人们更想要的长篇大论的回答。

GPT3只是个语言模型,它被用来预测下一个单词,丝毫没有考虑用户想要的答案;当使用代表用户喜好的三类人工标注为微调数据后,1.3B参数的InstructGPT在多场景下的效果超越175B的GPT3: 

InstuctGPT的工作具有开创性,它挖掘了GPT3学到的海量数据中的知识和能力,但这些仅通过快速的In-context的方式较难获得;可以说,InstuctGPT找到了一种面向主观任务来解锁GPT3强大语言能力的方式。

PPO

PPO(Proximal Policy Optimization) 一种新型的Policy Gradient算法(Policy Gradient是一种强化学习算法,通过优化智能体的行为策略来解决在环境中实现目标的问题)。我们只需了解普通的Policy Gradient算法对步长十分敏感,但是又难以选择合适的步长,在训练过程中新旧策略的的变化差异如果过大则不利于学习。

而PPO提出了新的目标函数可以在多个训练步骤实现小批量的更新,解决了Policy Gradient算法中步长难以确定的问题。由于其实现简单、性能稳定、能同时处理离散/连续动作空间问题、利于大规模训练等优势,近年来收到广泛的关注,同时也成为OpenAI默认强化学习算法。

GPT与强化学习

再往前回溯,其实在2019年GPT2出世后,OpenAI就有尝试结合GPT-2和强化学习。在NIPS2020的Learning to Summarize with Human Feedback中,OpenAI对于摘要生成任务,利用了人类反馈对强化学习模型进行训练。可以从这篇工作的整体流程图中,看出三步走的核心思想: 收集反馈数据 -> 训练奖励模型 -> PPO强化学习。

 RLHF第一阶段,针对多个候选摘要,人工排序(这里就体现出OpenAI的钞能力,按标注时间计费,标注过快的会被开除);第二阶段,训练排序模型(依旧使用GPT模型);第三阶段,利用PPO算法学习Policy(在摘要任务上微调过的GPT)。

文中模型可以产生比10倍大模型容量更好的摘要效果。但文中也同样指出,模型的成功部分归功于增大了Reward Model的规模,而这需要很大量级的计算资源,训练6.7B的强化学习模型需要320 GPU-days的成本。

另一篇2020年初的工作,是OpenAI的Fine-Tuning GPT-2 from Human Preferences。同样首先利用预训练模型,训练Reward模型;进而使用PPO策略进行强化学习,整体步骤初见ChatGPT的雏形。

而RLHF的思想,是在更早的2017年6月的OpenAI Deep Reinforcement Learning from Human Preferences提出,核心思想是利用人类的反馈,判断最接近视频行为目标的片段,通过训练来找到最能解释人类判断的奖励函数,然后使用RL来学习如何实现这个目标。

可以说,ChatGPT是站在InstructGPT以及以上理论的肩膀上完成的一项出色的工作,它们将LLM (large language model) / PTM (pretrain language model) 与 RL (reinforcement learning) 出色结合,证明这个方向可行。

WebGPT和CICERO

WebGPT是2021年底OpenAI的工作,其核心思想是使用GPT3模型强大的生成能力,学习人类使用搜索引擎的一系列行为,通过训练奖励模型来预测人类的偏好,使WebGPT可以自己搜索网页来回答开放域的问题,而产生的答案尽可能满足人类的喜好。

Cicero是Meta AI上个月发布的可以以人类水平玩文字策略游戏的AI系统, 其同样可以与人类互动,可以使用战略推理和自然语言与人类在游戏玩法中进行互动和竞争。Cicero的核心是由一个对话引擎和一个战略推理引擎共同驱动的,而战略推理引擎集中使用了RL,对话引擎与GPT3类似。

应用难点

对于ChatGPT的规模,目前没有更多信息支撑,所以无法明确如此智能的ChatGPT是在何规模下达成的。 最早的175B的GPT-3代号是Davinci,其他大小的模型有不同的代号。然而自此之后的代号几乎是一片迷雾,不仅没有任何论文,官方的介绍性博客也没有。OpenAI称Davinci-text-002/003是GPT-3.5,而它们均为InstrucGPT类型的模型,ChatGPT是基于其中一个微调模型得到,固由此推测ChatGPT可能是千亿模型。

大家一般没有机会接触千亿模型(Bloom之前没有开源的千亿模型,GPT-3也是收费的),不了解现在千亿模型的能力边界,对全量微调这个级别的模型也无从估计。ChatGPT的推断成本是比较高的。根据GPT3.5(Davinci)的成本推测:

1k tokens≈700 words为0.02美元,则换算后,一篇2k字的文章,直接调用需要0.4人民币,若保守按照日活1w用户,人均10篇文章计算,则每日调用成本为:10000x10x0.4=40000元。

和以前的模型比较,以BERT和T5为代表的早期Transformer和现在的大模型已不是一个量级。事实上11月28日OpenAI上新了text-davinci-003几乎没有引起国内的任何讨论,如果ChatGPT(11.30发布)不是免费试用,或许也不会引起这么大的反响。

同一时期的工作还有Deepmind的Sparrow和Google的LaMDA,效果与ChatGPT应该不相上下。同样以上提到的WebGPT和Cicero也在国内没有太大的水花。这两年LLM发展已经到了这个层级,或许因为成本或者工程化难度的问题,某种层面上在国内被忽视了。而此次ChatGPT正好找到了好的“曝光点”,一炮而红。

从OpenAI的成功可以看出,优秀的数据是一种极大的优势——除去技术上的考量,OpenAI很少开源数据,显然他们在数据上也下了大功夫,训练语料质量和开源的C4或The Pile不能同日而语;对于我们目前核心使用的扩增模型,Bloom作为千亿模型有很多待挖掘的能力。Bloom的微调任务中缺乏生成式的对话和问答,某些表现不如ChatGPT也在预料之中(实际上在Bloom的测试中,唯一与InstructGPT有重合的任务,是Bloom表现更好)。但是对于很多任务来说,配合In-context Learning,这个差距会被进一步缩小。

所以,我们应该思考如何利用这些令人激动的最新成果,而其中关键是如何找到适合我们入口的方式。比如使用ChatGPT,按不同需求生成高质量小样本数据,克服现有数据难获得的瓶颈;进而利用现有Bloom(GPT3模型)进行数据扩增。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。

1.ChatGPT简介【核心技术、技术局限】 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c…

【ChatGPT】技术原理:ChatGPT怎么工作?

目录 简介:ChatGPT的工作原理概述 Transformer 架构原理

让 ChatGPT 成为算法工程师的数据助理

让 ChatGPT 成为算法工程师的数据助理 最近被 OpenAI 的 ChatGPT 刷屏了。我猜你已经读了很多关于 ChatGPT 的文章,不需要再介绍了。假如碰巧您还不太了解 ChatGPT 是什么,可以先看一下这篇文章,然后再回来继续。 与 ChatGPT 对话很有趣&am…

ChatGPT生成式算法及发展历程

引言 GPT(Generative Pre-Trained Transformer)系列是OpenAI开发的一系列以Transformer[2]为基础的生成式预训练模型,这个系列目前包括文本预训练模型GPT-1[3],GPT-2[4],GPT-3[5],InstructGPT[7]、ChatGPT…

ChatGPT背后算法—RLHF都有哪些必读论文

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! ChatGPT有多火? 用一个通俗易懂的话来表达,ChatGPT就是爱豆中的鹿晗、蔡徐坤、杨超越;脱口秀界的李诞、徐志胜;足球界的梅西、C罗、姆巴佩... 前段时间&#xff0…

ChatGPT第二弹:PPO算法

作者:陈一帆 出处:哈工大SCIR 进NLP群—>加入NLP交流群 1. ChatGPT与PPO算法 在上篇文章中我们提到,ChatGPT的训练过程主要分为三步:微调GPT-3模型、人工对微调后模型的生成结果打分以训练得到一个奖励模型、 基于微调后的GPT-…

【自然语言处理】ChatGPT 相关核心算法

ChatGPT 相关核心算法 ChatGPT 的卓越表现得益于其背后多项核心算法的支持和配合。本文将分别介绍作为其实现基础的 Transformer 模型、激发出其所蕴含知识的 Prompt / Instruction Tuning 算法、其涌现出的 思维链能力、以及确保其与人类意图对齐的 基于人类反馈的强化学习算法…

ChatGPT技术原理解析:从RL之PPO算法、RLHF到GPT4、instructGPT

写在最前面,为了彻底写清楚ChatGPT背后的所有关键细节,每个月不断深挖,从1月初写到6月底仍未完工,除了本文之外,过程中涉及到多篇文章(RL入门、论文解读、微调实战、代码实现、CV多模态),再加上之前写的Tra…

使用ChatGPT生成了十种排序算法

前言 当前ChatGPT非常火爆,对于程序员来说,ChatGPT可以帮助编写很多有用的代码。比如:在算法的实现上,就可以替我们省很多事。所以,小试牛刀一下,看看ChatGPT生成了排序算法怎么样? 简介 排序…

ChatGPT/InstructGPT详解

来源:京东云 海豚数据科学实验室 本文约7000字,建议阅读15分钟 要搞懂ChatGPT,我们必须要先读懂InstructGPT。 前言 GPT系列是OpenAI的一系列预训练文章,GPT的全称是Generative Pre-Trained Transformer,顾名思义&…

我用低代码结合ChatGPT开发,每天多出1小时摸鱼

👉腾小云导读 GPT 出现之后,很多人推测大量的软件都会因为其出现而重写。本文主要是低代码平台与 ChatGPT 结合的一些思考以及实践。期望与各位读者一起搭上 AI 这列快车,为开发提提速~ 👉目录 1 背景 2 Demo 演示 3 思…

ChatGPT是智能硬件的春天

智能音箱,一度被亚马逊带领引爆。 国内京东,阿里,百度,小米,腾讯等厂家参下,蓬勃发展。 然而,在2021到2022年,智能音箱就可开始下滑,叮咚音箱退出历史舞台。 转机出现在2…

万字长文剖析ChatGPT

原文链接:https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ 简单来说,ChatGPT 是自然语言处理(NLP)和强化学习(RL)的一次成功结合,考虑到读者可能只熟悉其中一个方向或者两个方向都不太熟悉…

推荐:ChatGPT指令大全(37个!)

使用时,可参考这些语境。会问问题,才是最重要的。 参考:AGI 时代必备:《提问的艺术——让ChatGPT导出高质量答案》 1. 写报告:我现在正在 [报告的情境与目的]。我的简报主题是 [主题],请提供 [数字] 种开头…

亚马逊高调宣布入局ChatGPT大战,CEO :个人免费使用,改变所有体验,弯道超车!...

点击“开发者技术前线”,选择“星标” 让一部分开发者看到未来 转载自:机器之心 新工具叫 Bedrock,用于一揽子替代 ChatGPT 和 DALL-E 2,并支持了 Titan 大模型。 一夜之间,亚马逊来了个「弯道超车」。 在全球各大科技…

EXCEL 也可以使用chatGPT了,教程来了

1、打开EXCEL ,点击插入,选择加载项:如下图 2、搜索Openai ,点击右侧添加BrainiacHelper 插件即可; 3、登录openai 右上角获取openai apikeys ; 完成以上操作就可以在Excel 中使用 chatGPT了, 喜欢的小伙伴可以试试哦…

突发!ChatGPT 开始大面积封号,注册功能关闭!亚洲成重灾区,网友自救喊话:不要登录,不要登录...

公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! ​ “不要登录ChatGPT!” “暂时远离人工智能和ChatGPT概念板块高位股!” 就在这两天,一些关于ChatGPT的疾呼突然在各种社交平台和群聊刷屏了。 …

chatgpt入门体验【具体操作】

chatgpt入门体验【具体操作】 前提操作步骤遇到问题 前提 这个得花点小烟钱才行。 操作步骤 1、账号注册 https://chat.openai.com/auth/login 2、虚拟手机号 https://sms-activate.org/ 我是用的是网易邮箱 充值 可使用支付宝 选择openAI 3、打开openAI 注册输入验证码 …

一键部署属于自己的ChatGPT-Next-Web

完整功能刚需: OpenAI 注册登录之后给的 api Key GitHub账号 Netlify账号 Tip: 注册 OepenAI账号 需要用国外手机号 这里建议去一些渠道购买账号 十块钱不到如果访问 OpenAI 的话 一定要挂欧美节点 否则禁止IP访问 概率会被封号为什么用 Netlify 托…

ChatGPT - 横看成岭侧成峰

定义 ChatGPT 是什么? ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序,由 OpenAI 公司于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。 ChatGPT以对话方式进行交互,可以用于包括自动文本生成、自…