Abstract
将语言模型做得更大并不会自动提高它们遵循用户意图的能力。例如,大型语言模型可能会生成不真实、有毒或对用户不有帮助的输出。换句话说,这些模型并未与用户对齐(aligned)。本文展示了一种通过人类反馈来对齐语言模型与用户意图的途径,适用于广泛的任务。我们首先使用一组标签者编写的提示和通过OpenAI API提交的提示,收集了一个展示所需模型行为的数据集,然后利用这些数据集对GPT-3进行监督学习的微调。接着,我们收集了模型输出的排名数据集,用于进一步通过人类反馈的强化学习微调这个监督模型。我们称得出的模型为InstructGPT。在我们提示分布上的人工评估中,1.3亿参数的InstructGPT模型的输出优于175亿参数的GPT-3模型,尽管其参数少了100倍。此外,InstructGPT模型在真实性方面有改善,并且在生成有毒输出方面有所减少,同时在公共NLP数据集上的性能退步也很小。尽管InstructGPT仍然会犯简单的错误,但我们的结果表明,通过人类反馈进行微调是一种对齐语言模型与人类意图的有前途的方向。
1 Introduction
大型语言模型(LMs)可以通过一些任务示例作为输入来“提示”(“prompte)执行各种自然语言处理(NLP)任务。然而,这些模型经常表现出意外的行为,例如捏造事实、生成偏见或有毒的文本,或根本不遵循用户指令(Bender et al., 2021; Bommasani et al., 2021; Kenton et al., 2021; Weidinger et al., 2021; Tamkin et al., 2021; Gehman et al., 2020)。这是因为许多最近的大型语言模型所使用的语言建模目标——从互联网上预测下一个词——与“以有帮助和安全的方式遵循用户指令”的目标不同(Radford et al., 2019; Brown et al., 2020; Fedus et al., 2021; Rae et al., 2021; Thoppilan et al., 2022)。因此,我们称语言建模目标为不对齐。避免这些意外行为对于部署并在数百个应用中使用的语言模型尤为重要。
图1:在我们的API提示分布上对各种模型进行的人类评估,评估标准是每个模型的输出相对于175B SFT模型的输出被偏好的频率。我们的InstructGPT模型(PPO-ptx)以及其不使用预训练混合的变体(PPO)显著优于GPT-3基线模型(GPT、GPT提示)。我们的1.3B PPO-ptx模型的输出相比于175B GPT-3模型的输出更受偏好。本文中的误差条表示95%的置信区间。
我们通过训练语言模型以符合用户意图来在对齐方面取得进展(Leike et al., 2018)。这包括显式意图,例如遵循指令,以及隐式意图,例如保持真实,不带有偏见、毒性或其他有害内容。使用Askell et al.(2021)的术语,我们希望语言模型具备以下特征:有用(能够帮助用户完成任务),诚实(不捏造信息或误导用户),无害(不对个人、环境或社会造成身体、心理或社会上的伤害)。我们在第3.6节中详细阐述了这些标准的评估方法。
我们专注于通过微调方法对齐语言模型。具体来说,我们使用来自人类反馈的强化学习(reinforcement learning from human feedback,RLHF;Christiano et al., 2017; Stiennon et al., 2020)来微调GPT-3,使其能够遵循广泛的书面指令(见图2)。该技术使用人类偏好作为奖励信号来微调模型。我们首先雇佣了40名承包商来标注我们的数据,基于他们在筛选测试中的表现(有关更多详细信息,请参见第3.4节和附录B.1)。然后,我们收集了一组人类编写的示例数据,这些示例展示了期望输出行为的表现,这些示例来自提交到OpenAI API的(主要是英语的)提示和一些标注者编写的提示,并用来训练我们的监督学习基线。接下来,我们收集了一组人类标注的比较数据,比较了模型在更大范围的API提示下的输出。然后,我们训练一个奖励模型(RM),以预测标注者更喜欢哪个模型输出。最后,我们使用这个RM作为奖励函数,并利用PPO算法(Schulman et al., 2017)微调我们的监督学习基线,以最大化这个奖励。我们在图2中展示了这一过程。这个过程使GPT-3的行为对齐到特定人群(主要是我们的标注者和研究人员)的偏好,而不是任何更广泛的“人类价值观”;我们将在第5.2节中进一步讨论这一点。我们将得到的模型称为InstructGPT。
图2:一个图解展示了我们方法的三个步骤:(1)监督微调(SFT),(2)奖励模型(RM)训练,以及(3)通过近端策略优化(PPO)在该奖励模型上进行强化学习。蓝色箭头表示这些数据用于训练我们的一种模型。在步骤2中,A-D框是来自我们模型的样本,这些样本由标注者进行排名。有关我们方法的更多细节,请参见第3节。
我们主要通过让标注员对模型输出的质量进行评分来评估我们的模型,这些评分基于来自持有数据的客户的测试集(这些客户在训练数据中没有被代表)。我们还在一系列公共NLP数据集上进行自动评估。我们训练了三种模型大小(分别为1.3B、6B和175B参数),所有模型都使用GPT-3架构。我们的主要发现如下:
标注员显著更喜欢InstructGPT的输出,而不是GPT-3的输出。在我们的测试集中,1.3B参数的InstructGPT模型的输出比175B GPT-3的输出更受青睐,尽管前者的参数数量少了100倍。这些模型使用相同的架构,唯一的区别在于InstructGPT是在我们的人工数据上进行微调的。即使我们为GPT-3添加了少量示例提示来提高其跟随指令的能力,这一结果仍然成立。175B InstructGPT的输出被更喜欢的概率为85 ± 3%,相比之下,少量示例的175B GPT-3的输出被更喜欢的概率为71 ± 4%。InstructGPT模型生成的输出在标注员看来也更合适,并且更可靠地遵循了指令中的明确约束。
InstructGPT在真实性方面比GPT-3有所改善。在TruthfulQA基准测试中,InstructGPT生成真实和有信息量的回答的频率是GPT-3的两倍。我们的结果在没有针对GPT-3进行对抗性选择的题目子集上也同样强劲。在我们API提示分布中的“封闭域”任务中(例如摘要和封闭域QA),InstructGPT模型编造输入中不存在的信息的频率是GPT-3的一半(分别为21%和41%的虚假率)。
InstructGPT在毒性方面相较于GPT-3有小幅改善,但在偏见方面没有显著提升。为了测量毒性,我们使用了RealToxicityPrompts数据集&#