机器之心发布
作者:符尧、彭昊、Tushar Khot、郭志江等
符尧(yao.fu@ed.ac.uk),爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学。他与彭昊、Tushar Khot在艾伦人工智能研究院 (Allen Institute for AI) 共同完成英文原稿,与剑桥大学郭志江共同翻译为中文。
感谢上海交通大学何俊贤,加州大学洛杉矶分校鲁盼,达特茅斯学院刘睿博对初稿的讨论与建议。感谢 Raj Ammanabrolu (Allen Institute for AI), Peter Liu (Google Brain), Brendan Dolan-Gavitt (New York University), Denny Zhou (Google Brain) 对终稿的讨论和建议,他们的建议极大程度上增加了本文的完整度。
最近,OpenAI的预训练模型ChatGPT给人工智能领域的研究人员留下了深刻的印象和启发。毫无疑问,它又强又聪明,且跟它说话很好玩,还会写代码。它在多个方面的能力远远超过了自然语言处理研究者们的预期。于是我们自然就有一个问题:ChatGPT 是怎么变得这么强的?它的各种强大的能力到底从何而来?在这篇文章中,我们试图剖析 ChatGPT 的突现能力[1](Emergent Ability),追溯这些能力的来源,希望能够给出一个全面的技术路线图,来说明 GPT-3.5[2] 模型系列以及相关的大型语言模型[3] 是如何一步步进化成目前的强大形态。
我们希望这篇文章能够促进大型语言模型的透明度,成为开源社区共同努力复现 GPT-3.5 的路线图。
致国内的同胞们:
目录
多年以后,面对行刑队,奥雷里亚诺·布恩迪亚上校将会回想起父亲带他去见识冰块的那个遥远的下午。 —— 《百年孤独》 加西亚·马尔克斯
初代GPT-3展示了三个重要能力:
那么这些能力从何而来呢?
基本上,以上三种能力都来自于大规模预训练:在有3000亿单词的语料上预训练拥有1750亿参数的模型( 训练语料的60%来自于 2016 - 2019 的 C4 + 22% 来自于 WebText2 + 16% 来自于Books + 3%来自于Wikipedia)。其中:
令人好奇的是,初代的GPT-3有多强。
其实比较难确定初代 GPT-3(在 OpenAI API 中被称为davinci)到底是“强”还是“弱”。一方面,它合理地回应了某些特定的查询,并在许多数据集中达到了还不错的性能;另一方面,它在许多任务上的表现还不如 T5 这样的小模型(参见其原始论文)。在今天(2022 年 12 月)ChatGPT 的标准下,很难说初代的 GPT-3 是“智能的”。Meta 开源的 OPT 模型试图复现初代 GPT-3,但它的能力与当今的标准也形成了尖锐的对比。许多测试过 OPT 的人也认为与现在的text-davinci-002相比,该模型确实 “不咋地”。尽管如此,OPT 可能是初代 GPT-3 的一个足够好的开源的近似模型了(根据 OPT 论文和斯坦福大学的 HELM 评估)。
虽然初代的 GPT-3 可能表面上看起来很弱,但后来的实验证明,初代 GPT-3 有着非常强的潜力。这些潜力后来被代码训练、指令微调 (instruction tuning) 和基于人类反馈的强化学习 (reinforcement learning with human feedback, RLHF) 解锁,最终体展示出极为强大的突现能力。
从最初的 GPT-3 开始,为了展示 OpenAI 是如何发展到ChatGPT的,我们看一下 GPT-3.5 的进化树:
在 2020 年 7 月,OpenAI 发布了模型索引为的 davinci
的初代 GPT-3 论文[6] ,从此它就开始不断进化。在 2021 年 7 月,Codex 的论文[7] 发布,其中初始的 Codex 是根据(可能是内部的)120 亿参数的 GPT-3 变体进行微调的。后来这个 120 亿参数的模型演变成 OpenAI API 中的 code-cushman-001。在 2022 年 3 月,OpenAI 发布了指令微调[8] (instruction tuning) 的论文,其监督微调[9] (supervised instruction tuning) 的部分对应了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的模型索引文档[10] 。
尽管 Codex 听着像是一个只管代码的模型,但code-davinci-002
可能是最强大[11] 的针对自然语言的GPT-3.5 变体(优于 text-davinci-002
和 -003
)。code-davinci-002
很可能在文本和代码上都经过训练,然后根据指令进行调整(将在下面解释)。然后2022 年 5-6 月发布的text-davinci-002
是一个基于code-davinci-002
的有监督指令微调 (supervised instruction tuned) 模型。在text-davinci-002
上面进行指令微调很可能降低了模型的上下文学习能力,但是增强了模型的零样本能力(将在下面解释)。然后是text-davinci-003
和 ChatGPT
,它们都在 2022 年 11 月发布,是使用的基于人类反馈的强化学习的版本指令微调 (instruction tuning with reinforcement learning from human feedback) 模型的两种不同变体。text-davinci-003
恢复了(但仍然比code-davinci-002
差)一些在text-davinci-002
中丢失的部分上下文学习能力(大概是因为它在微调的时候混入了语言建模) 并进一步改进了零样本能力(得益于RLHF)。另一方面,ChatGPT 似乎牺牲了几乎所有的上下文学习的能力来换取建模对话历史的能力。
总的来说,在 2020 - 2021 年期间,在code-davinci-002
之前,OpenAI 已经投入了大量的精力通过代码训练和指令微调来增强GPT-3。当他们完成code-davinci-002
时,所有的能力都已经存在了。很可能后续的指令微调,无论是通过有监督的版本还是强化学习的版本,都会做以下事情(稍后会详细说明):
text-davinci-003
,有些更擅长对话,如ChatGPT
。code-davinci-002
在基准测试中实现了最佳性能(但模型不一定符合人类期望)。在code-davinci-002
上进行指令微调后,模型可以生成更加符合人类期待的反馈(或者说模型与人类对齐),例如:零样本问答、生成安全和公正的对话回复、拒绝超出模型它知识范围的问题。在code-davinci-002
和text-davinci-002
之前,有两个中间模型,分别是 davinci-instruct-beta 和 text-davinci-001。两者在很多方面都比上述的两个-002模型差(例如,text-davinci-001 链式思维推理[14] 能力不强)。所以我们在本节中重点介绍 -002 型号。
我们关注code-davinci-002
和text-davinci-002
,这两兄弟是第一版的 GPT3.5 模型,一个用于代码,另一个用于文本。它们表现出了三种重要能力与初代 GPT-3 不同的能力:
这些能力从何而来?
与之前的模型相比,两个主要区别是指令微调和代码训练。具体来说
另外还要注意一些细节差异:
3.2 这些能力是在预训练之后已经存在还是在之后通过微调注入?
在这个阶段,我们已经确定了指令微调和代码训练的关键作用。一个重要的问题是如何进一步分析代码训练和指令微调的影响?具体来说:上述三种能力是否已经存在于初代的GPT-3中,只是通过指令和代码训练触发 / 解锁?或者这些能力在初代的 GPT-3 中并不存在,是通过指令和代码训练注入? 如果答案已经在初代的 GPT-3 中,那么这些能力也应该在 OPT 中。因此,要复现这些能力,或许可以直接通过指令和代码调整 OPT。 但是,code-davinci-002 也可能不是基于最初的 GPT-3 davinci,而是基于比初代 GPT-3 更大的模型。如果是这种情况,可能就没办法通过调整 OPT 来复现了。研究社区需要进一步弄清楚 OpenAI 训练了什么样的模型作为 code-davinci-002 的基础模型。
我们有以下的假设和证据:
在当前阶段(2022 年 12 月), text-davinci-002、text-davinci-003 和 ChatGPT之间几乎没有严格的统计上的比较,主要是因为
所以在这些模型之间的比较更多是基于研究社区的集体经验 (统计上不是很严格)。不过,我们相信初步的描述性比较仍然可以揭示模型的机制。
我们首先注意到以下 text-davinci-002,text-davinci-003 和 ChatGPT 之间的比较:
这意味着大多数新模型的行为都是 RLHF 的产物。
那么让我们看看 RLHF 触发的能力:
有两件事情值得注意:
幕后发生的事情可能是:
五、总结当前阶段 GPT-3.5 的进化历程
到目前为止,我们已经仔细检查了沿着进化树出现的所有能力,下表总结了演化路径:
表格中引用见[33]
我们可以得出结论:
davinci
)Davinci-instruct-beta
)code-davinci-002
)text-davinci-002
text-davinci-003
ChatGPT
),具体来说它牺牲了上下文学习的能力,来换取:虽然GPT-3.5是自然语言处理研究中的重要一步,但它并没有完全包含许多研究人员(包括 AI2)设想的所有理想属性。以下是GPT-3.5不具备的某些重要属性:
七、结论
在这篇博文中,我们仔细检查了GPT-3.5系列的能力范围,并追溯了它们所有突现能力的来源。初代GPT-3模型通过预训练获得生成能力、世界知识和in-context learning。然后通过instruction tuning的模型分支获得了遵循指令和能泛化到没有见过的任务的能力。经过代码训练的分支模型则获得了代码理解的能力,作为代码训练的副产品,模型同时潜在地获得了复杂推理的能力。结合这两个分支,code-davinci-002似乎是具有所有强大能力的最强GPT-3.5模型。接下来通过有监督的instruction tuning和 RLHF通过牺牲模型能力换取与人类对齐,即对齐税。RLHF 使模型能够生成更翔实和公正的答案,同时拒绝其知识范围之外的问题。
我们希望这篇文章能够帮助提供一个清晰的GPT评估图,并引发一些关于语言模型、instruction tuning和code tuning的讨论。最重要的是, 我们希望这篇文章可以作为在开源社区内复现GPT-3.5的路线图。
“因为山就在那里。”——乔治·马洛里,珠穆朗玛峰探险先驱
附录 - 中英术语对照表
注释:
[1] 很多能力小模型没有,只有当模型大到一定的量级之后才会出现。这样的能力称为突现能力 Emergent Abilities
[2] GPT-3 是 OpenAI 在 2020 年发布的模型,之后它经过了多次版本迭代。现在最新的版本的能力已经远超初代的 GPT-3,被命名为 GPT-3.5
[3] 从 2022 年的标准看来,参数量超过 100B 才叫大模型,所以 BERT/ BART/ GPT-2/ T5 都是小模型
[4] https://crfm.stanford.edu/helm/v1.0/?group=knowledge
[5] Xie et. al. 2021. An Explanation of In-context Learning as Implicit Bayesian Inference
Min et. al. 2022. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?
一个很有趣的但是还在审稿中的工作: https://arxiv.org/abs/2211.15661
[6] Brown. et. al. 2020. Language Models are Few-Shot Learners
[7] Chen et. al. 2021. Evaluating Large Language Models Trained on Code
[8] Ouyang et. al. 2022. Training language models to follow instructions with human feedback
[9] Instruction tuning 有两个版本,一个是 supervised tuning,另一个是 reinforcement learning from human feedback (RLHF). ChatGPT 就是通过 RLHF 得来的
[10] https://beta.openai.com/docs/model-index-for-researchers
[11] Suzgun et. al. 2022. Challenging BIG-Bench tasks and whether chain-of-thought can solve them
Chung et. al. 2022. Scaling Instruction-Finetuned Language Models
Fu et. al. 2022. Complexity-based Prompting for Multi-Step Reasoning
Madaan et. al. 2022. Language Models of Code are Few-Shot Commonsense Learners
[12] Ouyang et. al. 2022. Training language models to follow instructions with human feedback
[13] Suzgun et. al. 2022. Challenging BIG-Bench tasks and whether chain-of-thought can solve them
Chung et. al. 2022. Scaling Instruction-Finetuned Language Models
Fu et. al. 2022. Complexity-based Prompting for Multi-Step Reasoning
Madaan et. al. 2022. Language Models of Code are Few-Shot Commonsense Learners
[14] 参见附录中的图8 https://arxiv.org/pdf/2201.11903v1.pdf
[15] https://yaofu.notion.site/A-Closer-Look-at-Large-Language-Models-Emergent-Abilities-493876b55df5479d80686f68a1abd72f
[16] Sanh. et. al. Oct 2021. Multitask Prompted Training Enables Zero-Shot Task Generalization
[17] Wei et. al. Sep 2021. Finetuned Language Models Are Zero-Shot Learners
[18] Chung et. al. Oct 2022. Scaling Instruction-Finetuned Language Models
[19] 第一个版本(https://arxiv.org/pdf/2201.11903v1.pdf) 报告了davinci在GSM8K上的准确率 12.4
v.s. 第五个版本 (https://arxiv.org/pdf/2201.11903v5.pdf) 报告了 code-davinci-002 准确率为 63.1
[20] Chowdhery et. al. Apr. 2022. PaLM: Scaling Language Modeling with Pathways
[21] Chen et. al. Jul 2021. Evaluating Large Language Models Trained on Code
[22] Brown. et. al. May 2020. Language Models are Few-Shot Learners
[23] Liang et. al. Nov 2022. Holistic Evaluation of Language Models
[24] Fu et. al. Oct 2022. Complexity-based Prompting for Multi-Step Reasoning.
https://openreview.net/forum?id=yf1icZHC-l9
[25] https://twitter.com/peterjliu/status/1603098202856722432?s=46&t=Gw2wumo4l8kIRaGzXDXyRw
[26] https://beta.openai.com/docs/model-index-for-researchers
[27] Press et. al. 2022. Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation
[28] Ouyang et. al. 2022. Training language models to follow instructions with human feedback
[29] https://help.openai.com/en/articles/6779149-how-do-text-davinci-002-and-text-davinci-003-differ
[30] 见https://arxiv.org/pdf/2210.11416.pdf的附录D
[31] https://help.openai.com/en/articles/6779149-how-do-text-davinci-002-and-text-davinci-003-differ
https://scale.com/blog/gpt-3-davinci-003-comparison
[32] https://arxiv.org/abs/2203.02155
[33] Brown et. al. May 2020. Language Models are Few-Shot Learners.
Zhang et. al. 2022. OPT: Open Pre-trained Transformer Language Models
Sanh. et. al. Oct 2021. Multitask Prompted Training Enables Zero-Shot Task Generalization
Ouyang et. al. Mar 2022. Training language models to follow instructions with human feedback
Wei. et. al. Sep 2021. Finetuned Language Models Are Zero-Shot Learners
Chung. et. al. Oct 2022. Scaling Instruction-Finetuned Language Models
https://github.com/salesforce/CodeGen
Chen et. al. Jul 2021. Evaluating Large Language Models Trained on Code
https://www.deepmind.com/blog/building-safer-dialogue-agents
Stiennon et. al. Sep. 2020. Learning to summarize from human feedback
https://github.com/allenai/RL4LMs
[34] https://www.reddit.com/r/ChatGPT/comments/zd7l8t/nice/
[35] https://openai.com/blog/webgpt/
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:content@jiqizhixin.com