作者:Marco Ramponi

深入浅出解析ChatGPT背后的工作事理_模子_措辞 计算机

机器之心编译

编辑:王强、蛋酱

自 ChatGPT 发布以来,已经吸引了无数人一探究竟。
但 ChatGPT 实际上是如何事情的?只管它内部实现的细节尚未公布,我们却可以从最近的研究中一窥它的基本事理。

ChatGPT 是 OpenAI 发布的最新措辞模型,比其前身 GPT-3 有显著提升。
与许多大型措辞模型类似,ChatGPT 能以不同样式、不同目的天生文本,并且在准确度、阐述细节和高下文连贯性上具有更优的表现。
它代表了 OpenAI 最新一代的大型措辞模型,并且在设计上非常看重交互性。

OpenAI 利用监督学习和强化学习的组合来调优 ChatGPT,个中的强化学习组件使 ChatGPT 独一无二。
OpenAI 利用了「人类反馈强化学习」(RLHF)的演习方法,该方法在演习中利用人类反馈,以最小化无益、失落真或偏见的输出。

本文将阐发 GPT-3 的局限性及其从演习过程中产生的缘故原由,同时将阐明 RLHF 的事理和理解 ChatGPT 如何利用 RLHF 来战胜 GPT-3 存在的问题,末了将磋商这种方法的局限性。

大型措辞模型中的能力与同等性

「同等性 vs 能力」可以被认为是「准确性 vs 精确性」的更抽象的类比。

在机器学习中,模型的能力是指模型实行特界说务或一组任务的能力。
模型的能力常日通过它能够优化其目标函数的程度来评估。
例如,用来预测股票市场价格的模型可能有一个衡量模型预测准确性的目标函数。
如果该模型能够准确预测股票价格随韶光的变革,则认为该模型具有很高的实行能力。

同等性关注的是实际希望模型做什么,而不是它被演习做什么。
它提出的问题是「目标函数是否符合预期」,根据的是模型目标和行为在多大程度上符合人类的期望。
假设要演习一个鸟类分类器,将鸟分类为「麻雀」或「知更鸟」,利用对数丢失作为演习目标,而终极目标是很高的分类精度。
该模型可能具有较低的对数丢失,即该模型的能力较强,但在测试集上的精度较差,这便是一个不一致的例子,模型能够优化演习目标,但与终极目标不一致。

原始的 GPT-3 就是非同等模型。
类似 GPT-3 的大型措辞模型都是基于来自互联网的大量文本数据进行演习,能够天生类似人类的文本,但它们可能并不总是产生符合人类期望的输出。
事实上,它们的目标函数是词序列上的概率分布,用来预测序列中的下一个单词是什么。

但在实际运用中,这些模型的目的是实行某种形式的有代价的认知事情,并且这些模型的演习办法与期望利用它们的办法之间存在明显的差异。
只管从数学上讲,机器打算词序列的统计分布可能是建模措辞的高效选择,但人类实在是通过选择最适宜给定情境的文本序列来天生措辞,并利用已知的背景知识和知识来赞助这一过程。
当措辞模型用于须要高度信赖或可靠性的运用程序(如对话系统或智能个人助理)时,这可能是一个问题。

只管这些基于大量数据演习的大模型在过去几年中变得极为强大,但当用于实际以帮助人们生活更轻松时,它们每每无法发挥潜力。
大型措辞模型中的同等性问题常日表现为:

供应无效帮助:没有遵照用户的明确指示。
内容胡编乱造:虚构不存在或缺点事实的模型。
缺少可阐明性:人们很难明得模型是如何得出特定决策或预测的。
内容偏见有害:一个基于有偏见、有害数据演习的措辞模型可能会在其输出中涌现这种情形,纵然它没有明确指示这样做。

但详细来说,同等性问题源自何处?措辞模型的演习办法本身就随意马虎产生不一致吗?

措辞模型演习策略如何产生不一致?

Next-token-prediction 和 masked-language-modeling 是用于演习措辞模型的核心技能。
在第一种方法中,模型被给定一个词序列作为输入,并被哀求预测序列中的下一个词。
如果为模型供应输入句子:

“The cat sat on the”

它可能会将下一个单词预测为「mat」、「chair」或「floor」,由于在前面的高下文中,这些单词涌现的概率很高;措辞模型实际上能够评估给定先前序列的每个可能词的可能性。

masked-language-modeling 方法是 Next-token-prediction 的变体,个中输入句子中的一些词被更换为分外 token,例如 [MASK]。
然后,模型被哀求预测该当插入到 mask 位置的精确的词。
如果给模型一个句子:

“The [MASK] sat on the ”

它可能会预测 MASK 位置该当填的词是「cat」、「dog」。

这些目标函数的优点之一是,它许可模型学习措辞的统计构造,例如常见的词序列和词利用模式。
这常日有助于模型天生更自然、更流畅的文本,并且是每个措辞模型预演习阶段的主要步骤。

然而这些目标函数也可能导致问题,这紧张是由于模型无法区分主要缺点和不主要缺点。
一个非常大略的例子是,如果给模型输入句子:

