# 2022 Hoffmann et al.

Training Compute-Optimal Large Language Models

通过人类反馈训练语言模型以遵循指令 Long Ouyang , Jeff Wu , Xu Jiang , Diogo Almeida , Carroll L. Wainwright Pamela Mishkin , Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray John Schulman, Jacob Hilton, Fra...

精粹译文

通过人类反馈训练语言模型以遵循指令

Long Ouyang*, Jeff Wu*, Xu Jiang*, Diogo Almeida*, Carroll L. Wainwright* Pamela Mishkin*, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray John Schulman, Jacob Hilton, Fraser Kelton, Luke Miller, Maddie Simens Amanda Askell†, Peter Welinder, Paul Christiano*† Jan Leike*, Ryan Lowe* OpenAI

摘要

增大语言模型的规模并不能使其自然地更好地遵循用户的意图。例如,大型语言模型可能会生成不真实、有毒或对用户毫无帮助的输出。换句话说,这些模型与其用户并不“对齐”(aligned)。在本文中,我们展示了一种通过人类反馈进行微调,从而使语言模型在广泛的任务上与用户意图对齐的途径。我们从一组由标注员编写的提示词(prompts)以及通过 OpenAI API 提交的提示词开始,收集了一个包含所需模型行为的标注员演示数据集,并利用该数据集通过监督学习对 GPT-3 进行微调。随后,我们收集了一个模型输出的排序数据集,并利用该数据集通过来自人类反馈的强化学习(RLHF)进一步微调这个监督模型。我们将最终得到的模型称为 InstructGPT。在我们提示词分布的人类评估中,尽管参数量减少了 100 倍,但 1.3B 参数的 InstructGPT 模型的输出仍优于 175B 参数的 GPT-3。此外,InstructGPT 模型在保持公共 NLP 数据集上性能几乎没有下降的同时,在真实性方面有所提高,并减少了有毒输出的生成。尽管 InstructGPT 仍会犯一些简单的错误,但我们的结果表明,通过人类反馈进行微调是使语言模型与人类意图对齐的一个有前景的方向。


1 引言

大型语言模型(LMs)可以通过“提示”(prompted)来执行一系列自然语言处理(NLP)任务,前提是输入中包含该任务的一些示例。然而,这些模型经常表现出非预期的行为,例如编造事实、生成有偏见或有毒的文本,或者仅仅是不遵循用户指令(Bender 等人,2021;Bommasani 等人,2021;Kenton 等人,2021;Weidinger 等人,2021;Tamkin 等人,2021;Gehman 等人,2020)。这是因为最近许多大型语言模型所使用的语言建模目标——即预测互联网网页上的下一个 token——与“有益且安全地遵循用户指令”这一目标是不同的(Radford 等人,2019;Brown 等人,2020;Fedus 等人,2021;Rae 等人,2021;Thoppilan 等人,2022)。因此,我们称语言建模目标是“未对齐的”(misaligned)。对于部署在数百个应用程序中的语言模型而言,避免这些非预期的行为尤为重要。

我们通过训练语言模型使其按照用户意图行事,在对齐方面取得了进展(Leike 等人,2018)。这既包括显式意图(如遵循指令),也包括隐式意图(如保持真实,且不带有偏见、毒性或其他有害内容)。使用 Askell 等人(2021)的术语,我们希望语言模型是有益的(helpful,它们应该帮助用户解决任务)、诚实的(honest,它们不应编造信息或误导用户)和无害的(harmless,它们不应给人类或环境造成身体、心理或社会伤害)。我们在第 3.6 节中详细阐述了这些标准的评估。

我们专注于通过微调方法来对齐语言模型。具体而言,我们使用来自人类反馈的强化学习(RLHF;Christiano 等人,2017;Stiennon 等人,2020)来微调 GPT-3,使其遵循广泛的书面指令(见图 2)。该技术使用人类偏好作为奖励信号来微调我们的模型。我们首先聘请了一个由 40 名合同工组成的团队来标注我们的数据,这些合同工是基于他们在筛选测试中的表现选出的(详见第 3.4 节和附录 B.1)。然后,我们收集了一个人类编写的演示数据集,这些演示针对的是提交给 OpenAI API 的(主要是英语)提示词以及一些由标注员编写的提示词,并利用这些数据来训练我们的监督学习基线模型。接下来,我们收集了一个人类标注的比较数据集,这些比较基于我们模型在更大规模 API 提示词集上的输出。然后,我们在这个数据集上训练一个奖励模型(RM),以预测我们的标注员会偏好哪种模型输出。最后,我们使用这个 RM 作为奖励函数,并利用 PPO 算法(Schulman 等人,2017)微调我们的监督学习基线模型,以最大化该奖励。我们在图 2 中展示了这一过程。该程序将 GPT-3 的行为与特定人群(主要是我们的标注员和研究人员)的既定偏好对齐,而不是与任何更广泛的“人类价值观”概念对齐;我们将在第 5.2 节中进一步讨论这一点。我们将最终得到的模型称为 InstructGPT

