加入收藏
黔新网

ChatGPT怎么突然变得这么强,博士万字长文深度拆解GPT-3.5能力

2022-12-27 12:12:14  来源:IT之家   阅读量:5998   

ChatGPT是如何从GPT—3逐渐演变而来的。

ChatGPT怎么突然变得这么强,博士万字长文深度拆解GPT-3.5能力

OpenAI最近发布的ChatGPT为人工智能领域注入了一针强心剂,其强大的能力远远超出了自然语言处理研究者的预期。

体验过ChatGPT的用户自然会问:最初的GPT 3是怎么进化成ChatGPT的GPT 3.5惊人的语言能力从何而来

一是2020年版第一代GPT—3和大规模前期训练

第一代GPT—3展示了三种重要能力:

语言生成:按照提示词,然后生成完成提示词的句子这也是当今人类与语言模型最常见的交互方式

知识:包括事实知识和常识。

那么这些能力从何而来。

基本上,以上三种能力都来自于大规模的预训练:在3000亿字的语料库上预训练一个有1750亿个参数的模型。其中包括:

关于世界的知识来自3000亿字的训练语料库。

模型的1750亿个参数是用来存储知识的,梁等人进一步证明了这一点,他们的结论是知识密集型任务的绩效与模型规模密切相关。

令人好奇的是最初的GPT—3有多强。

实际上,很难确定最初的GPT—3是强还是弱。

一方面,它合理地响应了一些特定的查询,并在多个数据集上取得了良好的性能,

另一方面,它在很多任务上的表现不如T5这样的小机型。

在今天ChatGPT的标准下,很难说最初的GPT—3是智能的Meta的开源OPT模型试图重现最初的GPT—3,但它的能力与今天的标准形成鲜明对比很多测试过OPT的人也认为,相比现在的文—达芬奇—002,这款机型真的不怎么样

可是,对于第一代GPT—3,OPT可能是一个足够好的开源近似模型。

虽然第一代GPT—3在表面上看起来很弱,但后来的实验证明,第一代GPT—3具有非常强大的潜力这些潜能后来通过代码训练,指令微调和带有人类反馈的强化学习被解锁,最终的身体表现出极强的突现能力

二。从2020年GPT—3到2022年ChatGPT

从最初的GPT—3开始,为了展示OpenAI是如何发展成ChatGPT的,我们来看看GPT—3.5的进化树:

2020年7月,OpenAI发布了达芬奇第一篇带模型索引的GPT—3论文,此后一直在进化。

2021年7月,Codex的论文发表,其中根据具有120亿个参数的GPT—3变体对初始的Codex进行了微调后来,这个拥有120亿个参数的模型在OpenAI API中演化成了code—cushman—001

2022年3月,OpenAI发表了一篇关于指令调优的论文,其监督指令调优部分对应的是davinci—instruct—beta和text—davinci—001。

2022年4月至7月,OpenAI开始对code—davinci—002模型进行Beta测试,也被称为Codex然后,code—davinci—002,text—davinci—003和ChatGPT都是从code—davinci—002微调而来详情请参考OpenAI的模型索引文档

虽然Codex听起来像一个只关心代码的模型,但code—davinci—002可能是自然语言最强大的GPT 3.5变体Code—davinci—002很可能是通过文字和代码两种方式进行训练,然后根据指令进行调整

那么2022年5—6月发布的text—davinci—002就是基于代码—davinci—002的监督指令微调模型对text—davinci—002上的指令进行微调,很可能会降低模型的上下文学习能力,但会增强模型的零样本能力

然后是text—davinci—003和ChatGPT,都是2022年11月发布的它们是基于人类反馈的强化学习的版本指令微调模型的两个不同变体

Text—davinci—003恢复了text—davinci—002中丢失的部分上下文学习能力,并进一步提高了零样本能力另一方面,ChatGPT似乎牺牲了几乎所有的语境学习能力,来换取对话历史的建模能力