"The Roman Empire [MASK] with the reign of Augustus."

它可能会预测 MASK 位置该当填入「began」或「ended」,由于这两个词的涌现概率都很高。

一样平常来说,这些演习策略可能会导致措辞模型在一些更繁芜的任务中涌现不一致,由于一个仅被演习来预测文本序列中的下一个词的模型可能不一定会学习其含义的某些更高等表征。
因此,该模型很难推广到须要对措辞更深入理解的任务。

研究职员正研究各种方法来办理大型措辞模型中的同等性问题。
ChatGPT 基于最初的 GPT-3 模型,但为理解决模型的不一致问题,利用了人类反馈来辅导学习过程,对其进行了进一步演习。
所利用的详细技能便是前面提到的 RLHF。
ChatGPT 是第一个将此技能用于实际场景的模型。

那 ChatGPT 是如何利用人类反馈来办理同等性问题的呢?

从人类反馈中进行强化学习

方法总体上包括三个不同步骤:

有监督的调优:预演习的措辞模型在少量已标注的数据上进行调优,以学习从给定的 prompt 列表天生输出的有监督的策略(即 SFT 模型);仿照人类偏好:标注者们对相对大量的 SFT 模型输出进行投票,这就创建了一个由比较数据组成的新数据集。
在此数据集上演习新模型,被称为演习回报模型(Reward Model,RM);近端策略优化(PPO):RM 模型用于进一步调优和改进 SFT 模型,PPO 输出结果是的策略模式。

步骤 1 只进行一次,而步骤 2 和步骤 3 可以持续重复进行:在当前最佳策略模型上网络更多的比较数据,用于演习新的 RM 模型,然后演习新的策略。
接下来,将对每一步的细节进行详述。

步骤 1:监督调优模型

第一步是网络数据,以演习有监督的策略模型。

数据网络:选择一个提示列表,标注职员按哀求写下预期的输出。
对付 ChatGPT,利用了两种不同的 prompt 来源:一些是直策应用标注职员或研究职员准备的,另一些是从 OpenAI 的 API 要求(即从 GPT-3 用户那里)获取的。
虽然全体过程缓慢且昂贵,但终极得到的结果是一个相对较小、高质量的数据集(大概有 12-15k 个数据点),可用于调优预演习的措辞模型。
模型选择:ChatGPT 的开拓职员选择了 GPT-3.5 系列中的预演习模型,而不是对原始 GPT-3 模型进行调优。
利用的基线模型是最新版的 text-davinci-003(通过对程序代码调优的 GPT-3 模型)。

为了创建像 ChatGPT 这样的通用谈天机器人,开拓职员是在「代码模型」而不是纯文本模型之上进行调优。

由于此步骤的数据量有限,该过程得到的 SFT 模型可能会输出仍旧并非用户关注的文本,并且常日会涌现不一致问题。
这里的问题是监督学习步骤具有高可扩展性本钱。

为了战胜这个问题,利用的策略是让人工标注者对 SFT 模型的不同输出进行排序以创建 RM 模型,而不是让人工标注者创建一个更大的精选数据集。

第二步:演习回报模型

这一步的目标是直接从数据中学习目标函数。
该函数的目的是为 SFT 模型输出进行打分,这代表这些输出对付人类来说可打水平有多大。
这强有力地反响了选定的人类标注者的详细偏好以及他们赞许遵照的共同准则。
末了,这个过程将从数据中得到模拟人类偏好的系统。

它的事情事理是:

选择 prompt 列表,SFT 模型为每个 prompt 天生多个输出(4 到 9 之间的任意值);标注者将输出从最佳到最差排序。
结果是一个新的标签数据集,该数据集的大小大约是用于 SFT 模型的精确数据集的 10 倍;此新数据用于演习 RM 模型 。
该模型将 SFT 模型输出作为输入,并按优先顺序对它们进行排序。

对付标注者来说,对输出进行排序比从头开始打标要随意马虎得多,这一过程可以更有效地扩展。
在实践中,所选择的 prompt 的数量大约为 30-40k,并且包括排序输出的不同组合。

步骤 3:利用 PPO 模型微调 SFT 模型

这一步里强化学习被运用于通过优化 RM 模型来调优 SFT 模型。
所利用的特定算法称为近端策略优化(PPO),而调优模型称为近段策略优化模型。

什么是 PPO?该算法的紧张特点如下:

PPO 是一种用于在强化学习中演习 agent 的算法。
它被称为「on-policy」算法,由于它直接学习和更新当前策略,而不是像 DQN 的「off-policy」算法那样从过去的履历中学习。
PPO 根据 agent 所采纳的行动和所得到的回报不断调度策略;PPO 利用「信赖区域优化」方法来演习策略,它将策略的变动范围限定在与先前策略的一定程度内以担保稳定性。
这与其它策略利用梯度方法形成光鲜比拟,梯度方法有时会对策略进行大规模更新,从而毁坏策略的稳定性;PPO 利用代价函数来估计给定状态或动作的预期回报。
代价函数用于打算上风函数,它代表预期收益和当前收益之间的差异。
然后利用上风函数通过比较当前策略采纳的操作与先前策略将采纳的操作来更新策略。
这使 PPO 可以根据所采纳行动的估计代价对策略进行更明智的更新。