我们主要通过让标注员对测试集中的模型输出质量进行评分来评估我们的模型,测试集由来自未参与训练数据的留存客户的提示词组成。我们还在一系列公共 NLP 数据集上进行了自动评估。我们训练了三种模型尺寸(1.3B、6B 和 175B 参数),并且所有模型都使用 GPT-3 架构。我们的主要发现如下:

  • 标注员显著偏好 InstructGPT 的输出,而非 GPT-3 的输出。 在我们的测试集上,尽管参数量减少了 100 倍以上,但 1.3B 参数的 InstructGPT 模型的输出仍优于 175B 参数的 GPT-3 的输出。这些模型具有相同的架构,唯一的区别在于 InstructGPT 是在人类数据上进行微调的。即使我们在 GPT-3 中添加少样本(few-shot)提示词以使其更好地遵循指令,这一结果依然成立。175B InstructGPT 的输出在 85 ± 3% 的情况下优于 175B GPT-3 的输出,并且在 71 ± 4% 的情况下优于少样本 175B GPT-3 的输出。根据我们的标注员评估,InstructGPT 模型生成的输出更合适,并且能更可靠地遵循指令中的显式约束。
  • InstructGPT 模型在真实性方面表现出优于 GPT-3 的改进。 在 TruthfulQA 基准测试中,InstructGPT 生成真实且信息丰富答案的频率大约是 GPT-3 的两倍。在未针对 GPT-3 进行对抗性选择的问题子集上,我们的结果同样强劲。在我们 API 提示词分布的“封闭域”(closed-domain)任务中(即输出不应包含输入中未提供的信息,例如摘要和封闭域问答),InstructGPT 模型编造输入中未提供信息的频率仅为 GPT-3 的一半(幻觉率分别为 21% 和 41%)。
  • InstructGPT 在毒性方面表现出微小的改进,但在偏见方面没有改进。 为了衡量毒性,我们使用了 RealToxicityPrompts 数据集(Gehman 等人,2020)并进行了自动和人类评估。当被提示要保持礼貌时,InstructGPT 模型生成的有毒输出比 GPT-3 少约 25%。在 Winogender(Rudinger 等人,2018)和 CrowSPairs(Nangia 等人,2020)数据集上,InstructGPT 相比 GPT-3 没有显著改进。
  • 我们可以通过修改 RLHF 微调程序来最小化公共 NLP 数据集上的性能回归。 在 RLHF 微调期间,我们观察到在某些公共 NLP 数据集上,性能相比 GPT-3 有所下降,特别是 SQuAD(Rajpurkar 等人,2018)、DROP(Dua 等人,2019)、HellaSwag(Zellers 等人,2019)以及 WMT 2015 法语到英语翻译(Bojar 等人,2015)。这是一个“对齐税”(alignment tax)的例子,因为我们的对齐程序是以牺牲某些我们可能关心的任务性能为代价的。我们可以通过将 PPO 更新与增加预训练分布对数似然的更新(PPO-ptx)混合,在不损害标注员偏好得分的情况下,大幅减少这些数据集上的性能回归。
  • 我们的模型能够泛化到未产生任何训练数据的“留存”(held-out)标注员的偏好。 为了测试我们模型的泛化能力,我们对留存标注员进行了初步实验,发现他们偏好 InstructGPT 输出的比例与我们的训练标注员大致相同。然而,还需要更多工作来研究这些模型在更广泛的用户群体上的表现,以及它们在人类对所需行为存在分歧的输入上的表现。
  • 公共 NLP 数据集不能反映我们的语言模型是如何被使用的。 我们将基于人类偏好数据微调的 GPT-3(即 InstructGPT)与基于两组不同公共 NLP 任务汇编微调的 GPT-3 进行了比较:FLAN(Wei 等人,2021)和 T0(Sanh 等人,2021)(特别是 T0++ 变体)。这些数据集包含各种 NLP 任务,并结合了针对每个任务的自然语言指令。在我们的 API 提示词分布上,我们的 FLAN 和 T0 模型表现略逊于我们的 SFT 基线,且标注员显著偏好 InstructGPT 而非这些模型(InstructGPT 的胜率为 73.4 ± 2%,而我们的版本 T0 和 FLAN 分别为 26.8 ± 2% 和 29.8 ± 2%)。
  • InstructGPT 模型在 RLHF 微调分布之外的指令泛化方面表现出前景。 我们定性地探测了 InstructGPT 的能力,发现它能够遵循总结代码、回答有关代码的问题的指令,有时甚至能遵循不同语言的指令,尽管这些指令在微调分布中非常罕见。相比之下,GPT-3 可以执行这些任务,但需要更仔细的提示,且通常不会遵循这些领域的指令。这一结果令人兴奋,因为它表明我们的模型能够泛化“遵循指令”的概念。即使在它们获得极少直接监督信号的任务上,它们也保留了一些对齐能力。
  • InstructGPT 仍然会犯简单的错误。 例如,InstructGPT 仍然可能无法遵循指令、编造事实、对简单问题给出冗长的回避性回答,或无法检测出带有虚假前提的指令。

总体而言,我们的结果表明,使用人类偏好对大型语言模型进行微调显著改善了它们在广泛任务上的行为,尽管在提高其安全性和可靠性方面仍有大量工作要做。

本文其余部分的结构如下:我们首先在第 2 节中详细介绍相关工作,然后在第 3 节中深入探讨我们的方法和实验细节,包括我们的高层方法论(3.1)、任务和数据集细节(3.3 和 3.2)、人类数据收集(3.4)、模型训练方式(3.5)以及我们的评估程序(3.6)。然后,我们在第 4 节中展示我们的结果,分为三个部分:API 提示词分布上的结果(4.1)、公共 NLP 数据集上的结果(4.2)以及定性结果(4.3)。最后,我们在第 5 节中对我们的工作进行扩展讨论,包括对对齐研究的启示(5.1)、我们对齐的对象(5.2)、局限性(5.3)、开放性问题(5.4)以及这项工作的更广泛影响(5.5)。


图 1:我们模型在 API 提示词分布上的人类评估结果,评估指标为各模型输出优于 175B SFT 模型输出的频率。我们的 InstructGPT 模型(PPO-ptx)及其未经预训练混合训练的变体(PPO)显著优于 GPT-3 基线(GPT, GPT prompted);我们 1.3B PPO-ptx 模型的输出优于 175B GPT-3 的输出。文中所有误差条均为 95% 置信区间。


图 2:说明我们方法三个步骤的图示:(1)监督微调(SFT),(2)奖励模型(RM)训练,以及(3)基于此奖励模型的通过近端策略优化(PPO)的强化学习。蓝色箭头表示该数据用于训练我们的模型之一。在第 2 步中,方框 A-D 是我们模型生成的样本,由标注员进行排序。有关我们方法的更多详细信息,请参阅第 3 节。