总的来说,在code—davinci—002之前的2020—2021年期间,OpenAI已经投入了大量的精力,通过代码训练和指令微调来增强GPT—3当他们完成代码—达芬奇—002,所有的能力已经存在

指令微调不会向模型中注入新的功能——所有功能都已经存在微调的作用就是解锁/激活这些能力这主要是因为指令微调的数据比预训练的数据少了几个数量级

微调指令将GPT—3.5分成不同的技能树有的比较擅长语境学习,比如text—davinci—003,有的比较擅长对话,比如ChatGPT

许多论文报道code—davinci—002在基准测试中取得了最好的性能在对code—davinci—002上的指令进行微调后,模型可以生成更符合人类预期的反馈,比如:零样本问答,生成安全公平的对话回复,拒绝超出模型知识范围的问题

3.代码—Davinci—002和文本—Davinci—002,代码培训和指令微调。

在code—davinci—002和text—davinci—002之前,有两个中间模型,即davinci—instruct—beta和text—davinci—001两者在很多方面都比上面两种—002型差

所以这一节我们重点讲—002模型。

我们关注码—达芬奇—002,文—达芬奇—002这两兄弟是GPT3.5模型的第一个版本,一个是代码,一个是文本

响应人类指令:过去,GPT—3的输出主要集中在训练集中的常见句子当前模型将为指令/提示生成更合理的答案

对未知任务的泛化:当用于调整模型的指令数量超过一定规模时,模型可以在从未见过的新指令上自动生成有效答案这种能力对于在线部署至关重要,因为用户总是提出新的问题,而模型必须回答它们

代码生成和代码理解:这种能力是显而易见的,因为模型已经用代码训练过了。

用思维链进行复杂推理:第一代GPT3的模型思维链推理能力较弱甚至缺失Code—davinci—002和text—davinci—002是两个思维链推理能力足够强的模型

思维链推理之所以重要,是因为思维链可能是解锁突现能力,超越标度律的关键。

这些能力从何而来。

与之前的模型相比,两个主要区别是指令微调和代码训练。具体来说:

响应人类指令的能力是指令微调的直接产物。

对未知指令进行反馈的泛化能力是在指令数量超过一定水平后自动出现的,T0,Flan和FlanPaLM论文进一步证明了这一点。

利用思维链进行复杂推理的能力,大概是代码训练的一个神奇副产品。在这方面,我们有以下事实作为一些支持:

最初的GPT—3没有接受代码训练,所以它不能进行思维链。

Text—davinci—001模型虽然通过指令进行了微调,但在思维链论文第一版中报道,其其他思维链推理的能力很弱——所以微调指令可能不是思维链存在的原因,但代码训练是模型能做思维链推理最可能的原因。

PaLM有5%的代码训练数据,可以作为思维链。

码纸中的码数据量为159G,约为原GPT—3 5700亿训练数据的28%代码—davinci—002及其后续变体可用于思维链推理

在舵试验中,梁等人对不同的模型进行了大范围的评估他们发现用于代码训练的模型具有很强的语言推理能力,包括拥有120亿个参数的code—cushman—001

我们在AI2的工作还表明,code—davinci—002是目前在配备复杂思维链的重要数学基准上表现最好的模型。

直观来说,面向过程编程非常类似于一步一步解决任务的过程,面向对象编程非常类似于将复杂任务分解成许多简单任务的过程。

以上观察都是代码与推理能力/思维链的相关性,但不一定是因果关系这种相关性很有趣,但仍是一个有待研究的开放性问题目前我们还没有非常确凿的证据证明代码是思维链和复杂推理的起因

此外,代码训练的另一个可能的副产品是远距离依赖,正如刘泳指出的那样:一种语言中下一个单词的预测通常是非常局部的,代码通常需要更长的依赖来做一些事情,比如匹配括号或者引用远处的函数定义。

