原副标题:广度重构ChatGPT控制技术
广度重构ChatGPT控制技术
译者:ryanran,xiamixue,百度PCG应用领域研究技师
ChatGPT主要就特征
ChatGPT其本质是一个谈话数学模型,它能发问日常生活难题、
1)ChatGPT的控制技术大背景
ChatGPT目前未放出学术论文历史文献,仅放出了如是说昌明和试玩API。从昌明中提供的控制技术点和左图来看,它与去年底公布的InstructGPT 中心思想完全一致。其关键性潜能源自四个方面:强悍的底座大数学模型潜能(InstructGPT),高效率的真实世界数据(整洁且丰富),加强自学(PPO演算法)。以上ChatGPT成功的四个基本要素,具体内容将在该文第2部分详尽进行。
2)ChatGPT的主要就特征
让使用者第一印象最真切的是 它有强悍的词汇认知和聚合系统。其谈话潜能、文档聚合潜能、对不同词汇论述的认知均很出众。它以谈话为媒介,能发问各种各样的日常生活难题,对于数轮谈话历史的梦境潜能和字数进一步增强。其二,与GPT3等大数学模型较之,ChatGPT发问更全面性,能多维度多方位进行发问和阐释,相较过往的大数学模型,科学知识被“发掘”得更充份。它能减少了人类文明自学生产成本和节省成本生产成本,能满足用户人类文明大部分日常生活需求,比如说加速为人类文明重写确定目标的文本、图文并茂完成使命和聚合短篇小说、加速功能定位标识符的bug等。
值得一提的是的事, 它具有安全可靠监督机制和除去仇恨潜能。右图这类难题在以前的大数学模型中经常出现,然而ChatGPT在这点上增加了过滤器处理监督机制。特别针对不适度的发问和允诺,它能作出婉拒和“细密”的
对于未知事物的“婉拒”:
当然ChatGPT并非十全十美,其缺点也比较明显。首先, 其简单的逻辑难题错误依旧明显存在,发挥不够稳定(但总体比GPT3好很多)。特别在有谈话历史时,它容易因被使用者误导而动摇。
其二, ChatGPT有时会给出看似合理、但并不正确或甚至荒谬的答案。部分答案需要自行甄别才能判断正误,特别当本身使用者处于未知状态来咨询数学模型时,更加无法判断真伪。ChatGPT使得生产者能用较低生产成本增加错误信息,而这一固有缺点已经造成了一些实际影响。编程问答网站 StackOverflow 宣布暂时禁止使用者发布源自 ChatGPT 聚合的内容,网站 mods 表示:看
此外, 它抵抗不安全可靠的prompt潜能较差,还存在过分猜测使用者意图的难题。这主要就体现在当使用者发问意图不明确时,ChatGPT会猜测使用者意图,理。它通常过度使用一些常见的短语和句式。这与构造训练数据时,使用者倾向于选择
ChatGPT的工作原理 1)ChatGPT的训练过程
ChatGPT训练过程很清晰,主要就分为四个步骤,示意如图所示:
第一步,使用有监督自学方式,基于GPT3.5微调训练一个初始数学模型,训练数据约为2w~3w量级(此处为推测量级,我们根据兄弟数学模型InstructGPT的训练数据量级估算)。由标注师分别扮演使用者和聊天机器人,产生人工精标的数轮谈话数据。值得注意的是,在人类文明扮演聊天机器人时
以上精标的训练数据虽然数据量不大,但质量和多样性非常高,且源自真实世界世界数据,这是很关键性的一点。
质量进行排序的数据:即随机抽取一大批Prompt,使用第一阶段微调数学模型,产生多个不同发问:
,
,
…
,之后标注人员对k个结果排序,形成
组训练数据对。之后使用pairwise loss来训练奖励数学模型,能预测出标注者更喜欢哪个输出。“从比较中”自学能给出相对精确的奖励值。
这一步使得ChatGPT从命令驱动转向了意图驱动。关于这一点,李宏毅老师的原话称,“它会不断引导GPT说人类文明要他说的”。另外,训练数据不需过多,维持在万量级即可。因为它不需要穷尽所有的难题,只要告诉数学模型人类文明的喜好,加强数学模型意图驱动的潜能就行。
第三步,使用PPO加强自学策略来微调第一阶段的数学模型。这里的中心思想是随机抽取新的Prompt,用第二阶段的Reward Model给产生的发问打分。这个分数即发问的整体reward,进而将此reward回传,由此产生的策略梯度能更新PPO数学模型参数。整个过程迭代数次直到数学模型收敛。
加强自学算法演算法即可。它提出了新的目标函数,能在多个训练步骤实现小批量的更新,其实现简单、易于认知、性能稳定、能同时处理离散/连续动作空间难题、利于大规模训练。
以上四个步骤即ChatGPT的训练过程,合称为历史文献中提到的RLHF控制技术。
2)ChatGPT为何成功?
为何三段式的训练方法就能让ChatGPT如此强悍?其实,以上的训练过程蕴含了上文我们提到的关键性点,而这些关键性点正是ChatGPT成功的原因:
强悍的基座数学模型潜能(InstructGPT) 大参数词汇数学模型(GPT3.5) 高效率的真实世界数据(精标的数轮谈话数据和比较排序数据) 性能稳定的加强自学演算法(PPO演算法)我们需要注意的是,chatGPT的成功,是在前期大量工作基础上实现的,非凭空产生的“惊雷”。下面我们将特别针对性阐释:
InstructGPTChatGPT是 InstructGPT的兄弟数学模型(sibling model),后者经过训练以遵循Prompt中的指令,从而提供详尽的响应。InstructGPT是OpenAI在今年3月在历史文献 Training language models to follow instructions with human feedback 中提出的工作。其整体流程和以上的ChatGPT流程基本相同,但是在数据收集、底座数学模型(GPT3 vs GPT 3.5)以及第三步初始化PPO数学模型时略有不同。
此篇能视为RLHF 1.0的收官之作。一方面,从官网来看,这篇文章之后暂时没有发布RLHF的新研究,另一方面这篇文章也佐证了Instruction Tuning的有效性。
InstuctGPT的工作与ChatGPT类似:给定Instruction且需要人工写发问。首先工作人员训练了一个InstructGPT的早期版本,使用完全人工标注的数据,分3类:Instruction+Answer、Instruction+多个examples 和使用者在使用API过程中提出的需求。从第二类数据的标注,推测ChatGPT可能用检索来提供多个In Context Learning的示例,供人工标注。剩余步骤与以上ChatGPT相同。
在完成以上工作后,我们能来看看InstuctGPT与GPT3的区别:
更想要的长篇大论的发问。
GPT3只是个词汇数学模型,它被用来预测下一个单词,丝毫没有考虑使用者想要的答案;当使用代表使用者喜好的三类人工标注为微调数据后,1.3B参数的InstructGPT在多场景下的效果超越175B的GPT3:
InstuctGPT的工作也很有开创性:它在“解锁”(unlock)和发掘GPT3学到的海量数据中的科学知识和潜能,但这些仅通过加速的In-context的方式较难获得。InstuctGPT找到了一种面向主观任务来发掘GPT3强悍词汇潜能的方式。
OpenAI昌明中有这样一段原话: 当我们要解决的安全可靠和对齐难题是复杂和主观,它的好坏无法完全被自动指标衡量的时候,此时需要用人类文明的偏好来作为奖励信号来微调我们的数学模型。
InstuctGPT的前序工作:GPT与加强自学的结合其实在2019年GPT2出世后,OpenAI就有尝试结合GPT-2和加强自学。NeurIPS 2020的 Learning to Summarize with Human Feedback 工作中写道,OpenAI在摘要聚合时,利用了从人类文明反馈中的加强自学来训练。能从这篇工作的整体流程图中,看出三步走的中心思想:收集反馈数据 -> 训练奖励数学模型 -> PPO加强自学。
RLHF第一阶段是特别针对多个候选摘要人工排序(这里就体现出OpenAI的钞潜能,按标注时间计费,标注过快的会被开除);第二阶段是训练排序数学模型(依旧使用GPT数学模型);第三阶段是利用PPO演算法自学Policy(在摘要任务上微调过的GPT)。
该文数学模型能产生比10倍更大数学模型容量更好的摘要效果。但该文也同样指出, 数学模型的成功部分归功于增大了奖励数学模型的规模。但这需要很大量级的计算资源——训练6.7B的加强自学数学模型需要320 GPU-days的生产成本。
2020年初的OpenAI的Fine-Tuning GPT-2 from Human Preferences可看出,它同样首先利用预训练数学模型来训练reward数学模型,进而使用PPO策略进行加强自学。整体步骤初见ChatGPT的雏形!
而RLHF(reinforcement learning from human feedback )的思想,是在2017年6月的OpenAI Deep Reinforcement Learning from Human Preferences工作提出的。其中心思想是利用人类文明的反馈判断最接近视频行为目标的片段;通过训练来找到最能解释人类文明判断的奖励函数,然后使用RL源自学如何实现这个目标。
能说, ChatGPT是站在InstructGPT以及以上理论的肩膀上完成的一项出众的工作,它们将LLM(large language model)/PTM(pretrain language model)与RL(reinforcement learning)出众结合证明这条方向可行。当然,这也是未来还将持续发展的NLP甚至通用智能体的方向。
PPOPPO(Proximal Policy Optimization) 一种新型的Policy Gradient演算法(Policy Gradient是一种加强自学演算法,通过优化智能体的行为策略来解决在环境中实现目标的难题)。我们只需了解普通的Policy Gradient演算法对步长十分敏感,但是又难以选择合适的步长。在训练过程中新旧策略的的变化差异如果过大则不利于自学。
而PPO提出了新的目标函数能在多个训练步骤实现小批量的更新,解决了Policy Gradient演算法中步长难以确定的难题。由于其实现简单、性能稳定、能同时处理离散/连续动作空间难题、利于大规模训练等优势,近年来受到广泛关注,成为OpenAI默认加强自学演算法。
WebGPT和CICERO近两年,利用LLM+RL以及对加强自学和NLP训练的研究,各大巨头在这个领域做了非常多扎实的工作,而这些成果和ChatGPT一样都有可圈可点之处。这里以OpenAI的WebGPT和Meta的Cicero为例。
WebGPT是2021年底OpenAI的工作。其中心思想是使用GPT3数学模型强大的聚合潜能,自学人类文明使用搜索引擎的一系列行为,通过训练奖励数学模型来预测人类文明的偏好,使WebGPT能自己搜索网页来发问开放域的难题,而产生的答案尽可能满足用户人类文明的喜好。
Cicero是Meta AI上个月发布的能以人类文明水平玩文本策略游戏的AI系统,。其同样能与人类文明互动,能使用战略推理和自然词汇与人类文明在游戏玩法中进行互动和竞争。Cicero的核心是由一个谈话引擎和一个战略推理引擎共同驱动的,而战略推理引擎集中使用了RL,谈话引擎与GPT3类似。
Meta原blog中写道:The technology behind CICERO could one day lead to more intelligent assistants in the physical and virtual worlds.
而以上也是我们未来力求突破的方向和愿景: 一个真正多方位的智能的文本助手。
ChatGPT应用领域和思考 1)ChatGPT应用领域
ChatGPT对于文本模态的AIGC应用领域具有重要意义其中有些方向会涉及到交互的全面性改革,比如说机器翻译不再是传统的文档输入->实时翻译,而是随时以助手问答的形式出现。甚至给出一个大概笼统的中文意思,让机器给出对应英文。目前我们目前所做的写作产品,可能也会涉及创作模式的改变和革新。
ChatGPT作为文本形态的基础数学模型,自然能与其他多模态结合比如说最近同为火热的Stable Diffusion数学模型,利用ChatGPT聚合较佳的Prompt,对于AIGC内容和日趋火热的艺术创作,提供强悍的文本形态的动力。
ChatGPT对于搜索引擎的代替性:ChatGPT能作为搜索引擎的有效补充但至于是否能代替搜索引擎(不少人关注的地方),抛开推理生产成本不谈,目前只从效果上来说为时尚早。
对于网络有答案的query,抽取就完全能满足用户,现友商最近就有这样的功能。网络上没有明确答案,即使检索了相关材料(ChatGPT应该还没有这样的功能),也没人能保证聚合结果的可信度。
ChatGPT本身的升级与WebGPT的结合对信息进行实时更新,并且对于事实真假进行判断。现在的ChatGPT没有实时更新和事实判断潜能,而这如果结合WebGPT的自动搜索潜能,让ChatGPT学会自己去海量科学知识库中探索和自学,预测可能会是GPT-4的一项潜能。
还有其他更多方向,包括ChatGPT与最近数理逻辑工作的结合。此处受个人思维所限,无法一一列举。
2)关于ChatGPT的思考
参考上文所述,以及参阅近2年OpenAI GPT词汇数学模型相关的文章,RLHF的方法效果显著, ChatGPT成功的核心也在于基于LLM(Large language model)的RLHF(Reinforcement Learning from Human Feedback)。能说,RLHF是一个很有希望且有趣的方向;加强自学在即将发布的GPT-4中大概率扮演这关键性角色。
结合对于ChatGPT的看法,我们从演算法和行业更新角度作出了阐释:
首先,对于ChatGPT的规模目前没有更多信息支撑,所以无法明确如此智能的ChatGPT是在何规模下达成的。
最早的175B的GPT-3代号是Davinci,其他大小的数学模型有不同的代号。然而自此之后的代号几乎是一片迷雾,不仅没有任何学术论文,官方的如是说性博客也没有。OpenAI称Davinci-text-002/003是GPT-3.5,而它们均为InstrucGPT类型的数学模型,ChatGPT是基于其中一个微调数学模型得到,由此推测ChatGPT可能是千亿数学模型。
其二,ChatGPT不完全算突破式的创新,是OpenAI一步一步扎实工作积累得到的几乎理所当然的结果,属于这两年业界发展的成果汇总。
大家一般没有机会接触千亿数学模型(之前有较少开源的千亿数学模型,GPT-3也是收费的),不了解现在千亿数学模型的潜能边界,对全量微调这个级别的数学模型也无从估计。以Bert和T5为代表的早期Transformer,和现在的大数学模型已不是一个量级。事实上11月28日OpenAI上新了text-davinci-003,但几乎没有引起国内任何讨论。如果ChatGPT(11-30发布)不是免费试玩,或许也不会引起这么大的反响。
同一时期的工作还有Deepmind的Sparrow和Google的LaMDA,效果与ChatGPT应该不相上下。同样以上提到的WebGPT和Cicero也在国内没有太大的水花。这两年LLM发展已经到了这个层级,或许因为生产成本或者工程化难度的难题,某种层面上在国内被忽视了。而此次ChatGPT正好找到了好的“曝光点”,一炮而红。
所以,一方面我们要理性看待ChatGPT的成果,但另一方面ChatGPT的出现,会将我们的认识和国外先进思想拉到一条线上,我们应该思考如何利用这些令人激动的最新成果,而其中关键性是如何找到适合我们入口的方式。
第三,数据处理不是简单的标注,优秀的数据也是一种极大的优势。除去控制技术上的考量,OpenAI很少开源数据,显然他们在数据上也下了大功夫,训练语料质量和开源的C4或The Pile不能同日而语。
当然,我们目前核心使用的开源千亿数学模型,有很多待发掘的潜能。由于其在微调任务中缺乏聚合式的谈话和问答,某些表现不如ChatGPT也在预料之中。但是对于很多任务来说,配合In-context Learning,这个差距会被进一步缩小。
3)如何借鉴和使用ChatGPT
对于ChatGPT的借鉴和使用,大致能归类以下四个方向:
直接使用层面此层面为复用API中效果极佳的部分,直接使用的优势是能快速实现多粒度多层级功能需求。在很多需求难以定义清晰、数据难以获得的情况下,复用并包装这样的功能一本万利。
当然其缺点也很明显。直接调用生产成本是极高的,根据GPT3.5(Davinci)的生产成本推测:1k tokens≈700 words为0.02美元。换算后,一篇2k字的文章直接调用需要0.4人民币。若保守按照日活1w使用者、人均10篇文章计算,则每日调用生产成本为:10000*10*0.4=40000元。虽生产成本过于高昂,但实现时间最少。
另外,根据Musk Twitter上与OpenAI工作人员的谈话,也能 看到每次聊天过程需要几美分的生产成本,所以ChatGPT直接调用生产成本极高。
间接使用层面此层面中心思想是利用OpenAI接口,按照不同需求聚合高效率数据,克服现有数据难获得的瓶颈;进而利用现有开源大数学模型进行数据扩增,这是目前比较切实,实现时间较少,是在时间生产成本和效果上折中的方式。
思想借鉴首先,组内目前有初步尝试参考RLHF的方法,如对多候选进行标注、利用得到的标注结果重新微调聚合数学模型、或者增加排序阶段加入RL自学。其二,我们也尝试一些高效调参的方法微调现有大数学模型。但此条受限于资源尚需评估和确认。
总的来说,将重写从最初的seq2seq,拓展到GPT+Instruction Tuning路径。
实现时间:(1)< (2) < (3)
资源生产成本:(1)> (3) > (2)
交互升级将写作整体打造为ChatBot的形式,此中心思想见另一篇关于谈话系统报告中的如是说,涉及到交互层面的变革。但ChatGPT的出现和核心控制技术让形式升级成为可能。随着广度自学和多智能体系统的发展,未来会有多种、多样、多功能的X-Bot出现。