ChatGPT 是一款非常受欢迎的人工智能聊天机器人,自 12 月初推出以来一直风靡互联网。然而,OpenAI 聊天机器人并不是第一台生成式 AI 文本机器,它实际上是在 GPT-3 推出之后推出的,后者本身于 2020 年 6 月推出。这两种产品相似但不完全相同。让我们来看看 ChatGPT 和 GPT-3,探索它们的不同之处以及它们的相似之处。
由于它较早发布,因此从 GPT-3(Generative Pre-trained Transformer 3)开始是有意义的。GPT-3 由 OpenAI 开发,是一种通用语言模型,可以根据用户提示生成类似人类的文本,并执行广泛的相关语言任务,例如翻译、将长文本总结成更容易理解的要点、问题回答,等等。大型语言模型在包含数十亿个单词的多样化数据集上进行训练,能够生成连贯的类似人类的文本段落。
ChatGPT是同样由 OpenAI 开发的 GPT-3 语言模型的变体。两者的相似之处在于 ChatGPT 和 GPT-3 都是基于 Transformer 架构,这使得它成为了两个工具的名称,并且都使用大量数据和强大的计算资源来学习语言的模式和结构,它们可以然后连贯地生成。尽管它们有相似之处,但它们有几个关键差异,使它们适用于不同类型的任务。
主要区别在于 GPT-3 协议比 ChatGPT 大得多。前者拥有高达 1750 亿个参数,是迄今为止最大、最强大的 AI 语言处理模型之一,而后者拥有 200 亿个参数。这是因为 ChatGPT 专门设计用于在聊天机器人对话的上下文中生成类似人类的文本。因此,它已经接受了聊天机器人交互的特定数据集的训练。这可能是参数如此之少的原因之一。
两者之间的另一个大区别是可访问性。ChatGPT 更容易为公众所用,而 GPT-3 则保留用于更深思熟虑的用途。这就是为什么与普通公众 GPT-3 的有限认知相比,ChatGPT 的人气暴增,设计采用双轨道方法:一个轨道输出听起来自然的响应,另一个轨道专注于为手头的对话生成适当的内容,因此,它可以用对话数据(例如,人对机器)和事实信息(例如,机器对机器)进行训练,这使得它在回答有关产品或服务等主题的问题时特别强大——当与与这些主题相关的现有数据集配对时,ChatGPT可以快速准确地输出高度相关的信息,而无需手动调整。
简而言之,ChatGPT 是 GPT-3 的更专业版本,它已针对更多类似聊天的交互进行了优化。这使得使用起来更加有趣。最重要的是,与它的老兄弟相比,它更容易访问和免费使用,加上ChatGPT官方并未开放接口,这也使得目前国内的chatgpt镜像网站几乎都是对接GPT3接口。
Abstract
使语言模型变大并不能固有地使它们更好地遵循用户的意图。例如,大型语言模型可以生成不真实,有毒或对用户没有帮助的输出。换句话说,这些模型与它们的用户不一致。在本文中,我们展示了一种通过人工反馈进行微调来使语言模型与用户意图在广泛的任务上保持一致的途径。从通过OpenAI API提交的一组labeler编写的提示和提示开始,我们收集了所需模型行为的labeler演示数据集,我们使用这些数据集来使用监督学习来微调GPT-3。然后,我们收集了模型输出排名的数据集,我们使用该数据集使用来自人类反馈 (RLHF) 的强化学习来进一步微调此监督模型。我们将生成的模型称为InstructGPT。在对我们的即时分布进行人工评估时,尽管参数少100倍,但1.3B参数instrutgpt模型的输出比175B GPT-3的输出更可取。此外,InstructGPT模型显示了真实性的提高和有毒输出产生的减少,同时在公共NLP数据集上具有最小的性能回归。尽管InstructGPT仍然犯了简单的错误,但我们的结果表明,通过人工反馈进行微调是使语言模型与人类意图保持一致的有希望的方向。
1 Introduction
可以 “提示” 大型语言模型 (LMs) 来执行一系列自然语言处理 (NLP) 任务,给出该任务的一些示例作为输入。然而,这些模型通常表达非预期的行为,例如编造事实,生成有偏见或有毒的文本,或者根本不遵循用户指令 (Bender等人,2021; Bommasani等人,2021; Kenton等人,2021; Weidinger等人,2021; Tamkin等人,2021;gehman等人,2020)。这是因为语言建模目标 用于许多最近的大型LMs-预测来自互联网的网页上的下一个令牌-不同于目标 “有益和安全地遵循用户的指示” (Radford等人,2019; Brown等人,2020; Fedus等人,2021; Rae等人,2021;thoppilan等人,2022)。因此,我们说语言建模目标不一致。避免这些意外行为对于在数百个应用程序中部署和使用的语言模型尤其重要。
我们通过训练语言模型按照用户的意图行事来调整语言模型 (Leike等人,2018)。这既包括明确的意图,例如遵循指示,也包括隐含的意图,例如保持真实,并且没有偏见,有毒或其他有害。使用Askell等人 (2021) 的语言,我们希望语言模型是有帮助的 (他们应该帮助用户解决他们的任务),诚实的 (他们不应该捏造信息或误导用户),和无害的 (他们不应该导致身体,心理,或对人或环境的社会危害)。我们在第3.6节中详细介绍了这些标准的评估。
我们专注于调整语言模型的微调方法。具体来说,我们使用来自人类反馈的强化学习 (RLHF; Christiano等,2017; Stiennon等,2020) 来微调GPT-3,以遵循广泛的书面说明 (参见图2)。这种技术利用人类的偏好作为奖励信号来微调我们的模型。我们首先雇佣一个由40个承包商组成的团队,根据他们在筛选测试一下上的表现来标记我们的数据 (更多详情请参见第3.4节和附录B.1)。然后,我们收集了提交给OpenAI API3的提示 (主要是英语) 和一些labeler编写的提示上的所需输出行为的人工演示数据集,并用它来训练我们的监督学习基线。接下来,我们在一组较大的API提示上收集模型的输出之间的人为标记的比较数据集。然后,我们在这个数据集上训练一个奖励模型 (RM),以预测我们的标签者更喜欢哪个模型输出。最后,我们使用此RM作为奖励函数,并微调我们的监督学习基线,以使用PPO算法最大化此奖励 (Schulman等,2017)。我们在图2中说明了这一过程。此过程使GPT-3的行为与特定人群 (主要是我们的标签和研究人员) 的偏好保持一致,而不是任何更广泛的 “人类价值观” 概念; 我们在第5.2节中进一步讨论这一点。我们将生成的模型称为InstructGPT。
我们主要通过让贴标机对模型输出的质量进行评估来评估我们的模型测试一下集,包括来自被吸引的客户 (培训数据中没有代表) 的提示。我们还对一系列公共NLP数据集进行自动评估。
尺寸 (1.3B、6B和175B参数),我们所有的模型都使用GPT-3的架构。我们的主要发现如下:
标签者明显更喜欢InstructGPT输出而不是GPT-3的输出。在我们的测试一下集中,来自1.3B参数InstructGPT模型的输出优先于来自175B GPT-3的输出,尽管具有超过100倍的参数。这些模型具有相同的体系结构,并且仅由于InstructGPT对我们的人类数据进行了微调而有所不同。即使我们在GPT-3中添加了几次提示以使其更好地遵循以下说明,此结果也成立。来自我们的175B指令的输出优选为175B GPT-3输出85 ± 3% 的时间,并且优选为71 ± 4% 的时间至少拍摄175B GPT-3。InstructGPT模型还根据我们的标签生成更合适的输出,并且更可靠地遵循指令中的显式约束。
随着GPT-3的推移,InstructGPT模型显示了真实性的改进。在TruthfulQA基准测试中,InstructGPT生成真实和信息丰富的答案的频率大约是GPT-3的两倍。在没有针对GPT-3选择的问题子集上,我们的结果同样出色。关于我们的API提示分发的 “封闭域” 任务,其中输出不应包含输入中不存在的信息 (例如摘要和封闭域QA),指令模型构成的信息在输入中不存在的频率大约是GPT-3的一半 (分别为21% 对41% 的幻觉率)。
InstructGPT显示毒性比GPT-3小的改善,但没有偏差。为了测量毒性,我们使用realtoxicitints数据集 (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)。这是 “对齐税” 的一个例子,因为我们的对齐程序是以 我们可能关心的某些任务的性能较低。我们可以通过将PPO更新与增加预训练分布 (PPO-ptx) 的对数可能性的更新混合在一起,而不会影响labeler偏好分数,从而大大减少这些数据集上的性能回归。
我们的模型推广到没有产生任何训练数据的 “坚持” 贴标机的偏好。为了测试一下模型的泛化,我们对固定的贴标机进行了初步实验,发现它们更喜欢以与我们的培训贴标机相同的速率来指示GPT-3的输出。但是,需要做更多的工作来研究这些模型如何在更广泛的用户群上执行,以及它们如何在人类不同意所需行为的输入上执行。
公共NLP数据集不能反映我们的语言模型是如何使用的。我们将GPT3在我们的人类偏好数据 (即InstructGPT) 上进行了微调,以GPT-3在两种不同的公共NLP任务汇编上进行微调: flaan (Wei等人,2021) 和T0 (Sanh等人,2021) 数据集。这些数据集由各种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)。
2 Related work
从人类反馈中进行对齐和学习的研究。我们以以前的技术为基础,以使模型与人类意图保持一致,尤其是从人类反馈 (RLHF) 中进行强化学习。最初是为训练模拟环境和Atari游戏中的简单机器人而开发的 (Christiano等人,2017; Ibarz等人,2018),最近已应用于微调语言模型以总结文本 (Ziegler等人,2019; Stiennon等人,2020; B ö hm等人,2019;wu等人,2021)。反过来,这项工作又受到类似工作的影响,这些工作使用人类反馈作为对话等领域的奖励 (Jaques等人,2019; Yi等人,2019; Hancock等人,2019),翻译 (Kreutzer等人,2018; Bahdanau等人,2016),语义解析 (Lawrence和Riezler,2018),故事生成 (Zhou和Xu,2020),评论生成 (Cho等人,2018) 和证据提取 (Perez等人,2019)。Madaan等人 (2022) 使用书面的人类反馈来增强提示并改善GPT-3的性能。还已经开展了在基于文本的环境中使用RL与 规范先验 (Nahian等人,2021)。我们的工作可以看作是RLHF在广泛的语言任务分配上调整语言模型的直接应用。
语言模型的一致性意味着什么这一问题最近也受到了关注 (Gabriel,2020)。Kenton等人 (2021) 将LMs中的行为问题编入目录,这些问题是由错位导致的,包括产生有害内容和游戏错误指定的目标。在并发工作中,Askell等人 (2021) 提出了语言助手作为比对研究的测试平台,研究一些简单的基线及其缩放属性。
训练语言模型以遵循说明。我们的工作还与语言模型中的crosstask泛化研究有关,其中LMs在广泛的公共NLP数据集 (通常以适当的指令为前缀) 上进行了微调,并在不同的NLP任务集上进行了评估。在这一领域有一系列工作 (Yi等人,2019; Mishra等人,2021; Wei等人,2021; Khashabi等人,2020; Sanh等人,2021; Aribandi等人,2021),它们在培训和评估数据、指令格式、预训练模型的大小,以及其他实验细节。一项一致的研究发现是,在一系列NLP任务上进行微调的LMs,并带有指令,可以在零拍和少拍设置中提高其在搁置任务上的下游性能。还有关于导航的指令跟随的相关工作,其中模型被训练以遵循自然语言指令在模拟环境中导航 (Bahdanau等,2018; Zhao等,2021)。
评估语言模型的危害。修改语言模型行为的目的是减轻这些模型在现实世界中部署时的危害。这些风险已被广泛记录 (Bender等人,2021; Bommasani等人,2021; Kenton等人,2021; Weidinger等人,2021; Tamkin等人,2021)。语言模型可以产生有偏差的输出 (dhamela等人,2021; Liang等人,2021; Manela等人,2021; Caliskan等人,2017; Kirk等人,2021),泄漏私人数据 (Carlini等人,2021),产生错误信息 (Solaiman等人,2019;buchanan等人,2021),并被恶意使用; 为了进行彻底的审查,我们将读者引向Weidinger等人 (2021)。在特定领域中部署语言模型会引起新的风险和挑战,例如在对话系统中 (Henderson等,2018; Xu等,2020; Dinan等,2019b)。有一个新兴但正在发展的领域旨在建立基准来具体评估这些危害,特别是围绕毒性 (Gehman等人,2020),刻板印象 (Nadeem等人,2020) 和社会偏见 (dhamal等人,2021; Nangia等人,2020; Rudinger等人,2018)。在这些问题上取得重大进展是困难的,因为对LM行为的善意干预可能会产生副作用 (Welbl等人,2021; Blodgett等人,2020); 例如,减少LMs毒性的努力可能会降低他们从代表性不足的群体建模文本的能力,由于训练数据中的偏见相关性 (Xu等人,2021)。
修改语言模型的行为以减轻危害。有许多方法可以改变语言模型的生成行为。Solaiman和Dennison (2021) 在一个小的,以价值为目标的数据集上微调LMs,这提高了模型在问题回答任务中坚持这些值的能力。Ngo等人 (2021) 通过移除语言模型具有生成一组研究者编写的触发短语的高条件可能性的文档来过滤预训练数据集。当在这个过滤的数据集上训练时,他们的LMs生成的有害文本更少,代价是语言建模性能略有下降。Xu等人 (2020) 使用多种方法来提高聊天机器人的安全性,包括数据过滤,在生成过程中阻止某些单词或n-gram,特定于安全的控制令牌 (Keskar等人,2019; Dinan等人,2019a),和人体内数据收集 (Dinan等人,2019b)。减轻LMs产生的偏差的其他方法使用词嵌入正则化 (Liu等人,2019; Huang等人,2019),数据增强 (Liu等人,2019; Dinan等人,2019a; Sheng等人,2019),零空间投影以使敏感令牌上的分布更均匀 (Liang等人,2021) 、不同的目标函数 (Qian等人,2019) 或因果中介分析 (Vig等人,2020)。还存在使用第二 (通常较小) 语言模型来引导语言模型的生成的工作 (Dathathri等人,2019; Krause等人,2020),并且该想法的变体已应用于降低语言模型毒性 (Schick等人,2021)。
3 Methods and experimental details
3.1 High-level methodology
我们的方法遵循Ziegler等人 (2019) 和Stiennon等人 (2020) 的方法,他们将其应用于风格延续和总结领域。我们从预先训练的语言模型开始 (Radford等人,2019; Brown等人,2020; Fedus等人,2021; Rae等人,2021; Thoppilan等人,2022),这是我们希望模型产生对齐输出的提示分布,和一组训练有素的人类贴标机 (详见第3.4节)。然后,我们应用以下三个步骤 (图2)。
第一步: 收集示范数据,并培训有监督的策略。我们的标签在输入提示分布上提供所需行为的演示 (有关此分布的详细信息,请参见第3.2节)。然后,我们使用监督学习对该数据进行微调预先训练的GPT-3模型。
第二步: 收集比较数据,并训练奖励模型。我们收集了模型输出之间比较的数据集,其中标签器指示他们对给定输入更喜欢哪个输出。然后,我们训练一个奖励模型来预测人类偏好的输出。
第三步: 使用PPO针对奖励模型优化策略。我们使用RM的输出作为标量奖励。我们使用PPO算法 (Schulman等人,2017) 微调监督策略以优化该奖励。
步骤2和步骤3可以连续迭代; 在当前最佳策略上收集更多的比较数据,该数据用于训练新的RM,然后训练新的策略。实际上,我们的大多数比较数据来自我们的监督策略,其中一些来自我们的PPO策略。
3.2 Dataset
我们的提示数据集主要由提交给OpenAI API的文本提示组成,特别是那些在操场界面上使用早期版本的InstructGPT模型 (通过对我们演示数据的子集进行有监督的学习训练) 的人。4使用操场的客户被告知,他们的数据可以通过任何时候使用InstructGPT模型的定期通知来训练更多的模型。在本文中,我们不使用来自生产中使用API的客户的数据。我们通过检查共享长公共前缀的提示来启发式地重复提示,并且我们将提示数量限制为每个用户id 200。我们还基于用户id创建我们的训练、验证和测试一下拆分,这样验证集和测试一下集不包含来自其数据在训练集中的用户的数据。为了避免模型学习潜在敏感的客户详细信息,我们在 “个人身份信息” (PII) 培训拆分中过滤所有提示。
为了训练第一个InstructGPT模型,我们要求贴标者自己编写提示。这是因为我们需要一个初始来源的指令样提示来引导流程,并且这些类型的提示并不经常提交给API上的常规GPT-3模型。我们让贴标机写了三种提示:
Plain: 我们只是要求贴标机提出任意任务,同时确保任务具有足够的多样性。
Few-shot: 我们要求标签员提出一条指令,以及该指令的多个查询/响应对。
基于用户: 我们在OpenAI API的waitlist应用程序中有许多用例。我们要求贴标人员提出与这些用例相对应的提示。
根据这些提示,我们生成了在微调过程中使用的三个不同的数据集 😦 1) 我们的SFT数据集,带有用于训练SFT模型的labeler演示,(2) 我们的RM数据集,带有用于训练我们的RMs的模型输出的labeler排名,(3) 我们的PPO数据集,没有任何人类标签,用作RLHF微调的输入。SFT数据集包含大约13k的训练提示 (来自API和labeler编写的),RM数据集具有444 k个训练提示 (来自API和labeler编写的),而PPO数据集具有31k的训练提示 (仅来自API)。表6提供了有关数据集大小的更多详细信息。
为了了解数据集的组成,在表1中,我们显示了由承包商标记的API提示 (特别是RM数据集) 的用例类别的分布。大多数用例都是生成性的,而不是分类或质量保证。我们还在表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
为了产生我们的演示和比较数据,并进行我们的主要评估,我们聘请了一个由大约40名承包商组成的团队,负责Upwork和ScaleAI。与早期收集关于总结任务的人类偏好数据的工作相比 (Ziegler等人,2019; Stiennon等人,2020; Wu等人,2021),我们的输入跨越了更广泛的任务范围,并且偶尔可能包括有争议和敏感的主题。我们的目标是选择一组对不同人口统计群体的偏好敏感并且擅长识别潜在有害的输出的贴标者。因此,我们进行了旨在测量这些轴上贴标机性能的筛选测试一下。我们选择了在此测试一下上表现良好的贴标机; 有关我们的选择程序和贴标机人口统计的更多信息,请参阅附录b.1。
在培训和评估期间,我们的对齐标准可能会发生冲突: 例如,当用户请求潜在有害的响应时。在培训期间,我们优先考虑对用户的帮助 (而不是7这样做需要做出一些困难的设计决策,我们将其留给以后的工作; 有关更多讨论,请参见第5.4节)。但是,在我们的最终评估中,我们要求贴标者优先考虑真实性和无害化 (因为这是我们真正关心的)。
与Stiennon等人 (2020) 一样,我们在项目过程中与贴标机密切合作。我们有一个入职流程,对项目的贴标机进行培训,为每个任务编写详细的说明 (见附录B.2),并在共享的聊天室中回答贴标机的问题。
作为一项初步研究,以了解我们的模型如何推广其他贴标者的偏好,我们雇用了一组单独的贴标者,他们不产生任何训练数据。这些贴标机来自相同的供应商,但不经过筛选测试一下。
尽管任务很复杂,但我们发现注释者之间的协同率很高: 训练标签者在72.6 ± 1.5% 的时间内彼此一致,而对于坚持的标签者,这个数字是77.3 ± 1.3%。为了进行比较,在Stiennon等人 (2020) 的总结工作中,研究人员与研究人员的一致性为73 ± 4%。
3.5 Models
我们从Brown等人 (2020) 的GPT-3预先训练的语言模型开始。这些模型是在广泛分布的Internet数据上进行训练的,并且可以适应广泛的下游任务,但是行为特征很差。从这些模型开始,我们然后用三种不同的技术训练模型:
Supervised fine-tuning (SFT).
Reward modeling (RM).
Reinforcement learning (RL).
Baselines.
3.6 Evaluation
为了评估我们的模型如何 “对齐”,我们首先需要澄清在这种情况下对齐意味着什么。从历史上看,对齐的定义一直是一个模糊而混乱的话题,各种各样的 相互竞争的提案 (Chen等人,2021; Leike等人,2018; Gabriel,2020)。在Leike等人 (2018) 之后,我们的目标是训练根据用户意图行事的模型。更实际地,为了我们的语言任务的目的,我们使用类似于Askell等人 (2021) 的框架,他们定义了要对齐的模型,如果它们是有用的,诚实的和无害的