在这一步中,PPO 模型由 SFT 模型初始化,代价函数由 RM 模型初始化。
该环境是一个「bandit environment」,它会产生随机 prompt 并期望对 prompt 做出相应。
对付给定的 prompt 和相应,它会产生相应的回报(由 RM 模型决定)。
SFT 模型会对每个 token 添加 KL 惩罚因子,以只管即便避免 RM 模型的过度优化。

性能评估

由于模型是根据人工标注的输入进行演习的,以是评估的核心部分也基于人工输入,即通过让标注者对模型输出的质量评分来进行。
为避免演习阶段涉及的标注者的判断过拟合,测试集利用了来自其它 OpenAI 客户的 prompt,这些 prompt 未涌如今演习数据中。

该模型基于三个标准进行评估:

帮助性:判断模型遵照用户指示以及推断指示的能力。
真实性:判断模型在封闭领域任务中有产生虚构事实的方向。
无害性:标注者评估模型的输出是否适当、是否包含歧视性内容。

该模型还针对传统 NLP 任务(如解答问题、阅读理解和择要)的零样本学习的性能进行了评估,开拓职员创造在个中一些任务上模型的表现比 GPT-3 要差一些,这是一个「同等性税」( alignment tax) 的例子,个中基于 人类反馈强化学习的同等性程序因此降落某些任务的性能为代价的。

这些数据集的性能回归可以通过称为预演习稠浊的技巧大大减少:在通过梯度低落演习 PPO 模型期间,通过稠浊 SFT 模型和 PPO 模型的梯度来打算梯度更新。

方法的缺陷

该方法的一个非常明显的局限性是,在将措辞模型与人类意图保持同等的过程中,用于 fine-tuning 模型的数据会受到各种错综繁芜的主不雅观成分的影响,紧张包括:

天生 demo 数据的人工标注者的偏好;设计研究和编写标签解释的研究职员;选择由开拓职员制作或由 OpenAI 客户供应的 prompt;标注者偏差既包含在 RM 模型演习中,也包含在模型评估中。

ChatGPT 的作者也承认一个明显的事实,即参与演习过程的标注职员和研究职员可能并不能完备代表措辞模型的所有潜在终极用户。

除了这一明显的「内生」限定之外,该方法还有的一些其它缺陷和须要办理的问题:

缺少对照研究:报告的结果以 SFT 模型为基准衡量终极 PPO 模型的性能。
这可能会产生误导:如何知道这些改进是由于 RLHF?因此对照研究非常有必要,包括投入与用于演习 RM 模型的标注工时数完备相同的韶光,以创建具有高质量数据的更大的精选有监督调优的数据集。
这样就可以客不雅观地衡量 RLHF 方法与监督方法比较的性能改进。
大略来说,缺少这样的对照研究让一个基本问题完备悬而未决:RLHF 在同等性措辞模型方面真的做得很好吗?比较数据缺少基本事实:标注者常日会对模型输出的排名持不同见地。
技能上讲,产生的风险是在没有任何基本事实的情形下,向比较数据添加了很大的方差。
人类的偏好并非同质:RLHF 方法将人类的偏好视为同质和静态的。
假设所有人都有相同的代价不雅观,这明显是不准确的,虽然有大量的公共代价不雅观,但在很多事务上人类还是存在许多不同的认知。
RM 模型 prompt 稳定性测试:没有实验表明 RM 模型在输入 prompt 变革方面的敏感性。
如果两个 prompt 在句法上不同但在语义上是等价的,RM 模型能否在模型输出的排名中显示出显著差异?即 prompt 的质量对 RM 有多主要?其它问题:在 RL 方法中,模型有时可以学会掌握自己的 RM 模型以实现期望的结果,从而导致「过度优化的策略」。
这可能会导致模型重新创建一些模式,由于某些未知的缘故原由,这些模式使 RM 模型得分较高。
ChatGPT 通过利用 RM 函数中的 KL 惩罚项对此进行了修补。

干系阅读:

关于用于 ChatGPT 的 RLHF 方法的干系的论文:Training language models to follow instructions with human feedback(https://arxiv.org/pdf/2203.02155.pdf),它实际上详细描述了一个名为 InstructionGPT 的模型,OpenAI 称之为 ChatGPT 的「兄弟模型」。
Learning to summarize from Human Feedback (https://arxiv.org/pdf/2009.01325.pdf)描述了文本择要高下文中的 RLHF。
PPO(https://arxiv.org/pdf/1707.06347.pdf):PPO 算法论文。
Deep reinforcement learning from human preferences (https://arxiv.org/abs/1706.03741)DeepMind 在 Sparrow 中提出了 OpenAI RLHF 的替代方案 (https://arxiv.org/pdf/2209.14375.pdf) 和 GopherCite (https://arxiv.org/abs/2203.11147)文件。

参考内容:

https://www.assemblyai.com/blog/how-chatgpt-actually-works/?continueFlag=1bafdcd5c034def869fecb4f3bdaed70