InstructGPT 论文翻译
原论文:Training language models to follow instructions with human feedback
Abstract
使语言模型更大并不能从本质上使它们更好地遵循用户的意图。例如,大型语言模型可能会生成不真实的、有毒的或对用户没有帮助的输出。换句话说,这些模型与其用户不一致。在本文中,我们展示了一种途径,可以通过根据人类反馈进行微调,使语言模型与用户对各种任务的意图保持一致。从一组标注者编写的提示(prompt)和通过 OpenAI API 提交的提示开始,我们收集了所需模型行为的标注者演示数据集,我们用它来使用监督学习微调 GPT-3。然后,我们收集模型输出排名的数据集,我们使用该数据集通过人类反馈的强化学习进一步微调该监督模型。我们将生成的模型称为 InstructGPT。在对我们的提示分布的人工评估中,1.3B 参数 InstructGPT 模型的输出优于 175B GPT-3 的输出,尽管参数少 100 倍。此外,InstructGPT 模型显示了真实性的提高和有毒输出生成的减少,同时对公共 NLP 数据集的性能回归最小。尽管 InstructGPT 仍然会犯一些简单的错误,但我们的结果表明,根据人类反馈进行微调是使语言模型与人类意图保持一致的一个有前途的方向。
1 Introduction
可以“prompted”大型语言模型 (LM) 执行一系列自然语言处理 (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)。这是因为许多最近的大型 LM 使用的语言建模目标——从互联网预测网页上的下一个标记——不同于“有帮助和安全地遵循用户的指令”的目标(Radford et al.,2019;Brown et al.,2020; Fedus et al.,2021;Rae et al.,2021;Thoppilan et al.,2022)。因此,我们说语言建模目标未对齐(misaligned)。避免这些意外行为对于在数百个应用程序中部署和使用的语言模型尤为重要。
图 1:在我们的 API 提示(prompt)分布上对各种模型的人工评估,根据每个模型的输出优于 175B SFT 模型的输出的频率进行评估。 我们的 InstructGPT 模型(PPO-ptx)及其未经预训练混合训练的变体(PPO)显着优于 GPT-3 基线(GPT,GPT 提示); 我们的 1.3B PPO-ptx 模型的输出优于 175B GPT-3 的输出。 整篇论文的误差线是 95% 的置信区间。
通过训练语言模型按照用户的意图行事,我们在对齐(aligning)语言模型方面取得了进展(Leike et al.,2018)。这既包括明确的意图,例如遵循指令,也包括隐含的意图,例如保持真实、不带偏见、有毒或其他有害方式。使用 Askell et al. (2021) 的言语,我们希望语言模型是有帮助的(它们应该帮助用户解决他们的任务)、诚实的(它们不应该伪造信息或误导用户)和无害的(它们不应该导致身体不适) 、对人或环境的心理或社会危害)。我们在第 3.6 节中详细说明了对这些标准的评估。
我们专注于对齐(aligning)语言模型的微调方法。具体来说,我们使用来自人类反馈的强化学习(RLHF;Christiano et al.,2017;Stiennon et al.,2020)来微调 GPT-3 以遵循广泛的书面指令(instructions)(见图 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) 通过近端策略优化(proximal policy optimization ) (PPO) 对此奖励进行强化学习模型。 蓝色箭头表示此数据用于训练我们的模型之一。 在第 2 步中,方框 A-D 是来自我们的模型的样本,这些样本由标注者进行排序。 有关我们方法的更多详细信息,请参阅第 3 节。
我们主要通过让我们的标注者对我们测试集上模型输出的质量进行评分来评估我们的模型,包括来自保留客户(held-out customers)(未在训练数据中表示)的提示。我们还对一系列公共 NLP 数据集进行自动评估。我们训练三种模型尺寸(1.3B、6B 和 175B 参数),我们所有的模型都使用 GPT-3 架构。我们的主要发现如下:
与 GPT-3 的输出相比,标注者明显更喜欢 InstructGPT 输出。 在我们的测试集上,1.3B 参数 InstructGPT 模型的输出优于 175B GPT-3 的输出,尽管参数少了 100 多倍。这些模型具有相同的架构,唯一不同的是 InstructGPT 是根据我们的人类数据进行微调的。即使我们向 GPT-3 添加少量提示以使其更好地遵循指令,这个结果仍然成立。我们的 175B InstructGPT 的输出在 85±3% 的时间内优于 175B GPT-3 输出,在 71±4% 的时间内优于 few-shot 175B GPT-3。 InstructGPT 模型还根据我们的标注者生成更合适的输出,并且更可靠地遵循指令中的明确约束。
InstructGPT 模型在真实性方面比 GPT-3 有所改进。 在 TruthfulQA 基准测试中,InstructGPT 生成真实且信息丰富的答案的频率大约是 GPT-3 的两倍。对于未针对 GPT-3 进行对抗性选择的问题子集,我们的结果同样出色。在我们的 API 提示分发中的“closed-domain”任务中,输出不应包含输入中不存在的信息(例如摘要和closed-domain QA),InstructGPT 模型弥补输入中不存在的信息的频率大约是 GPT-3 的一半(分别为 21% 和 41% 的幻觉率(hallucination rate))。
InstructGPT 与 GPT-3 相比毒性略有改善,但没有偏差。 为了测量毒性,我们使用 RealToxicityPrompts 数据集(Gehman et al.,2020)并进行自动和人工评估。当被提示尊重时,InstructGPT 模型产生的毒性输出比 GPT-3 少约 25%。在 Winogender (Rudinger et al., 2018) 和 CrowSPairs (Nangia et al., 2020) 数据集上,InstructGPT 与 GPT-3 相比没有显着改善。
我们可以通过修改我们的 RLHF 微调程序来最小化公共 NLP 数据集的性能回归(performance regressions)。 在 RLHF 微调期间,我们观察到与 GPT-3 在某些公共 NLP 数据集上的性能回归,特别是 SQuAD (Rajpurkar et al., 2018)、DROP (Dua et al., 2019)、HellaSwag (Zellers et al., 2019) 和 WMT 2015 French to English translation(Bojar et al.,2015)。这是一个“对齐税(alignment tax)”的例子,因为我们的对齐过程是以降低我们可能关心的某些任务性能为代价的。通过将 PPO 更新与增加预训练分布 (PPO-ptx) 对数似然的更新混合,我们可以大大减少这些数据集的性能回归,而不会影响标注者偏好分数。
我们的模型可以泛化到未参与训练的数据的"held-out"labeler的偏好。 为了测试我们模型的泛化性,我们对held-out labelers进行了初步实验,发现它们更喜欢 InstructGPT 输出而不是 GPT-3 的输出,其比例与我们的training labelers大致相同。然而,还需要更多的工作来研究这些模型在更广泛的用户群体上的表现,以及它们在人类对所需行为意见不一致的输入上的表现。
公共 NLP 数据集并不能反映我们的语言模型是如何使用的。 我们将根据人类偏好数据进行微调的 GPT-3 (即InstructGPT)与针对两种不同的公共 NLP 任务汇编(compilations)进行微调的 GPT-3 进行比较:FLAN(Wei et al.,2021)和 T0(Sanh et al.,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 可以执行这些任务,但需要更仔细的提示,并且通常不会遵循这些领域的指令。这个结果令人兴奋,因为它表明我们的模型能够概括“following instructions.”的概念。即使在他们获得很少直接监督信号的任务上,他们也会保持一定的一致性。
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 )。
2 Related work
关于对齐和从人类反馈中学习的研究。 我们以先前的技术为基础,使模型与人类意图保持一致,特别是从人类反馈 (RLHF) 中强化学习。它最初是为在模拟环境和 Atari 游戏中训练简单机器人而开发的 (Christiano et al., 2017; Ibarz et al., 2018),最近被应用于微调语言模型以总结文本(summarize text) (Ziegler et al., 2019; Stiennon et al., 2020; Böhm et al.,2019;Wu et al.,2021)。这项工作反过来又受到在对话(Jaques et al.,2019;Yi et al.,2019;Hancock et al.,2019)、翻译(Kreutzer et al.,2018;Bahdanau et al.,2016)等领域使用人类反馈作为奖励的类似工作的影响,语义解析(Lawrence and Riezler,2018)、故事生成(Zhou and Xu,2020)、评论生成(Cho et al.,2018)和证据提取(Perez et al.,2019)。 Madaan et al. (2022) 使用书面人类反馈来增强提示并提高 GPT-3 的性能。还有一些工作是使用 RL 和规范先验在基于文本的环境中对齐代理(aligning agents)(Nahian et al.,2021)。我们的工作可以看作是 RLHF 在广泛分布的语言任务上对齐语言模型的直接应用。
对齐语言模型意味着什么的问题最近也受到关注(Gabriel,2020)。 Kenton et al. (2021) 列出了 LM 中因未对齐(misalignment)而导致的行为问题,包括产生有害内容和游戏指定错误的目标。在并行工作中,Askell et al. (2021) 提出将语言助手作为对齐研究的试验台,研究一些简单的基线及其缩放特性。
训练语言模型以遵循指令。 我们的工作还与语言模型中的交叉任务泛化研究有关,其中 LM 在广泛的公共 NLP 数据集(通常以适当的指令为前缀)上进行微调,并在一组不同的 NLP 任务上进行评估。在这个领域有一系列的工作(Yi et al.,2019;Mishra et al.,2021;Wei et al.,2021;Khashabi et al.,2020;Sanh et al.,2021;Aribandi et al.,2021),它们在训练和评估数据、指令格式、预训练模型的大小和其他实验细节方面有所不同。跨研究的一致发现是,在一系列 NLP 任务上使用指令微调 LM 可以提高它们在zero-shot和few-shot设置中保留任务的下游性能。
在导航指令遵循方面也有相关工作,其中训练模型以遵循自然语言指令在模拟环境中导航(Bahdanau et al.,2018;Abramson et al.,2020;Zhao et al.,2021)。
评估语言模型的危害。 修改语言模型行为的一个目标是减轻这些模型在现实世界中部署时的危害。这些风险已被广泛记录(Bender et al.,2021;Bommasani et al.,2021;Kenton et al.,2021;Weidinger et al.,2021;Tamkin et al.,2021)。语言模型会产生有偏差的输出(Dhamala et al.,2021;Liang et al.,2021;Manela et al.,2021;Caliskan et al.,2017;Kirk et al.,2021),泄露私人数据(Carlini et al.,2021),产生错误信息(Solaiman et al.,2019) ; Buchanan et al., 2021),并被恶意使用;为了进行全面审查,我们将读者引导至 Weidinger et al. (2021)。在特定领域部署语言模型会带来新的风险和挑战,例如在对话系统中(Henderson et al.,2018;Xu et al.,2020;Dinan et al.,2019b)。有一个新兴但不断发展的领域旨在建立基准以具体评估这些危害,特别是围绕毒性(toxicity)(Gehman et al.,2020)、刻板印象(Nadeem et al.,2020)和社会偏见(Dhamala et al.,2021;Nangia et al.,2020;Rudinger et al., 2018)。在这些问题上取得重大进展很困难,因为对 LM 行为的善意干预可能会产生副作用(Welbl et al.,2021;Blodgett et al.,2020);例如,由于训练数据中的偏见相关性,降低 LM 毒性的努力会降低它们对来自代表性不足的群体(under-represented groups)的文本进行建模的能力 (Xu et al., 2021)。
修改语言模型的行为以减轻危害。 有很多方法可以改变语言模型的生成行为。 Solaiman and Dennison (2021) 在一个小型的、以价值为目标的数据集上微调 LMs,这提高了模型在问答任务中遵守这些价值观的能力。 Ngo et al. (2021) 通过删除语言模型很有可能生成一组研究人员编写的触发短语的文档来过滤预训练数据集。当在这个过滤后的数据集上训练时,他们的 LMs 生成的有害文本较少,但代价是语言建模性能略有下降。 Xu et al. (2020) 使用多种方法来提高聊天机器人的安全性,包括数据过滤、在生成过程中阻止某些单词或 n-gram、安全特定控制tokens(Keskar et al.,2019;Dinan et al.,2019a)和human-in-theloop data collection (Dinan et al.,2019b)。减轻 LMs 产生的偏差的其他方法使用词嵌入正则化(Liu et al.,2019;Huang et al.,2019)、数据增强(Liu et al.,2019;Dinan et al.,2019a;Sheng et al.,2019)、零空间投影来制作敏感tokens上的分布更均匀(Liang et al.,2021)、不同的目标函数(Qian et al.,2019)或因果中介分析(Vig et al.,2020)。还有一些工作是使用第二个(通常较小的)语言模型来指导语言模型的生成(Dathathri et al.,2019;Krause et al.,2020),并且这种想法的变体已被应用于减少语言模型的毒性(Schick et al.,2021) ).
3 方法和实验细节
表 1:来自我们的 API 提示数据集的用例类别分布。
表 2:来自我们的 API 提示数据集的说明性提示。 这些是受实际用法启发而虚构的示例——请参阅附录 A.2.1 中的更多示例。
3.1 高级方法
我们的方法遵循 Ziegler et al. (2019) 和 Stiennon et al. (2020) 的方法,他们将其应用于风格延续(stylistic continuation)和摘要领域。我们从预训练语言模型(Radford et al.,2019;Brown et al.,2020;Fedus et al.,2021;Rae et al.,2021;Thoppilan et al.,2022)开始,这是一个提示的分布,我们希望我们的模型在其上产生对齐的输出,以及一组训练有素的人工标注者(human labelers)(详见第 3.4 节)。然后,我们应用以下三个步骤(图 2)。
第 1 步:收集演示(demonstration)数据,并训练监督策略。 我们的标注者提供了输入提示分布上所需行为的演示(有关此分布的详细信息,请参阅第 3.2 节)。然后,我们使用监督学习对该数据微调预训练的 GPT-3 模型。
第 2 步:收集对比数据,训练奖励模型。 我们收集了模型输出之间比较的数据集,其中标注者会指示他们在给定输入下更喜欢哪个输出。然后我们训练奖励模型来预测人类偏好的输出。
第 3 步:使用 PPO 针对奖励模型优化策略。 我们使用 RM 的输出作为标量奖励。我们使用 PPO 算法 (Schulman et al., 2017) 微调监督策略以优化此奖励。
步骤2和步骤3可以不断迭代;收集当前最佳策略的更多比较数据,用于训练新的 RM,然后训练新的策略。在实践中,我们的大部分比较数据来自我们的监管保单,也有一些来自我们的 PPO 策略(policies)。
3.2 Dataset
我们的提示数据集主要包含提交给 OpenAI API 的文本提示,特别是那些在 Playground 界面上使用早期版本的 InstructGPT 模型(通过对我们演示数据的子集进行监督学习进行训练)的提示。使用 Playground 的客户被告知只要使用 InstructGPT 模型,他们的数据就可以通过定期通知来训练更多模型。在本文中,我们不使用来自在生产中使用 API 的客户的数据。我们通过检查共享长公共前缀的提示来启发式地删除重复提示,并且我们将提示的数量限制为每个用户 ID 200 个。我们还根据用户 ID 创建我们的训练、验证和测试拆分,以便验证集和测试集不包含来自训练集中的用户的数据。为了避免模型学习潜在的敏感客户详细信息,我们过滤了训练拆分中的所有提示以获取个人身份信息 (PII)。
为了训练第一个 InstructGPT 模型,我们要求标注者(labelers)自己编写提示。这是因为我们需要一个类似指令的提示的初始来源来引导流程,而这些类型的提示并不经常提交给 API 上的常规 GPT-3 模型。我们要求标注者写出三种提示:
-
Plain:我们只是要求标注者提出一个任意任务,同时确保任务具有足够的多样性。
-
Few-shot:我们要求标注者提出一条指令,以及该指令的多个查询/响应对。
-
User-based:我们在 OpenAI API 的候补名单申请中陈述了许多用例。我们要求标注者提出与这些用例相对应的提示。
根据这些提示,我们生成了三个用于微调过程的不同数据集:(1) 我们的 SFT 数据集,带有用于训练我们的 SFT 模型的labeler demonstrations,(2) 我们的 RM 数据集,带有用于训练我们的 RM的模型输出的labeler rankings,和 (3) 我们的 PPO 数据集,没有任何人工标签,用作 RLHF 微调的输入。 SFT 数据集包含大约 13k 个训练提示(来自 API 和 labeler-written),RM 数据集有 33k 个训练提示(来自 API 和 labeler-written),PPO 数据集有 31k 个训练提示(仅来自 API)。表 6 中提供了有关数据集大小的更多详细信息。
Table 6: Dataset sizes, in terms of number of prompts.
为了了解我们数据集的组成,在表 1 中,我们显示了我们的 API 提示(特别是 RM 数据集)的用例类别的分布,由我们的承包商标注。大多数用例都是生成的,而不是分类或 QA。我们还在表 2 中展示了一些说明性提示(由研究人员编写,以模仿提交给 InstructGPT 模型的提示类型);更多提交给InstructGPT模型的提示见附录A.2.1,提交给GPT-3模型的提示见附录A.2.2。我们在附录 A 中提供了有关数据集的更多详细信息。
3.3 Tasks
我们的训练任务来自两个来源:(1) 由我们的标注者编写的提示数据集和 (2) 在我们的 API 上提交给早期 InstructGPT 模型的提示数据集(见表 6)。这些提示非常多样化,包括生成、问题回答、对话、摘要、提取和其他自然语言任务(见表 1)。我们的数据集超过 96% 是英语,但是在第 4.3 节中,我们还探讨了我们的模型响应其他语言指令和完成编码任务的能力。
对于每个自然语言提示,任务通常是通过自然语言指令直接指定的(例如“写一个关于聪明青蛙的故事”),但也可以通过少数例子间接指定(例如给出两个青蛙故事的例子,并提示模型生成一个新的故事。)或隐式延续(例如提供关于青蛙的故事的开始)。在每种情况下,我们都要求我们的标注者尽最大努力推断编写提示的用户的意图,并要求他们跳过任务非常不清楚的输入。此外,我们的标注者还根据我们提供给他们的说明(见附录 B)和他们的最佳判断,考虑隐含的意图,例如响应的真实性,以及潜在的有害输出,例如有偏见或有毒的语言。
3.4 Human data collection
为了生成我们的演示和比较数据,并进行我们的主要评估,我们在 Upwork 上和通过 ScaleAI 聘请了一个由大约 40 名承包商组成的团队。与收集关于摘要任务的人类偏好数据的早期工作(Ziegler et al.,2019;Stiennon et al.,2020;Wu et al.,2021)相比,我们的输入涵盖了更广泛的任务,偶尔会包括有争议和敏感的话题。我们的目标是选择一组对不同人口群体的偏好敏感并且善于识别潜在有害输出的标注者。因此,我们进行了一项筛选测试,旨在衡量标注者在这些方面上的能力。我们选择了在此测试中表现出色的标注者;有关我们的选择过程和标注者人口统计的更多信息,请参阅附录 B.1。
在training和evaluation期间,我们的对齐标准可能会发生冲突:例如,当用户请求可能有害的响应时。在training期间,我们优先考虑对用户的帮助(不这样做需要做出一些困难的设计决定,我们留给未来的工作; 更多讨论见第 5.4 节)。然而,在我们的最终evaluation中,我们要求标注者优先考虑真实性和无害性(因为这是我们真正关心的)。
与 Stiennon et al. (2020) 一样,我们在项目过程中与标注者密切合作。在这项目上我们有一个入职流程来训练标注者,为每项任务编写详细说明(参见附录 B.2),并在共享聊天室中回答标注者的问题。
作为一项初步研究,以了解我们的模型对其他标注者的偏好的泛化效果如何,我们聘请了一组单独的标注者,他们不产生任何训练数据。这些标注者来自同一供应商,但未经过筛选测试。
尽管任务很复杂,但我们发现标注者之间的一致率相当高:训练标注者在 72.6 ± 1.5% 的时间内彼此一致,而对于保留(held-out)标注者,这个数字是 77.3 ± 1.3%。相比之下,在 Stiennon et al. (2020) 的总结工作中,研究人员之间的一致性为 73 ± 4%。
3.5 Models
我们从 Brown et al. (2020) 的 GPT-3 预训练语言模型开始。这些模型在广泛分布的互联网数据上进行训练,适用于广泛的下游任务,但行为特征较差。从这些模型开始,我们然后使用三种不同的技术训练模型:
监督微调(Supervised fine-tuning)(SFT)。 我们使用监督学习在我们的标注者演示(标注好的数据集)中微调 GPT-3。我们训练了 16 个epochs,使用余弦学习率衰减和 0.2 的residual dropout。我们根据验证集上的 RM 分数进行最终的 SFT 模型选择。与 Wu et al. (2021) 类似,我们发现我们的 SFT 模型在 1 个 epoch 后过拟合了验证损失(validation loss);然而,我们发现尽管存在这种过度拟合,但更多时期的训练有助于 RM 分数和人类偏好得分。
奖励建模(Reward modeling ) (RM)。 从移除了最后反嵌入层( unembedding layer)的 SFT 模型开始,我们训练了一个模型来接收提示和响应(response),并输出标量奖励。在本文中,我们只使用 6B RM,因为这样可以节省大量计算,而且我们发现 175B RM 训练可能不稳定,因此不太适合用作 RL 期间的值函数(有关更多详细信息,请参见附录 C)。
在 Stiennon et al. (2020) 中,RM 在同一输入的两个模型输出之间的比较数据集上进行训练。他们使用交叉熵损失,将比较作为标签——奖励的差异代表人类标注者更喜欢一种响应的对数几率。
为了加快比较收集,我们向标注者提供 K = 4 和 K = 9 之间的任何排名响应。这会为显示给标注者的每个提示生成 个比较。由于每个标注任务中的比较都非常相关,我们发现如果我们简单地将比较混洗到一个数据集中,单次遍历数据集会导致奖励模型过度拟合。相反,我们训练来自每个提示的所有 比较单个批处理元素。这在计算上更加高效,因为它只需要一次 RM 的前向传递(而不是 次完成 K 次前向传递),并且因为它不再过度拟合,它实现了大大提高的验证准确性和日志丢失。
具体来说,奖励模型的损失函数为:
其中 是提示 和完成(completion) 的奖励模型的标量输出,参数为 , 是 和 对中的首选完成(completion), 是人类比较的数据集
最后,由于 RM 损失对于奖励的变化是不变的,我们使用偏差对奖励模型进行归一化,以便在进行 RL 之前,标注者演示(labeler demonstrations)的平均得分为 0。
Reinforcement learning (RL)。 再次遵循 Stiennon et al. (2020),我们使用 PPO (Schulman et al., 2017) 在我们的环境中微调了 SFT 模型。该环境是一个赌博(bandit)环境,它呈现随机的客户(customer)提示并期望对提示的响应。给定提示和响应,它会产生由奖励模型确定的奖励并结束该回合(episode)。此外,我们在每个token上添加了 SFT 模型的每个per-token KL 惩罚,以减轻奖励模型的过度优化。值函数从 RM 初始化。我们称这些模型为“PPO”。
我们还尝试将预训练梯度混合到 PPO 梯度中,以修复公共 NLP 数据集上的性能回归。我们称这些模型为“PPO-ptx”。我们在 RL 训练中最大化以下组合目标函数:
其中 是学习到的 RL 策略, 是监督训练模型, 是预训练分布。 KL 奖励系数 和预训练损失系数 分别控制 KL 惩罚和预训练梯度的强度。对于“PPO”模型,γ设置为0。如无特殊说明,本文InstructGPT均指PPO-ptx模型。
Baseline 我们将 PPO 模型的性能与我们的 SFT 模型和 GPT-3 进行了比较。我们还与 GPT-3 进行了比较,当它被提供一个 few-shot 前缀以“prompt”进入指令跟随模式(GPT-3-prompted)时。此前缀添加到用户指定的指令之前。
我们还在 FLAN (Wei et al., 2021) 和 T0 (Sanh et al., 2021) 数据集上将 InstructGPT 与微调 175B GPT-3 进行了比较,它们都包含各种 NLP 任务,并结合了每个任务的自然语言指令(数据集在包含的 NLP 数据集和使用的指令风格方面有所不同)。我们分别在大约 100 万个示例上对它们进行微调,并选择在验证集上获得最高奖励模型分数的 checkpoint。有关更多训练详细信息,请参阅附录 C。
3.6 Evaluation
要评估我们的模型“对齐(aligned)”的程度,我们首先需要弄清楚对齐在这种情况下的含义。对齐的定义历来是一个模糊和令人困惑的话题,有各种相互竞争的建议(Chen et al.,2021;Leike et al.,2018;Gabriel,2020)。继 Leike et al. (2018) 之后,我们的目标是训练根据用户意图行事的模型。更实际地,为了我们的语言任务,我们使用类似于 Askell et al. (2021) 的框架,该框架定义了模型是否有帮助、诚实和无害。
为了提供帮助,模型应该遵循指令,但也可以从几次提示或其他可解释的模式(例如“Q: {question}\nA:”)中推断出意图。由于给定提示的意图可能不清楚或模棱两可,因此我们依赖于标注者的判断,而我们的主要指标是标注者偏好评级。但是,由于我们的标注者不是生成提示的用户,因此用户的实际意图与标注者仅阅读提示后认为的意图之间可能存在差异。
目前尚不清楚如何在纯生成模型中衡量诚实度;这需要将模型的实际输出与其对正确输出的“信念(belief)”进行比较,并且由于模型是一个大黑盒子,我们无法推断出它的信念(beliefs)。相反,我们使用两个指标来衡量真实性——模型关于世界的陈述是否真实:(1) 评估我们的模型在封闭域任务上编造信息的倾向(“幻觉(hallucinations)”),以及 (2) 使用 TruthfulQA 数据集(Lin et al., 2021)。不用说,这只抓住了真实真正含义的一小部分。
与诚实类似,衡量语言模型的危害也带来了许多挑战。在大多数情况下,语言模型的危害取决于它们的输出在现实世界中的使用方式。例如,生成有毒输出的模型在已部署的聊天机器人的上下文中可能是有害的,但如果用于数据扩充以训练更准确的毒性检测模型,甚至可能会有所帮助。在项目的早期,我们让标注者评估输出是否“潜在有害(potentially harmful)”。但是,我们停止了此操作,因为它需要对输出最终将如何使用进行过多的猜测;特别是因为我们的数据也来自与 Playground API 接口交互的客户(而不是来自生产用例)。
因此,我们使用一套更具体的代理标准,旨在捕获已部署模型中行为的不同方面,这些行为最终可能是有害的:我们让标注者评估输出在客户助理的上下文中是否不合适,诋毁受保护的类别,或包含色情或暴力内容。我们还在旨在测量偏差和毒性的数据集上对我们的模型进行基准测试,例如 RealToxicityPrompts (Gehman et al., 2020) 和 CrowS-Pairs (Nangia et al., 2020)。
总而言之,我们可以将定量评估分为两个独立的部分:
API 分布评估。 我们的主要指标是人类对一组提示的偏好评级,这些提示来自与我们的训练分布相同的来源。当使用来自 API 的提示进行评估时,我们只选择我们未包含在训练中的客户的提示。但是,鉴于我们的训练提示旨在与 InstructGPT 模型一起使用,它们很可能不利于 GPT-3 基线。因此,我们还评估了在 API 上提交给 GPT-3 模型的提示;这些提示通常不是“遵循指令(instruction following)”的风格,而是专门为 GPT-3 设计的。在这两种情况下,对于每个模型,我们计算其输出优于基线策略的频率;我们选择我们的 175B SFT 型号作为基准,因为它的性能接近中间水平。此外,我们要求标注者以1-7 Likert scale来判断每个响应的整体质量,并为每个模型输出收集一系列元数据(见表 3)。
对公共 NLP 数据集的评估。 我们评估两种类型的公共数据集:那些捕捉语言模型安全性方面的数据集,特别是真实性、毒性和偏见,以及那些捕捉传统 NLP 任务(如问答、阅读理解和摘要)的零样本性能的数据集。我们还对 RealToxicityPrompts 数据集(Gehman et al.,2020)进行了毒性人类评估。我们正在发布所有基于采样的 NLP 任务的模型样本。
4 Results
在本节中,我们为第 1 节中的声明提供实验证据,分为三个部分:API 提示分布的结果、公共 NLP 数据集的结果和定性结果。
图 3:我们模型的偏好结果,通过针对 175B SFT 模型的胜率来衡量。 左:提交给 API 上的 GPT 模型的提示结果; 右图:提交给 API 上的 InstructGPT 模型的提示结果; 顶部:来自held-out labelers的结果; 底部:训练标签的结果。 我们从提交给 GPT-3 模型(左)的提示的评估中省略了 GPT(提示),因为这些提示已经设计为对 GPT-3 表现良好,而不是提交给 InstructGPT 模型的提示(右)。
4.1 API 分布结果
与 GPT-3 的输出相比,标注者明显更喜欢 InstructGPT 输出。 在我们的测试提示集上,我们的标注者明显更喜欢不同规模下的InstructGPT 模型输出。这些结果如图 1 所示。我们发现 GPT-3 输出表现最差,并且可以通过使用精心设计的少样本提示(GPT-3(prompted)),然后通过使用监督学习(SFT)进行演示(demonstrations)训练,可以获得显着的步幅改进(step-size improvements) ,最后通过使用 PPO 对比较数据进行训练。在 PPO 期间添加预训练组合的更新不会导致标注者偏好发生较大变化。为了说明我们收益的大小:直接比较时,175B InstructGPT 输出在 85 ± 3% 的时间内优于 GPT-3 输出,在 71 ± 4% 的时间内优于 few-shot GPT-3。
我们还发现,在对 API 上提交给 GPT-3 模型的提示进行评估时,我们的结果没有显着变化(见图 3),尽管我们的 PPO-ptx 模型在较大的模型尺寸下表现稍差。
在图 4 中,我们展示了标注者还沿着几个更具体的方面对 InstructGPT 输出进行了有利评价。具体来说,与 GPT-3 相比,InstructGPT 输出更适合客户助理的上下文,更经常遵循指令中定义的明确约束(例如“在 2 段或更少的段落中写下你的答案”),完全遵循正确的指令失败的可能性更小,并在封闭领域的任务中更少地编造事实(“幻觉(hallucinate)”)。这些结果表明 InstructGPT 模型比 GPT-3 更可靠且更易于控制。我们发现我们的其他元数据类别(元数据类别应该是指评价的其他方面)在我们的 API 中出现的频率太低,无法获得我们模型之间的统计显着差异。
图 4:API 分布上的元数据结果。 请注意,由于数据集的大小,这些结果会跨模型大小折叠。 有关包括模型大小的分析,请参见附录 E.2。 与 GPT-3 相比,PPO 模型更适合客户助理的情况,更善于遵循指令中的明确约束并尝试正确的指令,并且不太可能“产生幻觉”(即在封闭的环境中编造信息) 领域任务,如总结)。
图 5:根据 InstructGPT 提示分布,将我们的模型与 FLAN 和 T0 在 1-7 等级的Likert scores方面进行比较。 FLAN 和 T0 的性能优于默认 GPT-3,并且与置于“instruction-following”模式的少量 GPT-3 模型相当。
我们的模型可以泛化到未参与训练的数据的"held-out"labeler的偏好。 Held-out标注者与我们用来生成训练数据的workers有相似的排名偏好(见图 3)。特别是,根据坚持不懈的工作人员的说法,我们所有的 InstructGPT 模型仍然大大优于 GPT-3 基线。因此,我们的 InstructGPT 模型并不仅仅是过度拟合了我们训练标签的偏好。
我们从奖励模型的泛化能力中看到了进一步的证据。我们进行了一项实验,我们将标注者分成 5 组,并使用 5 折交叉验证(对其中 4 个组进行训练,并对保留(held-out)组进行评估)训练 5 个 RM(具有 3 个不同的种子)。这些 RM 在预测held-out组中标记者的偏好方面的准确度为 69.6 ± 0.9%,与预测训练集中标记者偏好的准确度 72.4 ± 0.4% 相比略有下降。
公共 NLP 数据集并不能反映我们的语言模型是如何使用的。 在图 5 中,我们还将 InstructGPT 与在 FLAN (Wei et al., 2021) 和 T0 (Sanh et al., 2021) 数据集上微调的 175B GPT-3 基线进行了比较(详见附录 C)。我们发现这些模型的性能优于 GPT-3,与 GPT-3 具有精心选择的提示,但比我们的 SFT 基线更差。这表明这些数据集的多样性不足以提高我们的 API 提示分布的性能。在正面比较中,我们的 175B InstructGPT 模型输出在 78 ± 4% 的时间内优于我们的 FLAN 模型,在 79 ± 4% 的时间内优于我们的 T0 模型。这些模型的Likert scores如图 5 所示。
我们相信我们的 InstructGPT 模型优于 FLAN 和 T0 有两个原因。首先,公共 NLP 数据集旨在捕获易于使用自动指标评估的任务,例如分类、问答以及一定程度上的摘要和翻译。然而,分类和 QA 只是 API 客户使用我们的语言模型的一小部分(约 18%),而根据标签商的说法,开放式生成和头脑风暴占我们提示数据集的约 57%(见表 1)。其次,公共 NLP 数据集可能很难获得非常多样化的输入(至少,在现实世界用户可能有兴趣使用的输入类型上)。当然,在 NLP 数据集中发现的任务确实代表了一种我们希望语言模型能够解决的指令,因此最广泛的指令遵循模型将结合这两种类型的数据集。
4.2 公共 NLP 数据集的结果
InstructGPT 模型在真实性方面比 GPT-3 有所改进。 根据 TruthfulQA 数据集上的人类评估,与 GPT-3 相比,我们的 PPO 模型在生成真实和信息丰富的输出方面显示出微小但显着的改进(见图 6)。这种行为是默认的:我们的模型不必特别指示说实话以表现出更高的真实性。有趣的是,我们的 1.3B PPO-ptx 模型是个例外,它的性能略低于相同尺寸的 GPT-3 模型。当仅针对未针对 GPT-3 进行对抗性选择的提示进行评估时,我们的 PPO 模型仍然比 GPT-3 更加真实和信息丰富,尽管绝对改进减少了几个百分点。
图 6:TruthfulQA 数据集的结果。 灰色条表示真实性等级; 彩色条表示真实性和信息量的等级。
继 Lin et al. (2021) 之后,我们还提供了一个有用的“Instruction+QA”提示,指示模型在不确定正确答案时以“我无可奉告”回应。在这种情况下,我们的PPO模型倾向于坦诚而不提供信息,而不是自信地说出错误的答案;基线 GPT-3 模型在这方面并不擅长。
我们在真实性方面的改进也可以通过以下事实得到证明:我们的 PPO 模型在 API 分布的封闭域任务上产生幻觉(hallucinate)(即伪造信息)的频率较低,如图 4 所示。
InstructGPT 与 GPT-3 相比毒性略有改善,但没有偏差(bias)。 我们首先在 RealToxicityPrompts 数据集(Gehman et al.,2020)上评估我们的模型。我们以两种方式做到这一点:我们通过 Perspective API 运行模型样本以获得自动毒性评分,这是该数据集的标准评估程序,我们还将这些样本发送给标注者以获得绝对毒性、相对于毒性的评级。提示、连续性和整体输出偏好。我们根据提示毒性从该数据集中统一采样提示,以更好地评估我们的模型在高输入毒性下的表现(参见附录 E 中的图 39);这与该数据集的标准即时抽样不同,因此我们的绝对毒性数字被夸大了。
图 7:比较 RealToxicityPrompts 上的人工评估和自动评估(Perspective API 分数)。 共有 1,729 个提示被标记为三种不同的 175B 型号,有和没有“respectful”说明。 此处显示的自动评估是根据与人工评估相同的一组提示计算的,因此与附录 D 表 14 中记录的全套评估略有不同。
我们的结果如图 7 所示。我们发现,根据 Perspective API,当指示产生安全和尊重的输出(“respectful prompt”)时,InstructGPT 模型产生的毒性输出比 GPT-3 的输出低。当恭敬的提示被移除(“no prompt”)时,这个优势就消失了。有趣的是,当明确提示产生有毒输出时,InstructGPT 输出比 GPT-3 输出的有毒得多(参见图 39)。
这些结果在我们的人类评估中得到了证实:InstructGPT 在“respectful prompt”设置中的毒性低于 GPT-3,但在“no prompt”设置中的表现相似。我们在附录 E 中提供了扩展结果。总而言之:根据提示,我们所有的模型都被评为比预期的毒性更低(它们在 -1 到 1 的范围内得到负分,其中 0 表示“与预期的毒性差不多” ).我们的 SFT 基线是我们所有模型中毒性最小的,但连续性也最低,在我们的排名中也是最不受欢迎的,这可能表明该模型生成非常短或退化的响应。
为了评估模型生成有偏见的言语的倾向(见附录 E),我们还在 Winogender (Rudinger et al., 2018) 和 CrowS-Pairs (Nangia et al., 2020) 数据集的修改版本上评估了 InstructGPT。这些数据集由成对的句子组成,可以突出潜在的偏见。我们计算每对中生成句子的相对概率以及相关二进制概率分布的熵(以位为单位)。完全无偏模型在每对句子中没有偏好,因此具有最大熵。按照这个指标,我们的模型的偏见(biased)不亚于 GPT-3。 PPO-ptx 模型显示出与 GPT-3 相似的偏见,但当被指示以尊重的方式行事时,它表现出较低的熵,因此表现出较高的偏见。偏见的模式不明确;看起来,无论其输出是否表现出刻板行为,接受指导的模型对其输出都更加确定。
我们可以通过修改我们的 RLHF 微调程序来最小化公共 NLP 数据集的性能回归。 默认情况下,当我们在 API 分布上训练 PPO 模型时,它会遭受“对齐税”,因为它在几个公共 NLP 数据集上的性能下降。我们想要一个避免对齐税的对齐程序,因为它鼓励使用未对齐但在这些任务上更有能力的模型。
图 8:与没有额外前缀的 GPT-3 175B 相比,175B PPO-ptx 模型(InstructGPT 175B)中的泛化示例。 提示是精心挑选的,以说明某些行为,但输出不是精心挑选的。 (1) InstructGPT 可以遵循其他语言的指令,尽管它有时会生成英文输出。 GPT-3 需要更仔细的提示,类似于英语。 (2) InstructGPT 可以比 GPT-3 更可靠地总结和回答有关代码的问题(尽管它在这里的回答不是很正确)。 对于代码 QA 示例,GPT-3 确实在大约 50% 的时间内回答了问题。
在图 29 中,我们展示了向我们的 PPO 微调添加预训练更新 (PPO-ptx) 减轻了所有数据集上的这些性能回归,甚至超过了 HellaSwag 上的 GPT-3。 PPO-ptx 模型在 DROP、SQuADv2 和翻译上的性能仍然落后于 GPT-3;需要做更多的工作来研究和进一步消除这些性能下降。
混合预训练更新的性能比增加KL系数的简单解决方案要好。在图 33 中,我们展示了预训练混合系数的一个值,它既可以逆转 SQuADv2 和 DROP(我们用于测试的数据集)的性能回归,又可以最小程度地减少validation奖励。相反,增加 KL 系数(图 34)会导致validation奖励显着减少,并且在 DROP 和 SQuAD 上永远不会完全恢复。将 KL 模型从 PPO init 更改为 GPT-3 会得到类似的结果。
4.3 定性结果
InstructGPT 模型显示了对 RLHF 微调分布之外的指令的有很好的泛化。 特别是,我们发现 InstructGPT 显示出遵循非英语语言指令的能力,并对代码执行摘要和问答。这很有趣,因为非英语语言和代码只占我们微调数据的一小部分,并且它表明,在某些情况下,对齐方法可以推广到在人类没有直接监督的输入上产生所需的行为。
图 9:与没有额外前缀的 GPT-3 175B 相比,175B PPO-ptx 模型 (InstructGPT 175B) 中的简单错误。 提示是精心挑选的,以说明某些行为,但输出不是精心挑选的。 (1) InstructGPT 可能会被假定错误前提的指令所混淆,并简单地接受它。 (2) InstructGPT 可以过度含糊不清,而不是直接回答简单的问题(这种情况下,南瓜(pumpkin)很可能会彻底爆炸)。 请注意,这些示例并不能完全反映 GPT-3 的回答问题能力,因为它没有被提示进入“question answering”模式。
我们没有定量跟踪这些行为,但我们在图 8 中展示了一些定性示例。我们的 175B PPO-ptx 模型能够可靠地回答有关代码的问题,并且还可以遵循其他语言的说明;但是,我们注意到即使指令是另一种语言,它也经常以英语输出。相比之下,我们发现 GPT-3 可以执行这些任务,但需要更仔细的提示,并且很少遵循这些领域的指令。
InstructGPT 仍然会犯一些简单的错误。 在与我们的 175B PPO-ptx 模型交互时,我们注意到它仍然会犯简单的错误,尽管它在许多不同的语言任务上表现出色。举几个例子:(1)当给出带有错误前提的指令时,模型有时会错误地假设前提为真,(2)模型可以过度含糊不清(hedge);当给出一个简单的问题时,它有时会说这个问题没有一个答案并给出多个可能的答案,即使上下文中有一个相当明确的答案,并且(3)当指令包含多个显式约束(例如“列出 10 部 1930 年代在法国拍摄的电影”)或约束对语言模型具有挑战性时(例如用指定数量的句子写摘要),模型的性能会下降。
我们在图 9 中展示了这些行为的一些示例。我们怀疑行为 (2) 的出现部分是因为我们指令标注者奖励认识上的谦逊;因此,他们可能倾向于奖励含糊不清的输出,这被我们的奖励模型所接受。我们怀疑行为 (1) 的发生是因为训练集中几乎没有假设错误前提的提示,并且我们的模型不能很好地泛化到这些示例。我们相信,通过对抗性数据收集,这两种行为都可以显着减少(Dinan et al.,2019b)。
5 讨论
5.1 对齐研究的意义
这项研究是我们使人工智能系统与人类意图保持一致的更广泛研究计划的一部分(Christiano et al.,2017;Ziegler et al.,2019;Stiennon et al.,2020)。尽管这项工作侧重于我们当前的语言模型系统,但我们寻求适用于未来 AI 系统的通用且可扩展的方法(Leike et al.,2018)。我们在这里使用的系统仍然相当有限,但它们是当今最大的语言模型之一,我们将它们应用于广泛的语言任务,包括分类、摘要、问答、创意写作、对话等。
我们在这项工作中进行对齐研究的方法是迭代的:我们正在改进当前 AI 系统的对齐,而不是抽象地关注对齐尚不存在的 AI 系统。这种方法的缺点是我们不会直接面对仅在对齐超人系统(superhuman systems)时才会出现的对齐问题 (Bostrom, 2014)。然而,我们的方法确实为我们提供了一个明确的经验反馈循环,说明什么有效,什么无效。我们相信这个反馈循环对于改进我们的对齐技术至关重要,它迫使我们跟上机器学习的进步。此外,我们在这里使用的对齐技术 RLHF 是几个对齐超人系统的提案中的重要组成部分(Leike et al.,2018;Irving et al.,2018;Christiano et al.,2018)。例如,RLHF 是最近总结书籍工作的核心方法,这项任务展示了对齐超人人工智能系统的一些困难,因为人类很难直接评估 (Wu et al., 2021)。
从这项工作中,我们可以更普遍地吸取对齐研究的经验教训:
-
1. 相对于预训练,增加模型对齐的成本是适度的。 收集我们的数据和训练运行计算的成本,包括实验运行,只是训练 GPT-3 花费的一小部分:训练我们的 175B SFT 模型需要 4.9 petaflops/s-days,训练我们的 175B PPO-ptx 模型需要60 petaflops/s-day,而 GPT-3 为 3,640 petaflops/s-days(Brown et al.,2020)。同时,我们的结果表明 RLHF 在使语言模型对用户更有帮助方面非常有效,比模型大小增加 100 倍更有效。这表明现在增加对现有语言模型对齐的投资比训练更大的模型更具成本效益——至少对于我们客户的自然语言任务分配而言。
-
2. 我们已经看到一些证据表明 InstructGPT 将“following instructions”概括为我们不对其进行监督的设置,例如非英语语言任务和与代码相关的任务。 这是一个重要的属性,因为让人类监督模型执行的每项任务的成本高得令人望而却步。需要更多的研究来研究这种泛化如何随着能力的增加而扩展;有关此方向的最新研究,请参阅 Christiano et al. (2021)。
-
3. 我们能够减轻微调带来的大部分性能下降。 如果不是这种情况,这些性能下降将构成对齐税——对齐模型的额外成本。任何高税收的技术都可能不会被采用。为了避免激励未来的高性能人工智能系统与人类意图保持不一致,需要低对齐税的对齐技术。为此,我们的结果对于 RLHF 作为一种低税对准技术来说是个好消息。
-
4. 我们已经从现实世界的研究中验证了对齐技术。 对齐研究历来相当抽象,侧重于理论结果 (Soares et al., 2015)、小型合成域 (Christiano et al., 2018; Leike et al., 2017),或在公共 NLP 数据集上训练机器学习模型 (Ziegler et al., 2019; Stiennon et al., 2020)。我们的工作为人工智能系统的对齐研究奠定了基础,这些系统正在与客户一起在现实世界的生产中使用。这使得关于技术有效性和局限性的重要反馈循环成为可能。
5.2 我们要与谁结盟?
在将语言模型与人类意图对齐时,它们的最终行为是基础模型(及其训练数据)、微调数据和所用对齐方法的函数。在本节中,我们将具体描述一些影响微调数据的因素,以最终确定我们要对齐的内容和对象。然后,在 5.3 节中对我们工作的局限性进行更广泛的讨论之前,我们会考虑需要改进的地方。
文献经常使用诸如“人类偏好”或“人类价值观”之类的术语来构建对齐。在这项工作中,我们调整了一组标注者的偏好,这些偏好受到的影响包括他们收到的指示、他们接受指示的背景(作为有偿工作)以及他们从谁那里得到指示。一些重要的警告适用:
首先,我们正在调整我们的训练标注者提供的演示和偏好,他们直接生成我们用来微调模型的数据。我们在附录 B 中描述了我们的标注者招聘流程和人口统计数据;一般来说,他们大多是居住在美国或东南亚的讲英语的人,通过 Upwork 或 Scale AI 雇用。他们在许多例子上意见不一;我们发现标注者之间一致约为 73%。
其次,我们正在调整我们的偏好,作为设计这项研究的研究人员(因此通过我们更广泛的研究组织 OpenAI 的代理):我们编写标注指南,标注者在编写演示和选择他们喜欢的输出时用作指南,并且我们在共享聊天室中回答他们关于边缘案例的问题。需要更多研究不同指令集和界面设计对从标注者收集的数据的确切影响及其对模型行为的最终影响。
第三,我们的训练数据由 OpenAI 客户发送给 OpenAI API Playground 上的模型的提示决定,因此我们隐含地与客户认为有价值的东西保持一致,在某些情况下,他们的最终用户认为当前使用的有价值的东西的API。客户及其最终用户可能不同意,或者客户可能没有针对最终用户的福祉进行优化;例如,客户可能想要一个模型来最大化用户在其平台上花费的时间,而这不一定是最终用户想要的。在实践中,我们的标注者无法看到给定提示或完成的上下文。
第四,OpenAI 的客户并不代表所有潜在或当前的语言模型用户——更不用说所有受语言模型使用影响的个人和群体了。在这个项目的大部分时间里,OpenAI API 的用户都是从候补名单中选出的。这个候补名单的最初种子是 OpenAI 员工,使最终群体偏向于我们自己的网络。
回过头来看,设计一个公平、透明并具有适当问责机制的对齐过程存在许多困难。本论文的目标是证明这种对齐技术可以针对特定应用程序对特定的人类参考群体进行对齐。我们并不声称研究人员、我们雇佣的标注员或我们的API客户是正确的偏好来源。需要考虑许多利益相关者——训练模型的组织、使用模型开发产品的客户、这些产品的最终用户以及可能直接或间接受到影响的更广泛人口。这不仅仅是让对齐过程更具参与性的问题;不可能一次性训练出一个能够满足每个人偏好的系统,或者每个人都会认同其中的权衡。
一个可能的发展方向是训练可以根据特定群体的偏好进行条件设置的模型,或者可以轻松进行微调或提示以代表不同群体的模型。然后,可以部署和使用不同的模型,以代表认同不同价值观的群体。然而,这些模型可能仍会影响到更广泛的社会,并且在与哪些偏好进行条件设置以及如何确保所有群体都能被代表并可以选择退出可能会有许多困难的决策。
5.3 限制
方法。 我们的 InstructGPT 模型的行为部分取决于从我们的承包商那里获得的人工反馈。一些标注任务依赖于价值判断,这些判断可能会受到我们承包商的身份、他们的信仰、文化背景和个人历史的影响。我们聘请了大约 40 名承包商,以他们在筛选测试中的表现为指导,筛选测试旨在判断他们识别和响应敏感提示的能力,以及他们与研究人员在带有详细说明的标注任务上的一致率(见附录 B)。我们让我们的承包商团队保持小规模,因为这有助于与一小部分全职执行任务的承包商进行高带宽通信。然而,这个群体显然不能代表将使用我们部署的模型并受其影响的所有人群。举个简单的例子,我们的标注者主要是说英语的,我们的数据几乎完全由英文说明组成。
我们还可以改进我们的数据收集设置的方式。例如,由于成本原因,大多数比较只由一个承包商标注。多次对示例进行标注可以帮助确定承包商意见不一致的领域,从而单个模型很难对齐所有承包商的意见。在意见不一致的情况下,对平均标注者偏好进行对齐可能并不理想。例如,当生成的文本对少数群体影响较大时,我们可能希望更重视属于该群体的标注者的偏好。
模型。 我们的模型既不完全一致也不完全安全;他们仍然会在没有明确提示的情况下生成有毒或有偏见的输出、编造事实以及生成色情和暴力内容。它们也可能无法在某些输入上生成合理的输出;我们在图 9 中展示了这方面的一些示例。
也许我们模型的最大局限性在于,在大多数情况下,它们会遵循用户的指令,即使这可能会在现实世界中造成伤害。例如,当给出指令模型最大偏差的提示时,InstructGPT 会产生比同等大小的 GPT-3 模型更多的有毒输出。我们将在以下部分讨论潜在的缓解措施。
5.4 开放式问题
这项工作是使用对齐技术微调语言模型以遵循各种指令的第一步。有许多悬而未决的问题需要探索,以进一步使语言模型行为与人们实际希望他们做的事情保持一致。
可以尝试许多方法来进一步降低模型产生有毒、有偏见或其他有害输出的倾向。例如,可以使用对抗性设置,在该设置中,标注者会发现模型的最坏情况行为,然后将其标注并添加到数据集中(Dinan et al.,2019b)。还可以将我们的方法与过滤预训练数据的方法结合起来 (Ngo et al., 2021),无论是用于训练初始预训练模型,还是用于我们的预训练混合方法中使用的数据。类似地,可以将我们的方法与改进模型真实性的方法结合,例如WebGPT (Nakano et al., 2021)。
在这项工作中,如果用户请求可能有害或不诚实的响应,我们允许我们的模型生成这些输出。尽管有用户指令,但训练我们的模型使其无害很重要,但也很困难,因为输出是否有害取决于其部署的环境;例如,使用语言模型生成有毒输出作为数据增强管道的一部分可能是有益的。我们的技术也可以应用于让模型拒绝某些用户指令,我们计划在本研究的后续迭代中探索这一点。
让模型做我们想做的事与可操纵性和可控性文献直接相关(Dathathri et al.,2019;Krause et al.,2020)。一个有前途的未来路径是将 RLHF 与其他可控性方法相结合,例如使用控制代码 (Keskar et al., 2019),或使用较小的模型在推理时修改采样程序 (Dathathri et al., 2019)。
虽然我们主要关注 RLHF,但还有许多其他算法可用于在我们的演示和比较数据上训练策略以获得更好的结果。例如,可以探索专家迭代(Anthony et al.,2017 年;Silver et al.,2017 年),或使用比较数据子集的更简单的行为克隆方法。人们还可以尝试约束优化方法 (Achiam et al., 2017),该方法可以最大化以产生少量有害行为为条件的奖励模型的分数。
比较也不一定是提供对齐信号的最有效方式。例如,我们可以让标注者编辑模型响应以使其更好,或者用自然语言生成对模型响应的评论。为标注者设计界面以向语言模型提供反馈也有广阔的选择空间;这是一个有趣的人机交互问题。
我们通过将预训练数据合并到 RLHF 微调中来减轻对齐税的提议并不能完全减轻性能回归,并且可能使某些任务更有可能出现某些不良行为(如果这些行为存在于预训练数据中)。这是一个值得进一步研究的有趣领域。另一个可能改进我们方法的修改是过滤预训练混合数据中的有毒内容 (Ngo et al., 2021),或使用合成指令扩充此数据。
正如 Gabriel (2020) 中详细讨论的那样,与指令、意图、显露偏好、理想偏好、兴趣和价值观保持一致之间存在细微差别。 Gabriel (2020) 提倡基于原则的对齐方法:换句话说,要确定“尽管人们的道德信仰存在广泛差异,但得到反思认可的公平对齐原则”。在我们的论文中,为简单起见,我们与推断的用户意图保持一致,但在这方面需要更多的研究。事实上,最大的悬而未决的问题之一是如何设计一个透明的对齐过程,它有意义地代表受技术影响的人,并以一种在许多群体之间达成广泛共识的方式综合人们的价值观。我们在第 5.2 节中讨论了一些相关的考虑因素。
5.5 更广泛的影响
这项工作的动机是我们的目标是通过训练大型语言模型去做一组给定的人类希望他们做的事情来增加大型语言模型的积极影响。默认情况下,语言模型会优化下一个单词预测目标,这只是我们希望这些模型执行的操作的代理。我们的结果表明,我们的技术有望使语言模型更有用、更真实、更无害。从长远来看,对齐失败可能会导致更严重的后果,特别是如果这些模型部署在安全关键的情况下。我们预计,随着模型缩放的继续,必须更加小心以确保它们符合人类意图 (Bostrom, 2014)。
然而,使语言模型更好地遵循用户意图也使它们更容易被滥用。使用这些模型生成令人信服的错误信息、仇恨或辱骂性内容可能更容易。
对齐技术并不是解决与大型语言模型相关的安全问题的灵丹妙药;相反,它们应该被用作更广泛的安全生态系统中的一种工具。除了故意滥用之外,在许多领域中,大型语言模型的部署应该非常小心,或者根本不部署。示例包括高风险领域,例如医疗诊断、根据受保护的特征对人进行分类、确定信贷、就业或住房的资格、生成政治广告和执法。如果这些模型是开源的,那么在没有适当监管的情况下限制这些和其他领域中的有害应用将变得具有挑战性。另一方面,如果大型语言模型的访问仅限于少数拥有训练它们所需资源的组织,那么大多数人将无法获得尖端的 ML 技术。另一种选择是组织拥有模型部署的端到端基础设施,并使其可通过 API 访问。这允许实施安全协议,如用例限制(只允许模型用于某些应用程序)、监控滥用和撤销对滥用系统的人的访问,以及速率限制以防止产生大规模错误信息.然而,这可能会以降低透明度和增加权力集中为代价,因为它需要 API 提供者就这些问题中的每一个问题做出决定。
最后,如第 5.2 节所述,这些模型与谁保持一致的问题极其重要,并将显着影响这些模型的净影响是积极的还是消极的。