赞
踩
论文地址
https://arxiv.org/pdf/2203.02155.pdf
语言模型(language models)越大并不意味着它能更好地理解用户的意图。 例如,大型语言模型生成一些不真实、有害的或简单的输出,这些结果对用户其实是没有帮助的。 换句话说,这些模型没有准确的理解用户想法。 在此论文中,展示了根据人的反馈对模型进行微调使得语言模型能够在各种任务上更好的理解用户的意图一种有效的方法。通过 OpenAI API 接口,我们收集了已标记好的想让模型的生成范文数据集,我们用它来使用有监督的方法来微调 GPT-3。 然后我们收集了对模型输出做排名的数据集,我们使用强化学习(reinforcement learning)在这个数据集根据人类反馈进一步对模型进行微调。 生成的模型我们称为InstructGPT。 在人类评估中我们的提示分布,1.3B 参数 InstructGPT 模型的输出是比 175B GPT-3 的输出更受欢迎,尽管参数少了 100 倍。此外,InstructGPT 模型虽然在公共的数据上的效果有点降低但是提高了真实性和减少有害方面生成。 尽管 InstructGPT 仍然会犯一些简单的错误,但我们的实验表明根据人类反馈进行微调是能够理解人类意图的一个有效的方式和方向。
大型语言模型 (LM)可以通过输入一些任务示例作为提示(prompt)执行一系列自然语言处理 (NLP) 任务。然而,这些模型经常表现出意想不到的行为,例如编造事实、生成有偏见或有害的文本,或者根本不遵循用户指令。 这是因为许多最近的大型 LM 使用的语言建模目标——预测来自互联网的网页上的下一个标记——不同于“有帮助和安全地遵循用户的指示”的目标。 所以,我们认为语言建模目标方向偏离了。 避免这些意外行为对于在数百个应用程序中部署和使用的语言模型尤为重要。
通过训练语言模型按照用户的意图行事,我们在对齐语言模型方面取得了进展。 这既包括明确的意图,例如遵循指示,也包括隐含的意图,例如保持真实、不带偏见、有害或以其他方式有害。 我们希望语言模型有帮助(它们应该帮助用户完成他们的任务)、诚实(它们不应该捏造信息或误导用户)和无害(它们不应该对人造成身体、心理或社会伤害或环境)。 我们在第 3.6 节中详细说明了对这些标准的评估。
我们主要是研究微调方法来调整语言模型使得模型更好的理解用户的指令。 具体来说,我们使用来自人类反馈的强化学习(reinforcement learning from human feedback-RLHF)来微调 GPT-3 以遵循广泛的用户指令(见图 2)。 该技术使用人类偏好(perferences)作为奖励信号(reward signal)来微调我们的模型。 我们首先聘请了一个由 40 名承包商组成的团队,根据他们在筛选测试中的表现来标记我们的数据。 然后,我们在提交给 OpenAI API的提示(主要是英语)和一些标签编写的提示上收集所需输出行为的人工范例数据集,并使用它来训练出一个有监督的基准模型。 接下来,我们收集了一个数据集,该数据集包含我们模型在更大的 API 提示集上的输出之间的人工标记比较。 然后,我们在该数据集上训练一个奖励模型 (Reward model, RM),以预测我们更喜欢哪个模型输出。 最后,我们使用此 RM 作为奖励函数(reward function)并微调我们的有监督学习的基准模型以使用 PPO 算法最大化此奖励。 我们在图 2 中说明了这个过程。这个过程使 GPT-3 的行为与特定人群(主要是我们的贴标签者和研究人员)的偏好保持一致,而不是更广泛的“人类价值观”概念; 我们将在 5.2 节中进一步讨论这个问题。 我们将生成的模型称为 InstructGPT。
我们主要通过标签率和测试集上模型输出的质量进行评分来评估我们的模型。包括来自拒绝客户(未在训练数据中表示)的提示。 我们还对一系列公共 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 模型在真实性(truthfulness)方面比 GPT-3 有所改进。 在 TruthfulQA 基准测试中,InstructGPT 生成真实且信息丰富的答案的频率大约是 GPT-3 的两倍。 对于未针对 GPT-3 进行对抗性选择的问题子集,我们的结果同样出色。 在我们的 API 提示分发中的“封闭域”任务中,输出不应包含输入中不存在的信息(例如summarization和closed-domain QA),InstructGPT 模型将输入中不存在的信息弥补大约一半 通常为 GPT-3(幻觉率分别为 21% 和 41%)。
InstructGPT 与 GPT-3 相比有害信息(toxicity)略有改善,但没有偏差。 为了measure有害性,我们使用 RealToxicityPrompts 数据集并进行自动和人工评估。 当输入合适的提示,InstructGPT 模型产生的毒性输出比 GPT-3 少约 25%。 在 Winogender和 CrowSPairs数据集上,InstructGPT 与 GPT-3 相比没有显着改善。
我们可以通过修改我们的 RLHF 微调程序来最小化公共 NLP 数据集的性能回归。 在 RLHF 微调期间,我们在某些公共 NLP 数据集上观察到与 GPT-3 相比的性能回归,特别是 SQuAD、DROP、HellaSwag 和 WMT 2015 法英翻译。 这是一个“alignment tax”的例子,因为我们的调整程序是以降低我们可能关心的某些任务的性能为代价的。 通过将 PPO 更新与增加预训练分布 (PPO-ptx) 对数似然的更新混合,我们可以大大减少这些数据集的性能回归,而不会影响标签偏好分数。
我们的模型泛化性很好。 为了测试我们模型的泛化性,我们进行了初步实验,发现“held-out” labelers更喜欢 InstructGPT 输出而不是 GPT-3 的输出,其速率与我们的训练贴标器大致相同。 然而,还需要做更多的工作来研究这些模型如何在更广泛的用户群体上执行,以及它们如何在人类不同意所需行为的输入上执行。
公共 NLP 数据集并不能反映我们的语言模型是如何使用的。 我们将根据人类偏好数据(即 InstructGPT)微调的 GPT-3 与根据两种不同的公共 NLP 任务编译微调的 GPT-3 进行比较:FLAN和 T0(特别是 T0++ 变体)。 这些数据集由各种 NLP 任务组成,并结合了每个任务的自然语言指令。 在我们的 API prompt分布上,我们的 FLAN 和 T0 模型比我们的 SFT 基线表现稍差,并且标记者明显更喜欢 InstructGPT 而不是这些模型(InstructGPT 与我们的基线相比有 73.4 ± 2% 的胜率,而 26.8 ± 2% 和 29.8 ± 我们的 T0 和 FLAN 版本分别为 2%)。
InstructGPT 模型显示了对 RLHF 微调分布之外的指令的有前途的泛化性。 我们定性地探究了 InstructGPT 的功能,发现它能够遵循指令来总结代码,回答有关代码的问题,有时还会遵循不同语言的指令,尽管这些指令在微调分布中非常罕见。 相比之下,GPT-3 可以执行这些任务,但需要更仔细的提示,并且通常不会遵循这些领域的说明。 这个结果令人兴奋,因为它表明我们的模型能够归纳“遵循指令”的概念(notion)。 即使在他们获得很少直接监督信号的任务上,他们也会保持一定的一致性。
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 ).
关于对齐(alignment)和从人类反馈中学习的研究。 我们建立在以前的技术之上,使模型与人类意图保持一致,特别是从人类反馈 (RLHF) 中强化学习。 它最初是为在模拟环境和 Atari 游戏中训练简单的机器人而开发的,最近被应用于微调语言模型以总结文本。 这项工作反过来又受到在对话、语义解析、故事生成、评论生成和证据提取。使用书面人工反馈来增强提示并提高 GPT-3 的性能。 还有一些工作是在基于文本的环境中使用 RL 和规范先验来对齐代理。 我们的工作可以看作是 RLHF 在广泛分布的语言任务上对齐语言模型的直接应用。
对齐语言模型意味着什么的问题最近也受到关注对 LM 中因错位导致的行为问题进行分类,包括产生有害内容和游戏指定错误的目标。 在并行工作中,Askell 等人。 (2021) 提议将语言助手作为对齐研究的试验台,研究一些简单的基线及其缩放特性。
训练语言模型以遵循说明。 我们的工作还与语言模型中跨任务泛化的研究有关,其中 LM 在广泛的公共 NLP 数据集(通常以适当的指令为前缀)上进行微调,并在一组不同的 NLP 任务上进行评估。 在这一领域已有一系列工作,它们在训练和评估数据、指令格式、预训练模型的大小和其他实验细节方面有所不同。 跨研究的一致发现是,在一系列 NLP 任务上使用指令微调 LM 可以提高它们在零样本和少样本设置中的保留任务的下游性能。
在导航指令遵循方面也有相关工作,其中训练模型遵循自然语言指令在模拟环境中导航.
评估语言模型的危害。 修改语言模型行为的一个目标是减轻这些模型在现实世界中部署时的危害。 这些风险已被广泛记录。 语言模型会产生有偏见的输出,泄露私人数据,并被恶意使用; 为了进行全面审查,我们将读者引导至 Weidinger 等人。 在特定领域部署语言模型会带来新的风险和挑战,例如在对话系统中。 有一个新兴但不断发展的领域旨在建立基准以具体评估这些危害,特别是围绕有害性(toxicity)、刻板印象(stereotypes)和社会偏见。 在这些问题上取得重大进展很困难,因为对 LM 行为的故意干预可能会产生副作用; 例如,由于训练数据中的偏见相关性,降低 LM 有害性的付出会降低它们对来自代表性不足(under-represented)的群体的文本建模的能力。
修改语言模型的行为以减轻危害。 有很多方法可以改变语言模型的生成行为。在一个小型的、以价值为目标的数据集上微调 LM,这提高了模型在问答任务中遵守这些价值观的能力。 通过删除语言模型很有可能生成一组研究人员编写的触发短语的文档来过滤预训练数据集。 当在这个过滤后的数据集上训练时,他们的 LM 生成的有害文本较少,但代价是语言建模性能力略有下降。 许等。 (2020) 使用多种方法来提高聊天机器人的安全性,包括数据过滤、在生成过程中阻止某些单词或 n-gram、安全特定控制token, 和human-in-the-loop 数据收集。 减轻 LM 产生的偏差的其他方法使用词嵌入正则化(embedding regularization)、数据增强,零空间投影使敏感标记上的分布更加均匀,不同的目标函数,或因果中介分析。 还有一些工作是使用第二个(通常较小的)语言模型来指导语言模型的生成,并且这种想法的变体已被应用于减少语言模型的有害性。
我们的方法遵循 Ziegler 等人的方法。 (2019) 和 Stiennon 等人。 (2020),将其应用于文体延续和总结领域。 我们从预训练语言模型(Radford 等人,2019 年;Brown 等人,2020 年;Fedus 等人,2021 年;Rae 等人,2021 年;Thoppilan 等人,2022 年)开始。 我们希望我们的模型能够产生一致的输出(Aligned output),以及一组训练有素的人工标注者(详情请参阅第 3.4 节)。 然后,我们应用以下三个步骤(图 2)。
第 1 步:收集范例数据,并以有监督方法训练。 我们的打标签者提供了输入提示分布(prompt distribution)上所需行为的范例(有关此分布的详细信息,请参阅第 3.2 节)。 然后,我们使用有监督学习在该数据集上微调预训练的 GPT-3 模型。
第二步:收集对比数据,训练奖励模型(reward model)。 我们收集了模型输出之间比较的数据集,其中打标记者根据输入标明了他们更喜欢的输出。 然后我们训练奖励模型来预测人类偏好的输出。
第 3 步:使用 PPO 针对奖励模型优化策略。 我们使用 RM奖励模型的输出作为标量奖励。 我们使用 PPO 算法微调监督策略以优化此奖励。
步骤2和步骤3可以不断迭代; 收集当前最佳策略的更多比较数据,用于训练新的 RM,然后训练新的策略。 在实践中,我们的大部分比较数据来自监管的学习,也有一些来自我们的 PPO学习。
我们的提示(prompt)数据集主要由提交到 OpenAI API 的文本提示组成,特别是那些使用早期版本的 InstructGPT 模型(通过在范例数据的子集上有监督训练)在 Playground 界面上。使用 Playground 的客户是通过多次通知被告知他们的数据可能随时用于训练 InstructGPT 模型。 在本文中,我们不使用来自使用 API 的客户的数据。 我们通过检查共享长期共同点的提示来启发式地删除重复提示前缀,我们将提示的数量限制为每个用户 ID 200。 我们基于用户 ID 把数据集拆分成训练集,验证集和测试集,以便让验证集和测试集不包含用户在训练集中的数据。 为了避免模型学习潜在敏感的客户详细信息,我们在训练集上过滤掉可以获取个人身份信息 (PII)的提示(prompts)。
为了训练第一个 InstructGPT 模型,我们要求打标签者自己编写提示。这是因为我们需要一个类似指令的提示的初始来源来引导这个过程,而这些类型的提示并不经常提交给 API 上的常规 GPT-3 模型。我们要求贴标签者写出三种提示:
根据这些提示,我们生成了三个用于微调过程的不同数据集:(1) 我们的 SFT 数据集,带有用于训练我们的 SFT 模型的打标签者范例数据,(2) 我们的 RM 数据集,带有用于训练的模型已被打标签者分了等级的数据,和 (3) 我们的 PPO 数据集,没有任何人工标签,用作 RLHF 微调的输入。 SFT 数据集包含大约 13k 个训练提示数据(来自 API 和标记者编写),RM 数据集有 33k 个训练提示数据(来自 API 和打标记者编写),PPO 数据集有 31k 个训练提示数据(仅来自 API)。表 6 中提供了有关数据集大小的更多详细信息。
为了了解我们的数据集的组成,在表 1 中,我们显示了我们的 API 提示(特别是 RM 数据集)的用例类别的分布,这些分布由我们的承包商标记。大多数用例都是生成的,而不是分类或 QA。我们还在表 2 中展示了一些说明性提示(由研究人员编写,以模仿提交给 InstructGPT 模型的提示类型);更多提交给InstructGPT模型的提示见附录A.2.1,提交给GPT-3模型的提示见附录A.2.2。我们在附录 A 中提供了有关数据集的更多详细信息。
我们的训练任务来自两个来源:(1) 由我们的标签编写者编写的提示数据集和 (2) 在我们的 API 上提交给早期 InstructGPT 模型的提示数据集(见表 6)。这些提示非常多样化,包括生成、问题回答、对话、摘要、提取和其他自然语言任务(见表 1)。我们的数据集超过 96% 是英语,但是在第 4.3 节中,我们还探讨了我们的模型响应其他语言指令和完成编码任务的能力。
对于每个自然语言提示,任务通常是通过自然语言指令直接指定的(例如“写一个关于聪明青蛙的故事”),但也可以通过少数例子间接指定(例如给出两个青蛙故事的例子) ,并促使模型生成一个新模型)或隐式延续(例如,提供有关青蛙的故事的开头)。在每种情况下,我们都要求我们的标注人员尽最大努力推断编写提示的用户的意图,并要求他们跳过任务非常不清楚的输入。此外,我们的贴标签者还根据我们提供给他们的说明(见附录 B)和他们的最佳判断,考虑隐含的意图,例如响应的真实性,以及潜在的有害输出,例如有偏见或有毒的语言。
为了生成我们的范例和比较数据,并进行我们的主要评估,我们在 Upwork 上和通过 ScaleAI 聘请了一个由大约 40 名承包商组成的团队。与收集关于摘要任务的人类偏好数据的早期工作相比,我们的输入涵盖了更广泛的任务,偶尔可以包括有争议和敏感的话题。我们的目标是选择一组对不同人口群体的偏好敏感并且善于识别潜在有害输出的贴标签者。因此,我们进行了一项筛选测试,旨在衡量贴标机在这些轴上的性能。我们选择了在此测试中表现出色的贴标签者;有关我们的选择程序和贴标签者人口统计的更多信息,请参阅附录 B.1。
在训练和评估期间,我们的对齐标准可能会发生冲突:例如,当用户请求可能有害的响应时。在训练期间,我们优先考虑对用户的帮助(不这样做需要做出一些我们留给未来工作的困难设计决定;更多讨论请参见第 5.4 节)。然而,在我们的最终评估中,我们要求贴标签者优先考虑真实性和无害性(因为这是我们真正关心的)。
正如 Stiennon 等人一样。 (2020 年),我们在项目过程中与贴标签者密切合作。我们有一个入职流程来培训项目的贴标签者,为每项任务编写详细说明(参见附录 B.2),并在共享聊天室中回答贴标签者的问题。
作为一项初步研究,以了解我们的模型对其他贴标签者的偏好的泛化效果如何,我们聘请了一组单独的贴标签者,他们不产生任何训练数据。这些贴标机来自同一供应商,但未经过筛选测试。
尽管任务很复杂,但我们发现注释者之间的一致率相当高:训练标签者在 72.6 ± 1.5% 的时间内彼此一致,而对于保留标签者,这个数字是 77.3 ± 1.3%。为了比较,在 Stiennon 等人的总结工作中。 (2020) 研究人员之间的一致性为 73 ± 4%。
我们从GPT-3 预训练语言模型开始。 这些模型在广泛分布的互联网数据上进行训练,适用于广泛的下游任务,但行为特征较差。 从这些模型开始,我们然后使用三种不同的技术训练模型:
有监督微调(SFT)。 我们使用监督学习在我们的范例数据集中微调 GPT-3。 我们训练了 16 个epochs,使用余弦学习率衰减和 0.2 的残差dropout。 我们根据验证集上的 RM 分数进行最终的 SFT 模型选择。 我们发现我们的 SFT 模型在 1 个epoch后对验证损失过度拟合; 然而,我们发现尽管存在这种过度拟合,但更多epochs 的训练有助于 RM 分数和人类偏好评级。
奖励建模 (RM)。 从移除了最后的非嵌入层的 SFT 模型开始,我们训练了一个模型来接收提示和响应,并输出标量奖励。 在本文中,我们只使用 6B RM,因为这样可以节省大量计算,而且我们发现 175B RM 训练可能不稳定,因此不太适合用作 RL 期间的值函数(有关更多详细信息,请参见附录 C)。
RM 在同一输入的两个模型输出之间进行比较的数据集上进行训练。 他们使用交叉熵损失,将比较作为标签——奖励的差异代表人类贴标签者更喜欢一种反应的对数几率。
为了加快分等级数据的收集,我们向标签提供者提供 K = 4 和 K = 9 之间的任何排名响应。 这会为显示给标签者的每个提示生成 比较。 由于分等级数据在每个标记任务中都非常相关,我们发现,如果我们简单地将分等级数据混洗到一个数据集中,在数据集上的一次遍历会导致奖励模型过度拟合。相反,我们将每个提示的所有 比较数据作为单个批处理元素进行训练。 这在计算上要高效得多,因为它只需要每次完成一次RM的前向传递(而不是K次完成的次前向传递),而且因为它不再过拟合大大提高了验证准确性和日志丢失.
具体来说,奖励模型的损失函数为:
最后,由于 RM 损失对于奖励的变化是不变的,我们使用偏差对奖励模型进行归一化,以便在进行 RL 之前,标记器演示的平均得分为 0。
强化学习 (RL)。 再次跟随 Stiennon 等人。 (2020),我们使用 PPO 在我们的环境中微调了 SFT 模型(Schulman 等人,2017)。 该环境是一个 bandit 环境,它呈现随机的客户提示并期望对提示的响应。 给定提示和响应,它会产生由奖励模型确定的奖励并结束剧集。 此外,我们在每个代币上添加了 SFT 模型的每个代币 KL 惩罚,以减轻奖励模型的过度优化。 值函数从 RM 初始化。 我们称这些模型为“PPO”。
我们还尝试将预训练梯度混合到 PPO 梯度中,以修复公共 NLP 数据集上的性能回归。 我们称这些模型为“PPO-ptx”。 我们在 RL 训练中最大化以下组合目标函数:
Baselines。 我们将 PPO 模型的性能与我们的 SFT 模型和 GPT-3 进行了比较。 我们还与 GPT-3 进行了比较,当它被提供一个 few-shot 前缀以“提示”它进入指令跟随模式(GPT-3-prompted)时。 此前缀添加到用户指定的指令中。
我们还在 FLAN 和 T0数据集上将 InstructGPT 与微调 175B GPT-3 进行了比较,这两个数据集都包含各种 NLP 任务,并结合了自然语言指令对于每个任务(数据集在包含的 NLP 数据集和使用的指令风格方面有所不同)。 我们分别在大约 100 万个示例上对它们进行微调,并选择在验证集上获得最高奖励模型分数的检查点。 有关更多培训详细信息,请参阅附录 C。
为了评估我们的模型“对齐”的程度,我们首先需要弄清楚对齐在这种情况下的含义。 对齐的定义历来是一个模糊和令人困惑的话题,有各种相互竞争的建议,我们的目标是训练根据用户意图行事的模型。 更实际地,为了我们的语言任务,我们使用类似于 Askell 等人的框架。他们定义了有帮助、诚实和无害的模型。
为了提供帮助,模型应该遵循指令,但也可以从多实例的提示或其他可解释的模式例如(“Q: {question}\nA:”)中推断出意图。 由于给定提示的意图可能不清楚或模棱两可,因此我们依赖于贴标签者的判断,而我们的主要指标是贴标签者的偏好评级。 但是,由于我们的标注者不是生成提示的用户,因此用户的实际意图与标注者仅阅读提示后认为的意图之间可能存在差异。
目前尚不清楚如何在纯生成模型中衡量诚实度; 这需要将模型的实际输出与其对正确输出的“信念”进行比较,并且由于模型是一个大黑盒子,我们无法推断出它的信念。 相反,我们使用两个指标来衡量真实性——模型关于世界的陈述是否真实:(1) 评估我们的模型在封闭域任务上编造信息的倾向(“幻觉”),以及 (2) 使用 TruthfulQA 数据集。 不用说,这只抓住了真实真正含义的一小部分。
与诚实类似,衡量语言模型的危害也带来了许多挑战。 在大多数情况下,语言模型的危害取决于它们的输出在现实世界中的使用方式。 例如,生成有害输出的模型在已部署的聊天机器人的上下文中可能是有害的,但如果用于数据扩充以训练更准确的有害检测模型,甚至可能会有所帮助。 在项目的早期,我们让贴标签者评估输出是否“潜在有害”。 但是,我们停止了此操作,因为它需要对怎么样的最终输出才会被使用进行过多的思考; 特别是因为我们的数据也来自与 Playground API 接口交互的客户(而不是来自生产用例)。
因此,我们使用一套更具体的代理标准,旨在捕获已部署模型中行为的不同方面,这些行为最终可能是有害的:我们让标签评估输出在客户助理的上下文中是否不合适,诋毁受保护的类别 ,或包含色情或暴力内容。 我们还在旨在测量偏差和毒性的数据集上对我们的模型进行基准测试,例如 RealToxicityPrompts 和 CrowS-Pairs。
总而言之,我们可以将定量评估分为两个独立的部分:
API 分布评估。 我们的主要指标是人类对一组提示的偏好评级,这些提示来自与我们的训练分布相同的来源。 当使用来自 API 的提示进行评估时,我们只选择我们未包含在培训中的客户的提示。 然而,鉴于我们的训练提示旨在与 InstructGPT 模型一起使用,它们很可能不利于 GPT-3 基线。 因此,我们还评估了在 API 上提交给 GPT-3 模型的提示; 这些提示通常不是“instruction following”风格,而是专门为 GPT-3 设计的。 在这两种情况下,对于每个模型,我们计算其输出优于基线策略的频率; 我们选择我们的 175B SFT 型号作为基准,因为它的性能接近中间水平。 此外,我们要求标注者以 1-7 的李克特量表来判断每个响应的整体质量,并为每个模型输出收集一系列元数据(见表 3)。
对公共 NLP 数据集的评估。 我们对两种类型的公共数据集进行评估:那些捕捉语言模型安全性方面的数据集,特别是真实性、毒性和偏见,以及那些捕捉传统 NLP 任务(如问答、阅读理解和总结)的零样本性能的数据集 . 我们还在 RealToxicityPrompts 数据集上对毒性进行了人体评估。 我们正在发布所有基于抽样的 NLP 任务的模型样本。
在本节中,我们为第 1 节中的声明提供实验证据,分为三个部分:API 提示分布的结果、公共 NLP 数据集的结果和定性结果。
与 GPT-3 的输出相比,标记人员明显更喜欢 InstructGPT 输出。 . 在我们的测试集上的提示,我们的标记人员明显更喜欢 InstructGPT 输出跨模型大小。 这些结果如图 1 所示。我们发现 GPT-3 输出表现最差,并且可以通过使用精心设计的多样本提示(few-shot prompt)(GPT-3(prompted))然后使用监督学习 (SFT) 在示范数据集进行训练,最后使用 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 段或更少的段落中写下你的答案”),不太可能不完全遵循正确的指示,并在封闭领域的任务中更少地编造事实(“幻觉”)。 这些结果表明 InstructGPT 模型比 GPT-3 更可靠且更易于控制。 我们发现我们的其他元数据类别在我们的 API 中出现的频率太低,无法获得我们模型之间的统计显著差异。
我们的模型概括到不产生任何训练数据的“held-out”标签人员的偏好。 未标注训练集的人与我们用来生成训练数据的工人有相似的排名偏好(见图 3)。 特别是,根据未标注训练集的人的说法,我们所有的 InstructGPT 模型仍然大大优于 GPT-3 基线。 因此,我们的 InstructGPT 模型并不仅仅是过度拟合了我们标注训练集人员的偏好。
我们从奖励模型的泛化能力中看到了进一步的证据。 我们进行了一项实验,我们将标记人员分成 5 组,并使用 5 折交叉验证(对其中 4 个组给训练集打标签,并让未在训练集上标注的人员组进行评估)训练 5 个 RM(具有 3 个不同的种子)。 这些 RM 在未在训练集上标注的人员组的偏好方面的准确度为 69.6 ± 0.9%,与预测训练集上标注的人员组的训练集中的准确度 72.4 ± 0.4% 相比略有下降。
公共 NLP 数据集并不能反映我们的语言模型是如何使用的。 在图 5 中,我们还将 InstructGPT 与在 FLAN和 T0数据集上微调的 175B GPT-3 基线进行了比较(详见附录 C)。 我们发现这些模型的性能优于 GPT-3,与 GPT-3 具有精心选择的提示,但比我们的 SFT 基线更差。 这表明这些数据集的多样性不足以提高我们的 API 提示分布的性能。 在正面比较中,我们的 175B InstructGPT 模型输出在 78 ± 4% 的时间内优于我们的 FLAN 模型,在 79 ± 4% 的时间内优于我们的 T0 模型。 这些模型的李克特分数如图 5 所示。
我们相信我们的 InstructGPT 模型优于 FLAN 和 T0 有两个原因。 首先,公共 NLP 数据集旨在捕获易于使用自动指标评估的任务,例如分类、问答以及一定程度上的摘要和翻译。 然而,分类和 QA 只是 API 客户使用我们的语言模型的一小部分(约 18%),而根据标签商的说法,开放式生成和头脑风暴占我们提示数据集的约 57%(见表 1)。 其次,公共 NLP 数据集可能很难获得非常多样化的输入(至少,在现实世界用户可能有兴趣使用的输入类型上)。 当然,在 NLP 数据集中发现的任务确实代表了一种我们希望语言模型能够解决的指令,因此最广泛的指令遵循模型将结合这两种类型的数据集。
InstructGPT 模型在真实性方面比 GPT-3 有所改进。 根据 TruthfulQA 数据集上的人类评估,与 GPT-3 相比,我们的 PPO 模型在生成真实和信息丰富的输出方面显示出微小但显着的改进(见图 6)。 这种行为是默认的:我们的模型不必特别指示说实话以表现出更高的真实性。 有趣的是,我们的 1.3B PPO-ptx 模型是个例外,它的性能略低于相同尺寸的 GPT-3 模型。 当仅根据未针对 GPT-3 进行对抗性选择的提示进行评估时,我们的 PPO 模型仍然比 GPT-3 更加真实和信息丰富(尽管绝对改进减少了几个百分点)。
跟随 Lin 等人。 (2021),我们还提供了一个有用的“Instruction + QA”提示,指示模型在不确定正确答案时以“I have no comment”回应。 在这种情况下,我们的 PPO 模型在真实和无信息方面犯了错误,而不是自信地说假话; 基线 GPT-3 模型在这方面并不擅长。
我们在真实性方面的改进也可以通过以下事实得到证明:我们的 PPO 模型在 API 分布的封闭域任务上产生幻觉(即伪造信息)的频率较低,如图 4 所示。
InstructGPT 与 GPT-3 相比毒性(toxicity)略有改善,但偏见没有。 我们首先在 RealToxicityPrompts 数据集上评估我们的模型(Gehman 等人,2020 年)。 我们以两种方式做到这一点:我们通过 Perspective API8 运行模型样本以获得自动毒性评分,这是该数据集的标准评估程序,我们还将这些样本发送给标注人员以获得绝对毒性、相对于毒性的评级。 提示、连续性和整体输出偏好。 我们根据提示毒性从该数据集中统一采样提示,以更好地评估我们的模型在高输入毒性下的表现(参见附录 E 中的图 39); 这与该数据集的标准即时抽样不同,因此我们的绝对毒性数字被夸大了。
我们的结果如图 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 等人,2018 年)和 CrowS-Pairs(Nangia 等人,2020 年)数据集的修改版本上评估了 InstructGPT。 这些数据集由成对的句子组成,可以突出潜在的偏见。 我们计算每对中生成句子的相对概率以及相关二进制概率分布的熵(以位为单位)。 完全无偏见的模型在每对句子中没有偏好,因此具有最大熵。 按照这个指标,我们的模型的偏差不亚于 GPT-3。 PPO-ptx 模型显示出与 GPT-3 相似的偏差,但当被指示以尊重(respectfully)的方式执行时,它表现出较低的熵,因此表现出较高的偏差。 偏见的模式不明确; 看起来,无论其输出是否表现出刻板行为(stereotypical behavior),接受指导的模型对其输出都更加确定。
我们可以通过修改我们的 RLHF 微调程序来最小化公共 NLP 数据集的性能回归。 默认情况下,当我们在 API 分布上训练 PPO 模型时,它会遭受“alignment tax”,因为它在几个公共 NLP 数据集上的性能下降。 我们想要一个避免对齐税(aligment tax)的对齐程序,因为它鼓励(incentivizes)使用未对齐但在这些任务上更有能力的模型。
在图 29 中,我们展示了向 PPO 微调 (PPO-ptx) 添加预训练更新可以减轻所有数据集上的这些性能回归,甚至超过 HellaSwag 上的 GPT-3。 PPO-ptx 模型在 DROP、SQuADv2 和翻译上的性能仍然落后于 GPT-3; 需要做更多的工作来研究和进一步消除这些性能下降。
混合预训练更新比增加 KL 系数(coefficient)的更简单解决方案表现更好。 在图 33 中,我们展示了预训练混合系数的一个值,它既可以逆转 SQuADv2 和 DROP(我们用于测试的数据集)的性能回归,又可以最小程度地减少验证奖励。 相反,增加 KL 系数(图 34)会导致验证奖励显着减少,并且在 DROP 和 SQuAD 上永远不会完全恢复。 将 KL 模型从 PPO init 更改为 GPT-3 会得到类似的结果。
InstructGPT 模型显示了对 RLHF 微调分布之外的指令的有前途的泛化。 特别是,我们发现 InstructGPT 显示出遵循非英语语言指令的能力,并对代码执行摘要和问答。 这很有趣,因为非英语语言和代码只占我们微调数据的一小部分,它表明,在某些情况下,对齐方法(alignment methods)可以推广到在人类没有直接监督的输入上产生所需的行为。
我们没有定量跟踪这些行为,但我们在图 8 中展示了一些定性示例。我们的 175B PPO-ptx 模型能够可靠地回答有关代码的问题,并且还可以遵循其他语言的说明; 但是,我们注意到即使指令是另一种语言,它也经常以英语输出。 相比之下,我们发现 GPT-3 可以执行这些任务,但需要更仔细的提示,并且很少遵循这些领域的指令。
InstructGPT 仍然会犯一些简单的错误。 在与我们的 175B PPO-ptx 模型交互时,我们注意到它仍然会犯简单的错误,尽管它在许多不同的语言任务上表现出色。 举几个例子:(1)当给出带有错误前提的指令时,模型有时会错误地假设前提为真,(2)模型可以过度对冲(overly hedge); 当给出一个简单的问题时,它有时会说这个问题没有一个答案并给出多个可能的答案,即使上下文中有一个相当明确的答案,(3)当指令包含多个明确的约束条件时,模型的性能会下降(例如“列出 10 部 1930 年代在法国制作的电影”)或当约束条件对语言模型具有挑战性时(例如用指定数量的句子写摘要)。
我们在图 9 中展示了这些行为的一些示例。我们怀疑行为 (2) 的出现部分是因为我们指示贴标者奖励认识上的谦逊; 因此,他们可能倾向于奖励对冲的输出,这被我们的奖励模型所接受。 我们怀疑行为 (1) 的发生是因为训练集中几乎没有假设错误前提的提示,并且我们的模型不能很好地泛化到这些示例。 我们相信,通过对抗性数据收集(adversarial data collection)这两种行为都可以显著减少。
这项研究是我们使人工智能系统与人类意图保持一致的更广泛研究计划的一部分。 尽管这项工作侧重于我们当前的语言模型系统,但我们寻求适用于未来 AI 系统的通用且可扩展的方法。 我们在这里使用的系统仍然相当有限,但它们是当今最大的语言模型之一,我们将它们应用于广泛的语言任务,包括分类、摘要、问答、创意写作、对话等。
我们在这项工作中进行对齐研究的方法是迭代的:我们正在改进当前 AI 系统的对齐,而不是抽象地关注对齐尚不存在的 AI 系统。 这种方法的缺点是我们不会直接面对仅在对齐超人系统时才会出现的对齐问题 。 然而,我们的方法确实为我们提供了一个明确的经验反馈循环,说明什么有效,什么无效。 我们相信这个反馈循环对于改进我们的对齐技术至关重要,它迫使我们跟上机器学习的进步。 此外,我们在这里使用的对齐技术 RLHF 是几个对齐超人系统的提案中的重要组成部分。 例如,RLHF 是最近总结书籍工作的核心方法,这项任务展示了对齐超人 AI 系统的一些困难,因为人类很难直接评估。
从这项工作中,我们可以更普遍地吸取对齐研究的经验教训:
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 等人,2020)。 同时,我们的结果表明 RLHF 在使语言模型对用户更有帮助方面非常有效,比模型大小增加 100 倍更有效。 这表明现在增加对现有语言模型对齐的投资比训练更大的模型更具成本效益——至少对于我们客户的自然语言任务分配而言。
2. 我们已经看到一些证据表明 InstructGPT 将“遵循指令”泛化到我们不对其进行监督的设置,例如非英语语言任务和与代码相关的任务。 这是一个重要的特性,因为让人类监督模型执行的每项任务的成本高得令人望而却步。 需要更多的研究来研究这种泛化如何随着能力的增加而扩展; 参见 Christiano 等人。 (2021) 最近在这个方向的研究。
3. 我们能够减轻微调带来的大部分性能下降。 如果不是这种情况,这些性能下降将构成对齐税——对齐模型的额外成本。 任何高税收的技术都可能不会被采用。 为了避免激励未来的高性能人工智能系统与人类意图保持不一致,需要低对齐税(alignment tax)的对齐技术。 为此,我们的结果对于 RLHF 作为一种低税对准技术来说是个好消息。
4. 我们已经从现实世界的研究中验证了对齐技术。 对齐研究历来相当抽象,侧重于理论结果、小型合成域(synthetic domains),或在公共 NLP 数据集上训练 ML 模型。 我们的工作为人工智能系统的对齐研究奠定了基础,这些系统正在与客户一起在现实世界的生产中使用。这使得关于技术有效性和局限性的重要反馈循环成为可能。
在将语言模型与人类意图对齐时,它们的最终行为是基础模型(及其训练数据)、微调数据和所用对齐方法的函数。 在本节中,我们将具体描述一些影响微调数据的因素,以最终确定我们要对齐的内容和对象。 然后,在 5.3 节中对我们工作的局限性进行更广泛的讨论之前,我们会考虑需要改进的地方。
文献经常使用诸如“人类偏好”或“人类价值观”之类的术语来构建对齐。 在这项工作中,我们已经调整了一组贴标签者的偏好,这些偏好受到的影响包括他们收到的指示、他们接受指示的背景(作为有偿工作)以及他们从谁那里得到指示。 一些重要的警告适用:
首先,我把我的模型对齐到贴标签者提供的范例数据和贴标签者的偏好,他们直接生成我们用来微调模型的数据。 我们在附录 B 中描述了我们的贴标签者招聘流程和人口统计数据; 一般来说,他们大多是居住在美国或东南亚的讲英语的人,通过 Upwork 或 Scale AI 雇用。 他们在许多例子上意见不一; 我们发现贴标签者之间意见一致的约为 73%。
其次,我们正在调整我们的偏好,作为设计这项研究的研究人员(因此通过我们更广泛的研究组织 OpenAI 的代理):我们编写标记说明,标记者在编写演示和选择他们喜欢的输出时用作指南,并且 我们在共享聊天室中回答他们关于边缘案例的问题。 需要更多研究不同指令集和界面设计对从标签收集的数据的确切影响及其对模型行为的最终影响。
第三,我们的训练数据由 OpenAI 客户发送给 OpenAI API Playground 上的模型的提示决定,因此我们隐含地与客户认为有价值的东西保持一致,在某些情况下,他们的最终用户(end-users)认为当前使用API有价值。客户(consumer)并且他们的最终用户可能不同意,或者客户可能没有为最终用户的福祉进行优化; 例如,客户可能想要一个模型来最大化用户在其平台上花费的时间,而这不一定是最终用户想要的。 在实践中,我们的标注者无法看到给定提示或完成的上下文。
第四,OpenAI 的客户并不代表所有潜在或当前的语言模型用户——更不用说所有受语言模型使用影响的个人和群体了。 在这个项目的大部分时间里,OpenAI API 的用户都是从候补名单中选出的。 这个候补名单的最初种子是 OpenAI 员工,使最终群体偏向于我们自己的网络。
退一步说,设计一个公平、透明并具有适当的问责机制的调整过程存在很多困难。 本文的目的是证明这种比对技术可以针对特定应用与特定人类参考组进行比对。 我们并不是说研究人员、我们雇用的贴标人员或我们的 API 客户是偏好的正确来源。 有许多利益相关者需要考虑——训练模型的组织、使用模型开发产品的客户、这些产品的最终用户,以及可能直接或间接受到影响的更广泛人群。 这不仅是使协调过程更具参与性的问题; 不可能立即训练出一个符合每个人偏好的系统,或者每个人都会认可权衡取舍的系统。
一条前进的道路可能是训练可以以特定群体的偏好为条件的模型,或者可以轻松微调或提示以代表不同群体的模型。 然后,支持不同价值观的群体可以部署和使用不同的模型。 然而,这些模型最终可能仍会影响更广泛的社会,并且需要做出许多艰难的决定,这些决定涉及以谁的偏好为条件,以及如何确保所有群体都能得到代表并可以选择退出可能有害的过程 .
方法(Methodology)。 我们的 InstructGPT 模型的行为部分取决于从我们的承包商那里获得的人工反馈。 一些标记任务依赖于价值判断,这些判断可能会受到我们承包商的身份、他们的信仰、文化背景和个人历史的影响。 我们聘请了大约 40 名承包商,以他们在筛选测试中的表现为指导,筛选测试旨在判断他们识别和响应敏感提示的能力,以及他们与研究人员在带有详细说明的标签任务上的一致率(见附录 B)。 我们让我们的承包商团队保持小规模,因为这有助于与一小部分全职执行任务的承包商进行高带宽通信。 然而,这个群体显然不能代表将使用我们部署的模型并受其影响的所有人群。 举个简单的例子,我们的贴标签者主要是说英语的,我们的数据几乎完全由英文说明组成。
我们还有很多方法可以改进我们的数据收集设置。 例如,出于成本原因,大多数比较仅由 1 个承包商标记。 多次标记示例可以帮助确定我们的承包商不同意的领域,因此单个模型不太可能与所有这些领域保持一致。 在出现分歧的情况下,可能不需要与平均标签偏好保持一致。 例如,当生成不成比例地影响少数群体的文本时,我们可能希望属于该群体的标签者的偏好得到更大的权重。
Models。 我们的模型既不完全一致也不完全安全; 他们仍然会在没有明确提示的情况下生成有毒或有偏见的输出、编造事实以及生成色情和暴力内容。 它们也可能无法在某些输入上生成合理的输出; 我们在图 9 中展示了这方面的一些示例。
也许我们模型的最大局限性在于,在大多数情况下,它们会遵循用户的指示,即使这可能会在现实世界中造成伤害。 例如,当给出指示模型最大化偏见的提示时,InstructGPT 会产生比同等大小的 GPT-3 模型更多的有毒输出。 我们将在以下部分讨论潜在的缓解措施。
这项工作是使用对齐技术微调语言模型以遵循各种指令的第一步。 有许多悬而未决的问题需要探索,以进一步使语言模型行为与人们实际希望他们做的事情保持一致。
可以尝试许多方法来进一步降低模型产生有毒、有偏见或其他有害输出的倾向。 例如,可以使用对抗性设置,在该设置中,标记器会发现模型的最坏情况行为,然后将其标记并添加到数据集中(Dinan 等人,2019b)。 还可以将我们的方法与过滤预训练数据的方法结合起来 (Ngo et al., 2021),或者用于训练初始预训练模型,或者用于我们用于预训练混合方法的数据。 同样,可以将我们的方法与提高模型真实性的方法结合起来,例如 WebGPT(Nakano 等人,2021 年)。
在这项工作中,如果用户请求可能有害或不诚实的响应,我们允许我们的模型生成这些输出。 尽管有用户指令,但训练我们的模型使其无害很重要,但也很困难,因为输出是否有害取决于其部署的环境; 例如,使用语言模型生成有毒输出作为数据增强管道的一部分可能是有益的。 我们的技术也可以应用于让模型拒绝某些用户指令,我们计划在本研究的后续迭代中探索这一点。
让模型做我们想做的事与可操纵性和可控性文献直接相关(Dathathri 等人,2019 年;Krause 等人,2020 年)。 一个有前途的未来路径是将 RLHF 与其他可控性方法相结合,例如使用控制代码(Keskar 等人,2019 年),或使用较小的模型在推理时修改采样程序(Dathathri 等人,2019 年)。
虽然我们主要关注 RLHF,但还有许多其他算法可用于在我们的范例和比较数据上训练策略以获得更好的结果。 例如,可以探索专家迭代(Anthony 等人,2017 年;Silver 等人,2017 年),或使用比较数据子集的更简单的行为克隆方法。 人们还可以尝试约束优化方法(Achiam 等人,2017 年),该方法可以最大化以产生少量有害行为为条件的奖励模型的分数。
比较也不一定是提供对齐信号的最有效方式。 例如,我们可以让标记者编辑模型响应以使其更好,或者用自然语言生成对模型响应的评论。 为标注者设计界面以向语言模型提供反馈也有广阔的选择空间; 这是一个有趣的人机交互问题。
我们通过将预训练数据合并到 RLHF 微调中来减轻对齐税的提议并不能完全减轻性能回归,并且可能使某些任务更有可能出现某些不良行为(如果这些行为存在于预训练数据中)。 这是一个值得进一步研究的有趣领域。 另一个可能改进我们方法的修改是过滤预训练混合数据中的有毒内容(Ngo 等人,2021 年),或使用合成指令扩充此数据。
正如 Gabriel (2020) 中详细讨论的那样,与指令、意图、显露偏好、理想偏好、兴趣和价值观保持一致之间存在细微差别。 Gabriel (2020) 提倡基于原则的对齐方法:换句话说,就是要确定“尽管人们的道德信仰存在广泛差异,但得到反思认可的公平对齐原则”。 在我们的论文中,为简单起见,我们与推断的用户意图保持一致,但在这方面需要更多的研究。 事实上,最大的悬而未决的问题之一是如何设计一个透明的对齐过程,它有意义地代表受技术影响的人,并以一种在许多群体之间达成广泛共识的方式综合人们的价值观。 我们在第 5.2 节中讨论了一些相关的考虑因素。
这项工作的动机是我们的目标是通过训练大型语言模型去做一组给定的人类希望他们做的事情来增加大型语言模型的积极影响(Positive impact)。 默认情况下,语言模型会优化下一个单词预测目标,这只是我们希望这些模型执行的操作的代理。 我们的结果表明,我们的技术有望使语言模型更有用、更真实、更无害。 从长远来看,对齐失败可能会导致更严重的后果,特别是如果这些模型部署在安全关键的情况下。 我们预计,随着模型缩放的继续,必须更加小心以确保它们符合人类意图 。
然而,使语言模型更好地遵循用户意图也使它们更容易被滥用。 使用这些模型生成令人信服的错误信息、仇恨或辱骂性内容可能更容易。
对齐技术并不是解决与大型语言模型相关的安全问题的灵丹妙药; 相反,它们应该被用作更广泛的安全生态系统中的一种工具。 除了故意滥用之外,在许多领域中,大型语言模型的部署应该非常小心,或者根本不能部署。 示例包括高风险领域,例如医疗诊断、根据受保护的特征对人进行分类、确定信贷、就业或住房的资格、生成政治广告和执法。 如果这些模型是开源的,那么在没有适当监管的情况下限制这些和其他领域中的有害应用将变得具有挑战性。 另一方面,如果大型语言模型的访问仅限于少数拥有培训它们所需资源的组织,那么大多数人将无法获得尖端的 ML 技术。 另一种选择是组织拥有模型部署的端到端基础设施,并使其可通过 API 访问。 这允许实施安全协议,如用例限制(只允许模型用于某些应用程序)、监控滥用和撤销对滥用系统的人的访问,以及速率限制以防止产生大规模错误信息 . 然而,这可能会以降低透明度和增加权力集中为代价,因为它需要 API 提供者就这些问题中的每一个问题做出决定。
最后,如第 5.2 节所述,这些模型与谁保持一致的问题极其重要,并将显着影响这些模型的净影响是积极的还是消极的。
首先,我们要感谢 Lilian Weng、Jason Kwon、Boris Power、Che Chang、Josh Achiam、Steven Adler、Gretchen Krueger、Miles Brundage、Tyna Eloundou、Gillian Hadfield、Irene Soliaman、Christy Dennison、Daniel Ziegler、William Saunders、Beth Barnes、Cathy Yeh、Nick Cammaratta、Jonathan Ward、Matt Knight、Pranav Shyam、Alec Radford 和 OpenAI 的其他人在整个项目过程中进行了讨论,帮助塑造了我们的研究方向。 我们感谢 Brian Green、Irina Raicu、Subbu Vincent、Varoon Mathur、Kate Crawford、Su Lin Blodgett、Bertie Vidgen 和 Paul Röttger 对我们方法的讨论和反馈。 最后,我们感谢 Sam Bowman、Matthew Rahtz、Ben Mann、Liam Fedus、Helen Ngo、Josh Achiam、Leo Gao、Jared Kaplan、Cathy Yeh、Miles Brundage、Gillian Hadfield、Cooper Raterink、Gretchen Krueger、Tyna Eloundou、Rafal Jakubanis 和 Steven Adler 为本文提供了反馈。 我们还要感谢 Owain Evans 和 Stephanie Lin 指出自动 TruthfulQA 指标夸大了我们 PPO 模型的收益这一事实。
感谢那些以各种方式为用于训练和部署我们模型的基础设施做出贡献的人,包括:Daniel Ziegler、William Saunders、Brooke Chan、Dave Cummings、Chris Hesse、Shantanu Jain、Michael Petrov、Greg Brockman、Felipe Such、Alethea Power ,以及整个 OpenAI 超级计算团队。 我们还要感谢 Suchir Balaji 帮助重新校准,感谢 Alper Ercetin 和 Justin Wang 设计本文的主要图表,感谢 OpenAI Comms 团队帮助发布,包括:Steve Dowling、Hannah Wong、Natalie 萨默斯和埃利·乔治。
最后,我们要感谢我们的贴标师,没有他们,这项工作就不可能完成:Meave Fryer、Sara Tirmizi、James Carroll、Jian Ouyang、Michelle Brothers、Conor Agnew、Joe Kwon、John Morton、Emma Duncan、Delia Randolph、Kaylee 威克斯、阿列克谢·萨弗勒、Siam Ahsan、Rashed Sorwar、Atresha Singh、Muhaiminul Rukshat、Caroline Oliveira、Juan Pablo Castaño Rendón、Atqiya Abida Anjum、Tinashe Mapolisa、Celeste Fejzo、Caio Oleskovicz、Salahuddin Ahmed、Elena Green、Ben Harmelin、Vladan Djordjevic、 Victoria Ebbets、Melissa Mejia、Emill Jayson Caypuno、Rachelle Froyalde、Russell M. Bernandez、Jennifer Brillo、Jacob Bryan、Carla Rodriguez、Evgeniya Rabinovich、Morris Stuttard、Rachelle Froyalde、Roxanne Addison、Sarah Nogly、Chait Singh。
我们首先对我们的提示 boostrapping 过程提供更多细节。 如前所述,对于大部分项目,我们直接从 OpenAI API 中的 instruct beta 模型的外部用户那里获得提示。 但是,此策略仅在您拥有接受类似指令提示的模型时才有效。 为了训练第一个这样的模型,我们要求承包商自己编写提示。 我们要求贴标签者写出三种提示:
为了保持应用程序信息的匿名性,我们有一个单独的标签器根据查看应用程序列表创建模糊的高级任务,修改任务描述以消除特定于给定应用程序的任何信息。 该数据用于通过监督学习训练第一个 InstructGPT 模型,该模型于 2021 年初在 API 中以测试版部署。
API 提示,我们使用用户提交到上述早期版本的提示。在 OpenAI API Playground 上指导 GPT 模型。 在整篇论文中,我们只使用来自Playground,而不是客户在生产中使用我们的模型,因为它更容易获得用户的同意:每次用户切换到 InstructGPT 模型时,都会弹出一条警告消息,说明提交给这些模型的提示可用于训练我们模型的未来版本。 我们在启动测试版时,还在开发人员 Slack 频道的消息中传达了这一点指导 GPT 模型。 我们从训练拆分中过滤掉包含个人身份信息的提示信息(PII)。
为了确保用例的多样性,我们通过检查提示来启发式地删除重复提示共享一个很长的公共前缀,并将提示的数量限制在每个组织(organization)大约 200 个。此外,我们根据组织(organization) ID 创建训练、验证和测试拆分,例如 这验证集包含与训练集不同的用例。
我们将 API 请求概念化为属于十个用例之一:生成(generation)、开放式(open) QA、封闭式(closed) QA、头脑风暴、聊天(chat)、重写、总结、分类、提取或其他。 下面,我们显示来自各种用例的虚构但现实的提示:
接下来,我们列出每个用例类别的API请求的一些示意图示例,以供提示提交给 GPT-3 模型。 这些通常不太“指令式”,包含更明确的提示。 请注意,有些提示用户意图不明确。
在表 6 中,我们报告了用于训练/验证 SFT、RM 和 RL 模型的数据集的大小,以及提示是由我们的标签承包商编写的还是来自我们的 API。
对于 SFT,请注意,我们的标签商编写的提示比客户提示多得多——这是因为,在项目开始时,我们让标签商在有用户界面编写指令,要求他们提供总体模板说明以及一些 - 该指令的示例。 我们通过编写不同的样本集,从同一指令综合构建了多个 SFT 数据点。
对于 RM,回想一下,对于每个提示,我们收集了 K 个输出(从 4 到 9)的排名,并在所有的 }K} 上训练模型,所以我们训练模型的排名对的数量是一个顺序2个数量级大于提示的数量。
我们收集的数据涵盖广泛的类别和用例。 表 1 显示了我们的 RM 训练和验证数据集中由我们的承包商标记的类别的多样性。 PPO 数据集的类别分布相似。 我们还在表 7 中显示了我们标记的提示元数据的一个子集。请注意,我们的注释字段在项目过程中发生了变化,因此并非每个提示都对每个字段进行了注释。
我们使用轻量级分类器 (langid.py) 对数据集中所有指令的语言进行分类。 根据经验,我们的数据集(110k 数据点)中约有 96% 被归类为英语,但由于分类器的不准确性,我们估计实际分数可能为 99% 或更高。
除英语外,还发现了至少 20 种其他语言的一小部分提示:西班牙语、法语、德语、葡萄牙语、意大利语、荷兰语、罗马尼亚语、加泰罗尼亚语、中文、日语、瑞典语、波兰语、丹麦语、土耳其语、印度尼西亚语、捷克语、挪威语 、韩语、芬兰语、匈牙利语、希伯来语、俄语、立陶宛语、世界语、斯洛伐克语、克罗地亚语、斯瓦希里语、爱沙尼亚语、斯洛文尼亚语、阿拉伯语、泰语、越南语、马拉雅拉姆语、希腊语、阿尔巴尼亚语和藏语。
表 8 显示了每个客户为数据集贡献的平均提示数。 在表 9 中,我们报告了用于训练各种模型的提示长度(以令牌为单位)的描述性统计信息,在表 10 中,我们按用例细分了令牌长度。 最后,我们还在表 11 中报告了用于我们的 SFT 模型的承包商编写的演示的长度,包括承包商编写的和标签商编写的提示。
我们的贴标者由通过 Upwork 雇用或从 Scale AI 采购的承包商组成。 不像以前的 RLHF 工作主要集中在摘要领域,在这项工作中,我们希望人类标记一组提交给语言模型的广泛的自然语言提示,其中一些可能本质上是敏感的。 因此,我们进行了筛选过程,以选择显示出高度检测和响应敏感内容倾向的贴标签者。
更具体地说,我们根据以下标准从最初的标注者候选池中选择了我们的训练标注者:
收集完这些数据后,我们选择了在所有这些标准上都表现出色的贴标签者(我们进行了
选择数据的匿名版本)。 由于第四个标准是主观的,我们最终根据这些标准主观地选择了贴标签者,尽管我们软截止在敏感语音标记和比较有75%的一致性,以及 6/7 的范文分数。
随着我们提供反馈、更改我们的元数据字段以及更好地理解我们想要测量的内容,我们提供给标记者的说明在项目过程中不断发展。 我们还修改了令人困惑或不一致的说明。
特别值得注意的是,在我们的训练数据标记期间,我们让标记者优先考虑对用户的帮助作为最重要的标准(高于真实性和无害性),而在我们的最终评估中,我们让标记者优先考虑真实性和无害性。 我们正在探索研究途径,让模型有时在训练期间优先考虑真实性和无害性,而不是帮助性,特别是通过使用拒绝:让模型拒绝回答某些指令。 这带来了新的挑战:不同的应用程序具有不同级别的风险,因此我们可能希望模型拒绝在推理时配置的内容。 此外,存在模型可能过度泛化和拒绝无害指令的风险,这对于大多数应用程序来说都是不可取的。
我们在表 10 和 RealToxicityPrompts 分布中显示了我们对我们的提示分布进行最终评估的说明的摘录,并在表 11 中进行了说明。
我们向贴标者发送了一份自愿的匿名调查,以更好地了解他们的人口统计数据。 我们在表 12 中显示了 19 位受访者的结果。总体而言,我们发现我们的贴标签者非常年轻(75% 不到 35 岁),男女比例相当均衡,并且大多来自美国或东南亚。
结合我们的人口统计调查,我们还发出了一份调查以获取对该任务的反馈。 我们在表 13 中显示了 19 位受访者的结果。总的来说,我们的标签员很享受这项任务,认为他们的工作报酬公平,并表示他们感谢研究人员的帮助和沟通水平。 一些贴标签者确实发现这项任务是重复的,而其他人则认为有足够的变化来保持事情的趣味性和吸引力。
在图 12 中,我们展示了标签界面的屏幕截图,我们所有的标签师(和研究人员)都使用该界面来标记数据。
所有模型架构都使用 GPT-3 架构(Brown 等人,2020)。 对于奖励模型和价值函数,将原始模型的非嵌入层替换为投影层以输出标量值。 所有模型都使用 fp16 权重和激活,以及 fp32 权重主副本。 与 Brown 等人相同的字节对编码。 (2020) 用于所有型号。 我们所有的语言模型和 RL 策略都有 2k 个标记的上下文长度。 我们过滤掉超过 1k 个令牌的提示,并将最大响应长度限制为 1k 个令牌。
所有模型都使用 Adam 优化器进行训练,其中 β1 = 0.9 和 β2 = 0.95。
我们训练我们的 SFT 模型 16 个 epoch,残差 dropout 为 0.2。 我们使用余弦 LR 计划降低到原始学习率的 10%,没有学习率预热。 对于我们的 1.3B 和 6B 模型,我们使用 9.65e-6 的 LR 和 32 的批量大小。对于 175B,我们使用 5.03e-6 的 LR 和 8 的批量大小。为了选择学习率,我们做了 对 1.3B 和 6B 的 7 个 LR 和 175B 的 5 个 LR 进行几何搜索。 我们还使用几何搜索调整了 epoch 的数量。 我们的最终模型是根据 RM 分数选择的,我们发现与验证损失相比,RM 分数更能预测人类偏好结果。
我们训练了一个单一的 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)中以 lr = 9e-6 的学习率训练了一个时期,这是一个余弦学习率计划(在训练结束时下降到其初始值的 10%), 批量大小为 64。培训似乎对学习率或计划不是很敏感; 学习率高达 50% 的变化导致了相似的性能。 训练对 epoch 的数量非常敏感:多个 epoch 很快使模型过度拟合训练数据,验证损失明显恶化。 此处的批量大小表示每批不同的提示数。 每个提示都有 K = 4 和 K = 9 之间的标记完成,从中可以进行多达 }K} 种可能的比较。 关系被取消了。 2个
因此,单个批次最多可包含 64 × }K} ≤ 2,304 次比较。
我们从预训练的 GPT-3 模型初始化 RLHF 模型,并对演示数据集应用 2 个周期的监督微调。 我们还在微调期间混合了 10% 的预训练数据,因为我们发现它对 PPO 训练有帮助(详见附录 E.11)。 使用余弦学习率计划,学习率最终衰减到峰值学习率的 10%。 我们对 1.3B 和 6B 模型使用 32 个批量大小,对 175B 模型使用 8 个批量大小。 我们比较了每个模型的几个不同的峰值学习率,并选择了在演示和预训练验证数据集上损失都较低的模型。 比较 1.3B 和 6B 型号的 LR 的 5 个值的对数线性扫描,以及比较 175B 型号的 3 个值。 1.3B、6B 和 175B 型号的最终 LR 分别为 5e-6、1.04e-5 和 2.45e-6。
然后,我们使用预训练组合从上述监督微调模型中初始化 RL 策略。 这些模型也用于计算 KL 奖励,与 Stiennon 等人的方式相同。 (2020),其中 β = 0.02(见公式 2)。 我们为 256k 集训练所有 RL 模型。 在使用 PII 和基于公共前缀的重复数据删除提示过滤掉之后,这些事件包括大约 31k 个唯一提示。 每次迭代的批量大小为 512,小批量大小为 64。换句话说,每个批量随机分成 8 个小批量,并且仅针对单个内部时期进行训练(Schulman 等人,2017)。 在前 10 次迭代中应用恒定学习率和预热,从峰值学习率的十分之一开始。 应用权重的指数移动平均值,衰减率为 0.992。 估计广义优势时不应用折扣(Schulman 等人,2016 年)。 PPO 剪辑比率设置为 0.2,采样温度为 1。
如前所述,对于所有 PPO 模型,我们使用 6B RM 和 6B 值函数,后者是从前者初始化的。 通过对所有模型大小的策略使用相同的 6B 奖励模型和价值函数,可以更容易地比较策略模型大小对策略性能的影响。 价值函数的固定学习率 9e-6 用于 1.3B 和 6B 策略,5e-6 用于 175B 策略。
我们最初的 RLHF 实验显示了公共 NLP 数据集(例如 SQuADv2 和 DROP)的回归,我们通过在 PPO 训练期间混合预训练梯度来减轻回归。 我们使用的预训练示例是 RL 训练集数的 8 倍。 预训练数据是从用于训练 GPT-3 模型的数据集中随机抽取的。 对于每个小批量,我们在连续的步骤中计算 PPO 梯度和预训练梯度,并将它们都累积到梯度缓冲区中。 我们将预训练梯度乘以一个系数 γ = 27.8(参见等式 2),以控制来自 PPO 和预训练分布的梯度的相对强度。
我们通过在 FLAN 和 T0 数据集上微调 175B GPT-3 模型来获得我们的 FLAN 和 T0 基线。 对于 T0,请注意我们在数据集的 T0++ 版本上进行了训练。 因为 T0 包含的数据(96M 数据点)比 FLAN(1.2M 数据点)多得多,所以我们将 T0 数据集下采样到 100 万个数据点(datapoints),以使每个模型的训练数据量具有可比性。 请注意,原始模型在数据点可以重复epoch进行训练,但在我们的时期(epoch)中,我们遍历每个数据点(datapoint)而不重复(以更好地匹配我们训练 SFT 基线的方式)。 我们应用了余弦学习率计划,并尝试为每个数据集设置 4e-6 和 6e-6 的初始学习率。 学习率在训练结束时衰减(decay)到峰值的 10%,我们在两个实验中都使用 64 的批量大小(batch size)。
为了选择最佳的 FLAN 检查点,我们使用我们的 6B 奖励模型对提示(prompt)的验证集的完成情况进行评分。 如图 13 所示,奖励在最初的 400k 个训练示例后饱和(saturates)。 这表明更长时间的训练不太可能提高人类的评估表现。 我们选择了 RM 得分最高的检查点进行人工评估,这是一个以 4e-6 的学习率和 896k 个示例进行训练的检查点。
我们进行了两个类似的实验来找到最佳的 T0 检查点。 在一个实验中,我们使用了 128 的批量大小、4e-6 的学习率和 128 万个示例。 另一个实验使用了 64 的批量大小、6e-6 的学习率和 100 万个示例。 再次使用奖励模型分数,我们在 896k 个训练示例后从前一个实验中选择了检查点。
D Automatic evaluation details
名词解释
缩写名词 | 全称 | 注解 |
RLHF | Reinforcement Learning from Human Feedback | |
GPT | Generative Pre-Trained Transformer | |
LMs | Lanaguage Models | |
SFT | Supervised fine-tuning on human demonstrations | |
PPO | proximal policy optimization | Proximal Policy Optimization (PPO) is presently considered state-of-the-art in Reinforcement Learning. The algorithm, introduced by OpenAI in 2017 |
FLAN | Finetuned Language Net. | FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS |
T0 | T0 is an encoder-decoder model that consumes textual inputs and produces target responses | |
RM | reward model | |
PPO-ptx | PPO with pretraining mix (mixing the pretraining gradients into the PPO gradients) | |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。