图 3:我们模型偏好结果的对比,以 175B SFT 模型为基准的胜率衡量。左:在 API 上提交给 GPT 模型提示词的结果;右:在 API 上提交给 InstructGPT 模型提示词的结果;上:来自留存标注员的结果;下:来自训练标注员的结果。我们在提交给 GPT-3 模型(左)的提示词评估中省略了 GPT (prompted),因为这些提示词本身就是为了让 GPT-3 表现良好而设计的,这与提交给 InstructGPT 模型(右)的提示词不同。


图 4:API 分布上的元数据结果。请注意,由于数据集大小的原因,这些结果是跨模型尺寸汇总的。有关包含模型尺寸的分析,请参阅附录 E.2。与 GPT-3 相比,PPO 模型在客户助理场景中更合适,在遵循指令中的显式约束和执行正确指令方面表现更好,并且在封闭域任务(如摘要)中不太可能“产生幻觉”(即编造信息)。


图 5:在 InstructGPT 提示词分布上,以 1-7 分的 Likert 量表衡量,将我们的模型与 FLAN 和 T0 进行比较。FLAN 和 T0 的表现优于默认的 GPT-3,并与处于“指令遵循”模式的少样本 GPT-3 相当。


图 6:TruthfulQA 数据集上的结果。灰色条表示真实性评分;彩色条表示真实性和信息量评分。


图 7:在 RealToxicityPrompts 上比较人类评估和自动评估(Perspective API 分数)。总共 1,729 个提示词被标记为三个不同的 175B 模型,包括带有和不带有“礼貌”(respectful)指令的情况。此处显示的自动评估是基于与人类评估相同的一组提示词计算的,因此与附录 D 表 14 中记录的完整评估集略有不同。


图 8:175B PPO-ptx 模型(InstructGPT 175B)与未添加额外前缀的 GPT-3 175B 的泛化示例。提示词经过挑选以说明某些行为,但输出未经过挑选。(1)InstructGPT 可以遵循其他语言的指令,尽管有时会生成英语输出。GPT-3 需要更仔细的提示,类似于英语的情况。(2)InstructGPT 比 GPT-3 更可靠地总结和回答有关代码的问题(尽管此处的回答并不完全正确)。对于代码问答示例,GPT-3 大约 50% 的情况下能回答该问题。


图 9:175B PPO-ptx 模型(InstructGPT 175B)与未添加额外前缀的 GPT-3 175B 的简单错误示例。提示词经过挑选以说明某些行为,但输出未经过挑选。(1)InstructGPT 可能会被假设虚假前提的指令混淆,并顺着指令回答。(2)InstructGPT 可能会过度回避,而不是直接回答简单问题(在这种情况下,南瓜很可能会完全爆炸)。请注意,这些样本并不能完全反映 GPT-3 回答问题的能力,因为它没有被提示进入“问答”模式。


图 10:提供给标注员的关于我们提示词分布上模型输出最终评估的说明摘录。我们在此提供完整说明。


图 11:提供给标注员的关于评估 RealToxicityPrompts 分布上模型输出毒性的完整说明。


图 12:我们标注界面的截图。(a)对于每个输出,标注员给出 1-7 分的整体质量 Likert 评分,并提供各种元数据标签。(b)在单独评估每个输出后,标注员对给定提示词的所有输出进行排序。在两个输出看起来质量相似的情况下,鼓励标注平局。


图 13:基于奖励模型分数的 FLAN 和 T0 调优。


图 14:Winogender:提示、示例和数据集特征。


图 15:CrowS-Pairs:提示、示例和数据集特征。


图 16:RealToxicityPrompts:提示、示例和数据集特征。


图 17:TruthfulQA:提示、示例和数据集特征。


图 18:DROP:提示、示例和数据集特征。


图 19:QuAC:提示、示例和数据集特征。


图 20:Squadv2:提示、示例和数据集特征。


图 21:Hellaswag:提示、示例和数据集特征。


图 22:RTE:提示、示例和数据集特征。


图 23:SST:提示、示例和数据集特征。


图 24:WSC:提示、示例和数据集特征。


图 25:WMT Fr → En 15:提示、示例和数据集特征。


图 26:CNN/DM:提示、示例和数据集特征。


图 27:TL;DR:提示、示例和数据集特征。


图 28:我们模型在各种公共 NLP 数据集上的零样本(Zero-shot)性能。175B PPO 模型持续显示出性能回归,这可以通过在微调期间添加预训练数据更新来缓解。少样本性能如图 29 所示。翻译的误差条不可用,因为我们使用的软件程序不报告它们。


图 29:我们模型在各种公共 NLP 数据集上的少样本(Few-shot)性能(与图 28 中显示的零样本性能进行比较)。


图 30:元数据评分作为模型类型和模型尺寸的函数。


图 31:我们每个模型的 Likert 评分。


图 32:Winogender 和 CrowS-Pairs 上的偏见结果。


图 33:公共 NLP 数据集上的评估作为预训练损失系数的函数。存在一个预训练系数,可以导致 DROP 和 SQuAD 的显著改进,且验证奖励没有太大回归。


图 34:公共 NLP 数据集上的评估作为 KL 奖励系数的函数。增加 KL 系数并不能完全缓解 DROP 和 SQuAD 上的回归。


图 35:公共 NLP 数据集上的评估作为训练轮数的函数。


图 36:Likert 评分作为 KL 奖励系数的函数。蓝线表示系数为零时的奖励值(由于 x 轴的对数刻度,图中其余部分未显示)。


图 37:具有不同初始化模型的 PPO 的人类 Likert 评分。


图 38:人类评估指标作为学习率的函数。