我想在这里进一步补充:由于面向对象编程中的类继承,代码也可能有助于模型建立编码层次的能力我们将把这一假设的检验留给未来的工作

还要注意一些细节:

文本—达芬奇—002和代码—达芬奇—002

Code—davinci—002是基本型号,text—davinci—002是微调code—davinci—002的产物它对以下数据进行了微调:手动标记的指令和预期输出,由人工注释器选择的模型输出

Code—davinci—002在有上下文实例的情况下更擅长上下文学习,当没有上下文示例/零样本时,text—davinci—002在零样本任务完成上表现更好从这个意义上说,text—davinci—002更符合人类的预期

OpenAI不太可能为了零样本能力而刻意牺牲情境学习的能力——情境学习能力的降低更多的是指令学习的副作用,OpenAI称之为对齐税。

01型号对s. 002型号

01模型主要针对纯代码/纯文本任务,02模型是代码训练和指令微调的深度融合,代码和文本都没问题。

Code—davinci—002可能是第一个深度整合代码训练和指令微调的模型证据:code—cushman—001可以推理,但在纯文本中表现不佳text—davinci—001在纯文本中表现良好,但在推理中表现不佳Code—davinci—002可以同时做到这两点

3.2这些能力是预训练后已经存在的还是微调后注入的。

在这个阶段,我们已经确定了指令微调和代码培训的关键角色一个重要的问题是如何进一步分析代码训练和指令微调的影响

具体来说:以上三种能力在最初的GPT—3中是否已经存在,并且仅通过指令和代码训练来触发/解锁或者这些能力在最初的GPT—3中并不存在,而是通过指令和代码训练注入的

如果答案已经在最初的GPT—3中,那么这些能力也应该在OPT中因此,要再现这些能力,可以直接通过指令和代码来调整OPT

可是,代号—达芬奇—002可能不是基于原来的GPT—3达芬奇,而是基于一个比原来的GPT—3更大的模型如果是这种情况,可能没有办法通过调整OPT来重现

研究界需要进一步了解OpenAI训练出了什么样的模型作为code—davinci—002的基础模型。

我们有以下假设和证据:

代码—达芬奇—002的基本模型可能不是最初的GPT—3达芬奇模型。

第一代GPT—3在数据集C4 2016—2019上进行训练,而代码达芬奇—002的训练集延长至2021年因此,code—davinci—002有可能在2019—2021版C4上进行训练

第一代GPT—3有一个2048字大小的上下文窗口代码—davinci—002的上下文窗口是8192GPT系列使用绝对位置嵌入不经过训练很难直接外推绝对位置嵌入,而且会严重损害模型的性能如果code—davinci—002是基于原来的GPT—3,OpenAI是如何扩展上下文窗口的

另一方面,无论基础模型是最初的GPT—3还是后来训练的模型,遵循指令和零样本泛化的能力可能已经存在于基础模型中,然后会被微调指令解锁。

这主要是因为OpenAI的论文报告的指令数据只有77K,比训练前的数据少了几个数量级。

其他指令微调论文进一步证明了数据集大小对模型性能的比较例如,在Chung等人的工作中,Flan—PaLM的指令微调仅为训练前计算的0.4%一般来说,指令数据会明显少于预训练数据

可是,模型的复杂推理能力可能在预训练阶段由代码数据注入。

代码数据集的大小不同于上述指令微调的大小这里的代码数据足够大,可以占据训练数据的重要部分

如上所述,code—davinci—002之前的模型文本—davinci—001很可能还没有在代码数据上进行微调,所以它的推理/思维链能力很差正如思维链论文第一版所报道的,它有时甚至比参数更小的code—cushman—001还要糟糕

区分代码训练和指令微调的最好方法大概就是对比code—cushman—001,T5和FlanT5。

因为他们有相似的模型大小和相似的训练数据集,所以他们之间最大的区别是他们是否对代码进行过训练/他们是否做过指令微调。

目前还没有这样的对比这个留待以后研究吧

四。基于人类反馈的强化学习的力量

目前,text—davinci—002,text—davinci—003和ChatGPT之间几乎没有严格的统计对比,主要是因为:

在撰写本文时,Text—davinci—003和ChatGPT才出版了不到一个月。

ChatGPT不能通过OpenAI API调用,在标准基准上测试比较麻烦。

因此,这些模型之间的比较更多地基于研究社区的集体经验但我们认为,初步的描述性比较还是可以揭示模型的机理的

首先,我们注意到以下text—davinci—002,text—davinci—003和ChatGPT的对比:

这三个模型都是通过指令进行微调的。

Text—davinci—002是由监督学习指令微调的模型。

Text—davinci—003和ChatGPT是基于人类反馈的强化学习的指令微调这是它们之间最显著的区别

这意味着大多数新模型的行为是RLHF的产物。

那么我们来看看RLHF触发的能力:

信息回复:text—davinci—003的生成通常比text—davinci—002长ChatGPT的回应更加冗长,以至于用户必须明确要求用一句话回答我,才能得到更加简洁的回答这是RLHF的直接产物

公平回应:对于涉及多个实体利益的事件,ChatGPT通常会给出非常平衡的回答这也是RLHF的产物

拒绝不当:这是RLHF触发的内容过滤器和模型自身能力的结合过滤器过滤掉一部分,然后模型拒绝另一部分

拒绝超出他们知识范围的问题:例如,拒绝2021年6月以后发生的新事件这是RLHF最神奇的地方,因为它使模型能够隐式地区分哪些问题在其知识范围内,哪些问题不在其知识范围内

有两件事值得注意:

所有功能都是模型固有的,而不是通过RLHF注入的RLHF的作用是触发/解锁应急能力这个论点主要来自于数据大小的比较:与训练前的数据相比,RLHF占用的计算量/数据要少得多

知道模型不知道的,不是靠写规则实现的,而是靠RLHF解锁的这是一个非常令人惊讶的发现,因为RLHF最初的目标是让模型生成复合人类预期的答案,这更多的是让模型生成安全的句子,而不是让模型知道它不知道的东西

幕后发生的事情可能是:

ChatGPT:通过牺牲上下文学习的能力,我们可以获得对会话历史建模的能力这是一个经验性的观察,因为ChatGPT似乎不像text—davinci—003那样受到上下文演示的强烈影响

Text—davinci—003:恢复了text—davinci—002牺牲的上下文学习能力,提高了零样本能力根据instructGPT的论文,这来自于强化学习调整阶段语言建模的目标

5.总结现阶段GPT—3.5的演进。

到目前为止,我们已经仔细检查了沿着进化树出现的所有能力,下表总结了进化路径:

我们可以得出结论:

语言产出能力+基础世界知识+语境学习都来自于前期训练。

存储大量知识的能力来自于1750亿个参数。

遵循指令并归纳出新任务的能力来自于在指令学习中扩大指令的数量。

执行复杂推理的能力很可能来自代码训练。

中立的,客观的能力,安全的,翔实的答案,来自与人类的结盟。具体来说:

如果是监督学习版本,得到的模型是text—davinci—002。

如果是强化学习版,得到的模型是text—davinci—003。

无论是有人监督还是RLHF,模型在很多任务中的性能都无法超过code—davinci—002这种由对齐导致的性能下降现象被称为对齐税

对对话历史建模。

增加对话信息量。

拒绝模型知识范围之外的问题。

不及物动词GPT—3.5目前不能做什么。

虽然GPT—3.5是自然语言处理研究的重要一步,但它并没有完全包含许多研究者想象的所有理想属性。以下是GPT 3.5版不具备的一些重要属性:

重写实时模型的信念:当模型表达对某件事的信念时,如果信念是错误的,我们可能很难纠正它:

我最近碰到的一个例子是:ChatGPT坚持认为3599是一个素数,尽管它承认3599 = 59 * 61另外,请参考Reddit上最快的海洋哺乳动物的例子