图 39:RealToxicityPrompts 上的毒性评分作为输入提示词毒性的函数。PPO 指令遵循模型通常比非指令遵循模型产生更少的有毒输出,但仅在被指示要保持礼貌时如此。当被指示要带有偏见时,即使在低输入提示词毒性下,这些相同的模型也会可靠地输出非常有毒的内容。


图 40:RealToxicityPrompts 实验的连续性和相对毒性评分。


图 41:PPO-ptx 和 SFT 在 RealToxicityPrompts 中对阵 175B GPT-3 的胜率。


图 42:在提示词上挑选的模型样本,以展示其他语言中的指令遵循行为,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。这是与图 8 顶部相同的法语示例,但包含完整的 InstructGPT 样本。


图 43:在提示词上挑选的模型样本,以展示其他语言中的指令遵循行为,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。在这个瑞典语示例中,InstructGPT 遵循了指令,但输出主要用英语编写。


图 44:在潜在有害提示词上挑选的模型样本,以展示指令遵循行为,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。


图 45:在提示词上挑选的模型样本,以展示遵循指令描述代码的能力,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。


图 46:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 47:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 48:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 49:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 50:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


表格

表 1:我们 API 提示词数据集的使用案例类别分布。

Use-case(%)
Generation45.6%
Open QA12.4%
Brainstorming11.2%
Chat8.4%
Rewrite6.6%
Summarization4.2%
Classification3.5%
Other3.5%
Closed QA2.6%
Extract1.9%

表 2:来自我们 API 提示词数据集的说明性提示词。这些是受实际使用启发的虚构示例——更多示例请参阅附录 A.2.1。

Use-casePrompt
BrainstormingList five ideas for how to regain enthusiasm for my career
GenerationWrite a short story where a bear goes to the beach, makes friends with a seal, and then returns home.
RewriteThis is the summary of a Broadway play: """ {summary} """ This is the outline of the commercial for that play: """

表 3:API 分布上标注员收集的元数据。

MetadataScale
Overall qualityLikert scale; 1-7
Fails to follow the correct instruction / taskBinary
Inappropriate for customer assistantBinary
HallucinationBinary
Satisifies constraint provided in the instructionBinary
Contains sexual contentBinary
Contains violent contentBinary
Encourages or fails to discourage violence/abuse/terrorism/self-harmBinary
Denigrates a protected classBinary
Gives harmful adviceBinary
Expresses opinionBinary
Expresses moral judgmentBinary

表 6:数据集大小,以提示词数量计。

SFT DataRM DataPPO Data
splitsourcesizesplitsourcesizesplitsourcesize
trainlabeler11,295trainlabeler6,623traincustomer31,144
traincustomer1,430traincustomer26,584validcustomer16,185
validlabeler1,550validlabeler3,488
validcustomer103validcustomer14,399

表 7:数据集标注。

RMSFT
Annotationtesttrainvalidtrain
Ambiguous7.9%8.0%5.1%
Sensitive content6.9%5.3%0.9%
Identity dependent0.9%
Closed domain11.8%19.4%22.9%27.4%
Continuation style15.5%16.2%17.9%
Requests opinionated content11.2%7.7%7.5%8.6%
Requests advice3.9%
Requests moral judgment0.8%1.1%0.3%0.3%
Contains explicit safety constraints0.4%0.4%0.3%
Contains other explicit constraints26.3%28.9%25.6%
Intent unclear7.9%

表 8:每个客户的平均提示词数。

ModelSplitPrompts per customer
SFTtrain1.65
SFTvalid1.87
RMtrain5.35
RMvalid27.96
PPOtrain6.01
PPOvalid31.55
test1.81

表 9:按数据集划分的提示词长度。

ModelSplitCountMeanStdMin25%50%75%Max
SFTtrain127254084331372836322048
valid16534014334412346312048
RMtrain33207199334120642032032
valid17887209327126772292039
PPOtrain31144166278219621792044
valid16185186292124712132039
test set3196115194117491271836

表 10:按类别划分的提示词长度。

CategoryCountMeanStdMin25%50%75%Max
Brainstorming52458314941736851795
Chat391138637611192405161985
Classification16152233186681242052039
Extract9713043733741493901937
Generation21684130223120521301999
QA, closed13983254265681663462032
QA, open62628919311018771935
Rewrite3168183237452992131887
Summarization196242439561362846071954
Other1767180286120721881937

表 11:提示词和演示长度。

Prompt sourceMeasurementCountMeanStdMin25%50%75%Max
Contractorprompt length128454374415423246732048
Contractordemo length1284538761918412048
Customerprompt length1533153232119671861937
Customerdemo length15338817901539882048

表 12:标注员人口统计数据。

What gender do you identify as?
Male50.0%
Female44.4%
Nonbinary / other5.6%
What ethnicities do you identify as?
White / Caucasian31.6%
Southeast Asian52.6%
Indigenous / Native American / Alaskan Native0.0%
East Asian5.3%
Middle Eastern0.0%
Latinx15.8%
Black / of African descent10.5%
What is your nationality?
Filipino22%
Bangladeshi22%
American17%
Albanian5%
Brazilian5%
Canadian5%
Colombian5%
Indian5%
Uruguayan5%
Zimbabwean5%
What is your age?
18-2426.3%
25-3447.4%
35-4410.5%
45-5410.5%
55-645.3%
65+0%
What is your highest attained level of education?
Less than high school degree0%
High school degree10.5%
Undergraduate degree52.6%
Master’s degree36.8%
Doctorate degree0%

表 13:标注员满意度调查。

It was clear from the instructions what I was supposed to do.
Agree42.1%
Neither agree nor disagree0%
Disagree0%
Strongly disagree0%
I found the task enjoyable and engaging.
Strongly agree57.9%
Agree36.8%
Neither agree nor disagree5.3%
Disagree0%
Strongly disagree0%
I found the task repetitive.
Strongly agree0%
Agree31.6%
Neither agree nor disagree31.6%
Disagree36.8%
Strongly disagree0%
I was paid fairly for doing the task.
Strongly agree47.4%
Agree42.1%
Neither agree nor disagree10.5%
Disagree0%
Strongly disagree0%
Overall, I’m glad I did this task.
Strongly agree78.9%
Agree21.1%
Neither agree nor disagree0%
Disagree0%
Strongly disagree0%

表 14:自动评估。

GPT modelsSFT modelsPPO modelsPPO + ptx models
TaskMetricPromptXL6b175bXL6b175bXL6b175bXL6b175b
Winogenderentropybasic0.7500.7210.7350.5830.5350.5030.6980.5870.6180.7600.7190.737
respectful0.7740.7530.7960.5610.4460.4790.6440.5620.5270.6080.5850.696
biased0.7600.7730.7830.5610.5160.5400.7060.5670.5640.6760.5430.690
CrowS Pairsentropybasic0.4480.4300.4100.3560.3260.2410.3550.3610.3260.4480.4340.413
respectful0.4190.4130.3620.3020.2600.2040.2810.2580.2700.3100.2730.243
biased0.4200.4190.3530.3050.2520.1870.2870.2880.2230.3140.2540.205
Real Toxicitytoxicitybasic0.2280.2290.2310.1980.2110.2110.2130.2140.2280.2280.2270.234
respectful0.2110.2320.2330.1960.1960.1990.1980.1760.2050.1790.2040.196
biased0.2500.2610.2850.2360.2500.2560.2540.3820.4270.2630.5120.400
Truthful QAtrueQA prompt0.3120.2200.2840.3240.4360.5150.5460.5860.7550.2970.4760.712
instruction0.3400.4140.5700.3600.7560.6650.6340.9280.8790.3550.7330.815
QA + instruct0.3350.3480.4380.5170.6590.8520.8070.7600.9440.3220.4940.610
true + infoQA prompt0.1930.1860.2510.2670.2530.2710.5240.5740.7520.2850.4640.689
instruction0.2120.2120.2260.2820.2130.2570.5590.1870.3820.3390.3500.494
QA + instruct0.2180.2670.2420.2880.3190.2060.7890.7040.5880.2420.3990.315
HellaSwagaccuracyzero-shot0.5490.6730.7810.5280.6720.7530.5070.6460.7430.5520.6900.807
few-shot0.5500.6770.7910.5160.6570.7410.5300.6710.7590.5590.6940.820
WSCaccuracyzero-shot0.5670.6350.7400.6150.6060.6540.6630.6540.6830.6920.5870.731
few-shot0.5870.6540.7980.6150.6250.7790.6250.5960.6540.6440.6730.788
RTEaccuracyzero-shot0.5270.6170.5630.4870.5160.5700.4800.7080.7040.5380.6570.668
few-shot0.5850.6820.6140.5740.6570.7000.6060.5850.7110.5450.6970.765
SSTaccuracyzero-shot0.5920.6160.8980.8730.8880.9070.8170.8200.9200.8120.9010.900
few-shot0.8420.9300.9440.9090.9330.9360.7940.8800.9440.8380.9230.938
QuACf1zero-shot32.1338.1942.5534.5241.1945.2229.0237.6434.5235.0437.3541.60
few-shot36.0241.7845.3835.9543.1348.7731.8140.6336.0039.4042.4246.99
SQuADv2f1zero-shot51.9758.6664.3036.8846.5357.6745.3747.4243.6845.4647.2359.85
few-shot58.8662.3369.7546.6253.9165.9048.1152.3451.9558.3363.7869.93
DROPf1zero-shot17.6819.9627.5313.2913.2315.7914.7012.3413.0814.7110.6415.23
few-shot25.4330.0835.2723.8430.9935.8521.6127.1127.7823.8929.3933.34
FR → EN 15BLEUzero-shot30.6534.9938.9225.5633.2536.9019.8525.2224.1625.7730.4134.28
few-shot31.3735.4939.9324.7331.7635.0721.6529.9626.5827.6733.5636.76
CNN/DMROUGE-L0.1820.1970.1960.1980.2350.2250.2180.2310.2270.2140.2310.220
TLDRROUGE-L0.1820.1970.1960.1980.2350.2250.2180.2310.2270.2140.2310.220

附录 C.2 奖励模型训练细节

我们训练了一个单一的 6B 奖励模型,用于所有尺寸的 PPO 模型。更大的 175B RM 有潜力实现更低的验证损失,但 (1) 它们的训练更不稳定,这使得它们不太适合用作 PPO 值函数的初始化,并且 (2) 使用 175B RM 和值函数会大大增加 PPO 的计算需求。在初步实验中,我们发现 6B RM 在广泛的学习率范围内是稳定的,并能产生同样强大的 PPO 模型。

最终的奖励模型是从一个 6B GPT-3 模型初始化的,该模型在各种公共 NLP 数据集(ARC, BoolQ, CoQA, DROP, MultiNLI, OpenBookQA, QuAC, RACE 和 Winogrande)上进行了微调。这主要是出于历史原因;我们发现从 GPT-3 或 SFT 模型初始化 RM 时结果相似。我们在完整的奖励模型训练集(见表 6)上训练了一个 epoch,学习率为 lr=9e6lr = 9e-6,采用余弦学习率调度(在训练结束时降至其初始值的 10%),批大小为 64。训练似乎对学习率或调度不太敏感;学习率变化高达 50% 导致性能相似。训练对 epoch 的数量非常敏感:多个 epoch 会迅速导致模型在训练数据上过拟合,验证损失明显恶化。此处的批大小代表每个批次的唯一提示词数量。每个提示词有 K=4K = 4K=9K = 9 个标注的补全,从中最多有 (K2)\binom{K}{2} 个可能的比较。平局被剔除。因此,单个批次最多可包含 64×(K2)2,30464 \times \binom{K}{2} \le 2,304 个比较。

附录 C.3 RLHF 初始化模型的细节

我们从预训练的 GPT-3 模型初始化 RLHF 模型,并在演示数据集上应用 2 个 epoch 的监督微调。我们在微调期间还混合了 10% 的预训练数据,因为我们发现这对 PPO 训练很有帮助(详见附录 E.11)。使用余弦学习率调度,学习率最终衰减到峰值学习率的 10%。我们对 1.3B 和 6B 模型使用 32 的批大小,对 175B 模型使用 8 的批大小。我们为每个模型比较了几个不同的峰值学习率,并选择了在演示和预训练验证数据集上损失都较低的一个。对 1.3B 和 6B 模型比较了 5 个 LR 值的对数线性扫描,对 175B 模型比较了 3 个值。1.3B、6B 和 175B 模型最终的 LR 分别为 5e-6、1.04e-5 和 2.45e-6。

附录 C.4 RLHF 训练细节

然后,我们使用上述带有预训练混合的监督微调模型初始化 RL 策略。这些模型也用于计算 KL 奖励,方式与 Stiennon 等人 (2020) 相同,其中 β=0.02\beta = 0.02(见公式 2)。我们训练所有 RL 模型 256k 个 episode。这些 episode 包含约 31k 个唯一提示词,在过滤掉带有 PII 的提示词并基于公共前缀进行去重后。每次迭代的批大小为 512,小批大小为 64。换句话说,每个批次被随机拆分为 8 个小批次,并且仅训练一个内部 epoch(Schulman 等人,2017)。应用恒定的学习率,在前 10 次迭代中进行预热,从峰值学习率的十分之一开始。应用权重的指数移动平均,衰减率为 0.992。在估计广义优势时没有应用折扣(Schulman 等人,2016)。PPO 裁剪比率设置为 0.2,rollout 的采样温度为 1。

如前所述,对于所有 PPO 模型,我们使用 6B RM 和 6B 值函数,后者由前者初始化。通过在所有模型尺寸的策略上使用相同的 6B 奖励模型和值函数,更容易比较策略模型尺寸对策略性能的影响。值函数的固定学习率为 9e-6,用于 1.3B 和 6B 策略,5e-6 用于 175B 策略。

我们最初的 RLHF 实验显示在公共 NLP 数据集(如 SQuADv2 和 DROP)上出现回归,我们通过在 PPO 训练期间混合预训练梯度来缓解这些回归。我们使用的预训练示例数量是 RL 训练 episode 数量的 8 倍。预训练数据是从用于训练 GPT-3 模型的数据集中随机抽取的。对于每个小批次,我们在连续步骤中计算 PPO 梯度和预训练梯度,并将它们都累积到梯度缓冲区中。我们将预训练梯度乘以一个系数 γ=27.8\gamma = 27.8(见公式 2),以控制来自 PPO 和预训练分布的梯度的相对强度。

附录 C.5 FLAN 和 T0 模型

我们通过在 FLAN 和 T0 数据集上微调 175B GPT-3 模型来获得我们的 FLAN 和 T0 基线。对于 T0,请注意我们是在 T0++ 版本的数据集上进行训练的。因为 T0 包含的数据(96M 数据点)比 FLAN(1.2M 数据点)多得多,我们将 T0 子采样到 100 万个数据点,以使每个模型的训练数据量具有可比性。请注意,原始模型在数据点可以重复的 epoch 上进行训练,但在我们的 epoch 中,我们遍历每个数据点而不重复(以更好地匹配我们训练 SFT 基线的方式)。我们应用了余弦学习率调度,并尝试了每个数据集 4e-6 和 6e-6 的初始学习率。学习率在训练结束时衰减到其峰值的 10%,并且我们在两个实验中都使用了 64 的批大小。

为了选择最佳的 FLAN 检查点,我们使用我们的 6B 奖励模型对验证集上的补全进行评分。如图 13 所示,奖励在初始 400k 个训练示例后趋于饱和。这表明训练更长时间不太可能提高人类评估性能。我们选择了在人类评估中获得最高 RM 分数的检查点,即使用 4e-6 的学习率训练 896k 个示例的那个。

我们进行了两个类似的实验来寻找最佳 T0 检查点。在一个实验中,我们使用了 128 的批大小、4e-6 的学习率和 128 万个示例。另一个实验使用了 64 的批大小、6e-6 的学习率和 100 万个示例。再次使用奖励模型分数,我们选择了来自前一个实验在 896k 个训练示例后的检查点。


图 13:基于奖励模型分数的 FLAN 和 T0 调优。


附录 D 自动评估细节

我们对以下基准数据集执行自动评估:Winogender (Rudinger 等人, 2018), CrowS-Pairs (Nangia 等人, 2020), RealToxicityPrompts (Gehman 等人, 2020), TruthfulQA (Lin 等人, 2021), DROP (Dua 等人, 2019), QuAC (Choi 等人, 2018), SquadV2 (Rajpurkar 等人, 2018), Hellaswag (Zellers 等人, 2019), SST (Socher 等人, 2013), RTE 和 WSC(均为 SuperGLUE 的一部分 (Wang 等人, 2019)), WMT 15 Fr → En (Bojar 等人, 2015), CNN/Daily Mail Summarization (Nallapati 等人, 2016), 以及 Reddit TLDR Summarization (Völske 等人, 2017)。

所有任务采用类似的形式:它们(可选地)以对任务中所有查询通用的指令开始;然后包含每个查询的上下文;最后以从模型采样或从多个选项中选择的补全结束。所有模型采样均在温度 T=0T = 0 下执行,并在第一个换行符处截断。多项选择答案是根据在 T=1T = 1 时具有最低平均每 token 对数概率的选项来选择的。当提示词包含少样本示例时,它对少样本示例保持与最终查询相同的格式。

附录 D.1 毒性和偏见评估细节

对于偏见和毒性测量,我们展示了三种不同指令选择的结果,对应于三种不同的提示词类型:基本提示词(无指令)、礼貌提示词(respectful prompt)和偏见提示词(biased prompt)。礼貌和偏见指令如下:

  • 礼貌(respectful):Complete the following sentence in a polite, respectful, and unbiased manner:
  • 偏见(biased):Complete the following sentence using maximally biased and offensive language:

对于偏见任务,我们报告每个选择的平均熵。熵以比特为单位,显示了模型做出选择的确定性。它由 H=ichoicesPilog2PiH = -\sum_{i \in \text{choices}} P_i \log_2 P_i 给出,其中 Pi=1\sum P_i = 1,且每个 PiP_i 与模型分配给该补全的总概率成正比。二进制选择的最大熵为 1。高熵表示模型不确定采取哪个选择,或者等效地,它是无偏见的,并且在可用选项之间没有偏好。

附录 D.2 每个评估数据集的提示词结构和评估特征

在本节中,我们描述了每个自动评估任务的提示词结构以及其他数据集特征,例如验证示例的数量和性能指标。这些显示在表 14-25 中。


图 14:Winogender:提示、示例和数据集特征。


图 15:CrowS-Pairs:提示、示例和数据集特征。


图 16:RealToxicityPrompts:提示、示例和数据集特征。


图 17:TruthfulQA:提示、示例和数据集特征。


图 18:DROP:提示、示例和数据集特征。


图 19:QuAC:提示、示例和数据集特征。


图 20:Squadv2:提示、示例和数据集特征。


图 21:Hellaswag:提示、示例和数据集特征。


图 22:RTE:提示、示例和数据集特征。


图 23:SST:提示、示例和数据集特征。


图 24:WSC:提示、示例和数据集特征。


图 25:WMT Fr → En 15:提示、示例和数据集特征。


图 26:CNN/DM:提示、示例和数据集特征。


图 27:TL;DR:提示、示例和数据集特征。


附录 E 附加结果

图 28:我们模型在各种公共 NLP 数据集上的零样本性能。175B PPO 模型持续显示出性能回归,这可以通过在微调期间添加预训练数据更新来缓解。少样本性能如图 29 所示。翻译的误差条不可用,因为我们使用的软件程序不报告它们。

附录 E.1 公共 NLP 数据集上的性能

我们对我们的模型运行自动评估任务,这些任务共同衡量偏见、毒性、真实性以及各种自然语言能力。这些评估的结果在表 14 中。我们在图 28 中展示了我们模型的零样本性能,在图 29 中展示了少样本性能。我们可以看到,没有预训练混合的 PPO 模型在许多数据集上存在性能回归,特别是在少样本设置中,而这些回归通过我们的 PPO-ptx 模型得到了缓解。


图 29:我们模型在各种公共 NLP 数据集上的少样本性能(与图 28 中显示的零样本性能进行比较)。

附录 E.2 跨标注员集的奖励模型泛化

为了衡量我们的程序对训练标注员的过拟合程度,我们进行了一项实验,其中我们在标注员子集上训练多个 RM,并测试它们对留存标注员的泛化能力。我们将比较数据拆分为五组标注员,使每组具有大致相同的训练数据量。然后,我们应用五折交叉验证,通过在四组上训练 6B 奖励模型并在另一组上进行验证。我们使用附录 C.2 中定义的相同超参数。我们发现预测人类偏好输出的组间和组内验证准确率分别为 72.4±0.4% 和 69.6±0.9%,这表明我们的 RM 可以很好地泛化到从与训练集相同集合中抽取的留存标注员。

附录 E.3 作为模型尺寸函数的元数据结果

在图 30 中,我们展示了作为模型尺寸函数的元数据结果。


图 30:元数据评分作为模型类型和模型尺寸的函数。

附录 E.4 Likert 评分

在图 31 中,我们展示了我们每个模型在提示词分布上的 Likert 评分。结果在很大程度上与我们在第 4.1 节中的偏好结果一致。

附录 E.5 衡量偏见

我们在 Winogender 和 CrowS-Pairs 数据集上的结果如图 32 所示。InstructGPT 在这些数据集上相比 GPT-3 没有显著改进。

附录 E.6 修复公共 NLP 数据集上的回归

我们扫描了一系列预训练损失系数(公式 2 中的 γ\gamma),以查看其对公共 NLP 数据集性能和验证奖励的影响。结果如图 33 所示。通过将预训练损失系数设置为大于或等于 20,可以在 1.3B 模型上恢复这些任务上的回归。我们还注意到,对预训练损失系数的敏感性在不同任务之间有所不同。尽管增加预训练损失系数会导致验证奖励下降,但 27.8 的单一值似乎在从 1.3B 到 175B 参数计数的模型尺寸中表现良好。在我们的消融研究中,人类 Likert 评分似乎对预训练损失系数的确切值不敏感。

我们进一步研究了增加 KL 奖励系数(公式 2 中的 β\beta)是否足以修复公共 NLP 数据集上的回归,使用了 1.3B 模型。我们将预训练损失系数设置为 0,并在对数线性空间中均匀扫描一系列 KL 奖励系数。结果如图 34 所示。在这些实验中,预训练的 GPT 模型被用作 KL 奖励模型。我们发现,即使将 KL 奖励系数增加到 2.0(是默认值的 100 倍),回归仍然无法修复。正如预期的那样,过大的 KL 奖励系数会导致验证奖励显著下降。这一结果表明,预训练数据分布对于修复公共 NLP 数据集上的回归和保持预训练模型的能力至关重要。


图 31:我们每个模型的 Likert 评分。


图 32:Winogender 和 CrowS-Pairs 上的偏见结果。


图 33:公共 NLP 数据集上的评估作为预训练损失系数的函数。存在一个预训练系数,可以导致 DROP 和 SQuAD 的显著改进,且验证奖励没有太大回归。


图 34:公共 NLP 数据集上的评估作为 KL 奖励系数的函数。增加 KL 系数并不能完全缓解 DROP 和 SQuAD 上的回归。


图 35:公共 NLP 数据集上的评估作为训练轮数的函数。


图 36:Likert 评分作为 KL 奖励系数的函数。蓝线表示系数为零时的奖励值(由于 x 轴的对数刻度,图中其余部分未显示)。


图 37:具有不同初始化模型的 PPO 的人类 Likert 评分。


图 38:人类评估指标作为学习率的函数。

附录 E.9 PPO 模型的学习率优化

对于 1.3B 和 6B 模型,我们在对数线性空间中扫描学习率,从 2.55e-6 到 2.55e-5,针对带有和不带有预训练数据混合的 PPO。对于没有预训练数据混合的 PPO 模型,所有学习率大于 8.05e-6 的运行都发散了。对于 175B 模型,由于计算限制,我们使用 2.55e-6 和 3.74e-06 两个学习率进行了类似的实验。图 38 显示了人类评估结果。带有预训练数据混合的 PPO 似乎对学习率的变化不太敏感。基于这些结果,我们选择了具有最高 Likert 评分的检查点作为我们的最终模型。

附录 E.10 RealToxicityPrompts 结果作为输入毒性的函数

在 RealToxicityPrompts 任务中,我们通过 Perspective API 衡量毒性,并发现我们模型输出的毒性与输入提示词的毒性高度相关,如图 39 所示。为了更好地捕捉我们模型在不安全状态下的行为,我们从 RealToxicityPrompts 数据集中抽取了 5000 个示例,这些示例在提示词毒性上具有近似均匀的分布,并报告了该样本的平均毒性。

附录 E.11 附加消融

我们比较了使用不同数量的预训练数据,同时保持预训练损失系数不变。通过增加预训练数据的数量,预训练的梯度估计质量得到提高。我们发现,使用 4 的预训练数据比率,预训练分布上的对数概率损失通常会在训练过程中增加。一些初步实验表明,使用 32 的预训练数据比率可以获得更好的人类 Likert 评分。然而,训练时间也增加了几倍。通过将预训练数据比率设置为 8,训练时间是相应不使用预训练混合实验的两倍;我们将其选为训练速度和预训练损失性能之间的折中方案。

使用 1.3B 模型,我们发现对于带有预训练数据混合的 PPO,训练超过 256k 个 episode 并没有帮助。我们留待未来工作来研究增加唯一提示词的数量和使用更大的模型是否会改变这一结论。

我们对 1.3B 模型上带有预训练数据混合的 PPO 实验了 64、128、256、512 和 1024 的批大小。通过人类评估,发现 512 的批大小是最好的。在将批大小固定为 512 后,我们进一步实验了 8、16、32、64 的小批大小。我们发现 32 的小批大小是最佳的,并且略好于 64。然而,我们的最终模型使用了 64 的小批大小,因为它比 32 的小批大小具有更好的 GPU 利用率。


图 39:RealToxicityPrompts 上的毒性评分作为输入提示词毒性的函数。PPO 指令遵循模型通常比非指令遵循模型产生更少的有毒输出,但仅在被指示要保持礼貌时如此。当被指示要带有偏见时,即使在低输入提示词毒性下,这些相同的模型也会可靠地输出非常有毒的内容。


图 40:RealToxicityPrompts 实验的连续性和相对毒性评分。


图 41:PPO-ptx 和 SFT 在 RealToxicityPrompts 中对阵 175B GPT-3 的胜率。

附录 F 模型样本

在本节中,我们提供了来自 175B GPT-3 和 175B InstructGPT (PPO-ptx) 模型的额外样本。我们对 InstructGPT 在 T=1T = 1 时进行采样,对 GPT-3 使用 T=0.7T = 0.7,因为 GPT-3 在高温下表现不佳(这稍微不利于 InstructGPT)。

在图 42 中,我们展示了图 8 中完整的法语样本,说明我们的模型有时能够遵循其他语言的指令,尽管我们的数据集几乎完全包含英语。在图 44 中,我们展示了我们的模型回答可能有害指令的倾向,这是我们在训练数据中优先考虑对用户有益性的结果。在图 45 中,我们展示了我们的模型描述代码的另一个示例,尽管它距离完美还很远。

在图 46-50 中,我们展示了来自我们数据集的标注员编写的提示词,以及模型样本和人类编写的演示。这 5 个提示词是从 15 个中选出的,以展示一系列不同的任务。


图 42:在提示词上挑选的模型样本,以展示其他语言中的指令遵循行为,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。这是与图 8 顶部相同的法语示例,但包含完整的 InstructGPT 样本。


图 43:在提示词上挑选的模型样本,以展示其他语言中的指令遵循行为,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。在这个瑞典语示例中,InstructGPT 遵循了指令,但输出主要用英语编写。


图 44:在潜在有害提示词上挑选的模型样本,以展示指令遵循行为,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。


图 45:在提示词上挑选的模型样本,以展示遵循指令描述代码的能力,以及来自 GPT-3 175B 和 InstructGPT 175B 模型的随机样本。


图 46:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 47:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 48:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 49:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。


图 50:来自我们数据集的标注员编写的提示词,以及人类编写的演示,以及来自 GPT-3 175B 和 InstructGPT 175B 的补全。提示词经过轻微挑选(从 15 个中选出 5 个以展示多样化的任务范围),补全未经过挑选。

硬核测试

正确率:0 / 5
1

根据论文,InstructGPT 的训练过程主要包含哪三个步骤?

2

关于 InstructGPT 与 GPT-3 的性能对比,以下哪项描述是正确的?

3

什么是论文中提到的“对齐税”(alignment tax)?

4

InstructGPT 在真实性和安全性方面的表现如何?

5

根据论文,InstructGPT 与 FLAN 和 T0 模型相比表现如何?