可是,似乎有不同层次的模型信念一个例子是,即使我告诉它达斯·维德赢得了2020年的选举,模型仍然会认为美国现任总统是拜登但如果我把选举年改成2024年,它会认为总统是达斯·维德,2026年的总统

形式推理:GPT—3.5系列无法在数学或一阶逻辑等形式严格的系统中进行推理,

在自然语言处理的文献中,推理一词的定义往往不明确但如果从模糊性的角度来看,比如有些问题很模糊,没有推理性,有一定的逻辑在里面,但有些地方也可以模糊,非常严谨,不能含糊

然后,该模型可以很好地进行类的模糊推理。例如:

如何做豆腐做豆腐脑的时候,中间很多步骤稍微模糊一点,比如是做咸的还是做甜的,还是可以接受的只要整体步骤大致正确,豆腐脑就可以吃了

数学定理证明的思路证明的思想是用语言表达的非正式的一步一步的解决方案,其中每一步的严格推导不需要太具体数学教学中经常用到证明思想:只要老师给出一个大致正确的整体步骤,学生就能大致理解然后老师把证明的具体细节作为作业分配给学生,答案省略了

GPT—3.5不能进行类型推理。

一个例子是严格的数学证明,它要求中间步骤不能被跳过,模糊或出错。

但这种严格的推理究竟应该由语言模型还是符号系统来完成,还有待商榷一个例子是,与其试图让GPT做三位数加法,不如直接调Python

从互联网上搜索:GPT—3.5系列不能直接搜索互联网。

可是,2021年12月发表了一篇WebGPT论文,其中GPT称之为搜索引擎所以在OpenAI内部测试了检索能力

这里需要区分的是,GPT—3.5的两个重要但不同的能力是知识和推理总的来说,如果能把知识卸载到外部检索系统,让语言模型只专注于推理就好了

模型的内部知识总是在某个时候被切断模特总是需要最新的知识来回答最新的问题

回想一下,我们已经讨论过1750亿个参数用于存储知识如果能从模型中卸载知识,那么模型参数可能会大大减少,最后甚至可以在手机上运行

七。结论

第一代GPT—3模型通过预训练获得了生成,世界知识和情境学习的能力然后通过指令调优的模型分支,获得对指令的跟随和对不熟悉任务的概括能力经过代码训练后,分支模型获得了代码理解的能力作为代码训练的副产品,该模型还可能获得复杂推理的能力

结合这两个分支,code—davinci—002似乎是最强的GPT—3.5模型,具有所有强大的功能接下来通过监督指令调优和RLHF,牺牲模型能力来换取与人类的比对,也就是比对税RLHF使模型能够生成更详细和公平的答案,同时拒绝超出其知识范围的问题

我们希望这篇文章可以帮助提供一个清晰的GPT评估图,并引发一些关于语言模型,指令调优和代码调优的讨论最重要的是,我们希望这篇文章可以作为在开源社区复制GPT 3.5的路线图

常见问题

这篇文章中的这些陈述更像是假设还是结论。

复杂推理的能力来自代码训练,这是我们倾向于相信的假设。

至少有四篇论文的结论是,未知任务的泛化能力来自大规模的指令学习。

这是一个有根据的猜测,GPT—3.5来自其他大型基本模型,而不是具有1750亿个参数的GPT—3。

所有这些能力都已经存在通过指令调优,无论是有监督学习还是强化学习来解锁这些能力而不是注入,都是一个你不敢相信的强假设主要是因为指令调优数据比预训练数据少几个数量级

结论=许多证据支持这些陈述的正确性,假设=有肯定的证据但不够有力,根据猜测=没有确凿的证据,但一些因素会指向这个方向。

为什么其他型号没那么厉害。

OPT大概是因为训练过程太不稳定。

布鲁姆的情况不明。

原始链接:

声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。