ChatGPT背后的“功臣”——RLHF技术详解

OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮,它面对不同的问题对答如流,似乎已经打破了机器和人的边界。这项工作的背后是大型语言模型(Large Language Model,LLM)生成领域的新训练范式:RLHF(Reinforcement Learning from Human Feedback),即以强化学习方式人类反馈优化语言模型。

过去几年里各种LLM根据输入提示(提示)生成大象文本的能力令人印象深刻。然而,对生成结果的评估是人类的优势和依赖于上下文的,例如,我们希望模型生成一个有创意的故事、一段真实的信息性文本,或者是执行的代码片段,这些结果难以使用现有的基于规则的文本生成指标(如BLEU和ROUGE)来轻松。除了评估指标,现有的模型通常可以预测下一个单词的方式和简单的损失函数(如交叉熵)来建模,没有明显的方式引入人们的偏好和偏好。

如果我们用生成文本的人工反馈作为绩效标准,或者更进一步用该反馈损失来优化模型,那不是更好吗?这就是 RLHF 的思想:使用强化学习的方式直接优化作为人类反馈的语言模型。RLHF 可在一般文本数据语言库中训练语言模型的能力和复杂的人类价值观。

看看ChatGPT是如何解释RLHF的:

ChatGPT 解释的很好,但还没有完全讲透;让我们更具体一点吧!

RLHF 技术分解

RLHF 是一个涉及模型和不同训练阶段的复杂概念,这里我们按三个步骤划分:

  1. 预一个训练语言模型(LM);
  2. 聚合问答数据并训练一个奖励模型(Reward Model,RM);
  3. 使用强化学习(RL)方式加重LM。

Step 1.预训练语言模型

首先,我们使用经典的预训练目标训练一个语言模型。对于这一步的模型,OpenAI 在其第一个流行的 RLHF 模型InstructGPT中使用了较小版本的 GPT-3;Anthropic 使用了训练了 1000 万 ~ 520 亿参数的 Transformer 模型进行;DeepMind 使用了自家的 2800 亿参数模型Gopher。

这里可以用额外的文本或者条件对这个 LM 进行调整,例如 OpenAI 对“更可取”(优选)的人工生成文本进行了调整,而 Anthropic 按“有用、公平和无害”的标准在上下文线索上说明了原始的LM。这里可能使用了昂贵的增强数据,但不是RLHF必须的一步。由于RLHF还是一个尚待探索的领域,对于“哪种模型”适合作为RLHF的起点并没有明确的答案。

接下来,我们会根据 LM 来生成训练奖励模型(RM,也叫偏好模型)的数据,并在这一步引入人类的偏好信息。

步骤2.训练奖励模型

RM 的训练是 RLHF 区别于旧范式的开端。模型接收一系列文本并返回一个标量奖励,评分上对应人的偏好。我们可以用这种端到端的方式与 LM 建模,或者用自定义的系统建模(比如对输出进行排名,再将排名转换为奖励)。 这项奖励数值有后续接入现有的 RL 算法至关重要。

关于模型选择方面,RM可以是另一个经过偏好训练训练的LM,也可以是根据偏好数据从头开始训练的LM。例如Anthropic提出了一种特殊的预训练方式,即用偏好模型预训练(Preference Model Pretraining, PMP)来替换一般预训练后的消耗过程。因为之前被认为对样本数据的利用率更高。但对于哪种 RM 更好尚无定论。

关于训练文本方面,RM 的提示 – 生成对文本是从预先定义的数据集中采集生成的,并用最终的 LM 给这些提示生成文本。Anthropic 的数据主要是通过 Amazon Mechanical Turk 上的聊天工具生成的,并在Hub上可用,并且OpenAI使用了用户提交给GPT API的提示。

关于训练奖励分数方面,这里需要人工对 LM 生成的回答进行排名。我们可能会认为通过直接对文本标签分数来训练 RM,但是由于标签者的分数不同导致这些分数未经过排序并且填充了噪音。排名可以比较多个模型的输出并构建更好的规范数据集。

对于具体的排名方式,一种成功的方式是对不同的LM在相同提示下的输出进行比较,然后使用Elo系统建立一个完整的排名。这些不同的排名结果将被归一化为用于的标量奖励值。

这个过程中一个有趣的产物是目前成功的 RLHF 系统使用了并生成了具有不同大小的 LM 的模型(例如 OpenAI 使用了 175B 的 LM 和 6B 的 RM,Anthropic 使用的 LM 和 RM 从 10B 到 52B 大小不等, DeepMind 使用了 70B 的 Chinchilla 模型分别作为 LM 和 RM)。一种直觉是,偏好模型和生成模型需要具有类似的能力来理解提供给他们的文本。

接下来是最后一步:利用 RM 输出的奖励,用强化学习方式优化 LM。

步骤 3. 使用强化学习强度

由于工程和算法原因,认为用强化学习训练LM是不可能的。而目前许多组织找到的可行方案人们是使用策略梯度强化学习(策略梯度RL)算法、近端策略优化(近端策略)优化,PPO) 初始化 LM 的部分或全部参数。因为扭矩整个 10B~100B+ 参数的成本过高(相关工作参考低秩适应 LoRA 和 DeepMind 的 Sparrow LM。PPO算法已经存在了相对较短的时间,有大量关于其原理的指南,从而成为 RLHF 中的有利选择。

事实证明,RLHF 的许多核心 RL 进步一直在弄清楚如何将熟悉的 RL 算法应用到更新如此大的模型。

让我们首先将一个任务策略分布为 RL 问题。首先,该(策略)是一个接受提示并返回一系列文本(或文本的概率分布)的 LM。这个策略的行动空间(action space)是 LM 的词表对应的所有词元(一般在50k数量级),观察空间(observation space)是可能的输入词元序列,也比较大(词汇量^输入标记的数量)。奖励函数是偏好模型和策略转变约束(政策转向约束)的结合。

PPO 算法确定的奖励函数具体计算如下:将提示x输入初始 LM 和当前当前的 LM,分别得到输出了文本y1 , y2,将从当前策略的文本传递给 RM 得到一个标量的奖励

rθr_\θ将两个模型的生成文本进行比较计算误差的惩罚项,在来自OpenAI、Anthropic和DeepMind的多篇论文中设计为输出词分布序列之间的Kullback–Leibler (KL)散度散度的缩放

r=rθ-λr吉隆坡r = r_\theta – \lambda r_\text{KL}这一项被用于惩罚RL策略在每个训练批次中生成致命最初模型,以确保模型输出合理连贯的文本。如果去掉这一惩罚项可能导致模型在优化中生成乱码文本来愚弄奖励模型提供高奖励价值。此外,OpenAI 在 InstructGPT 上的实验在 PPO 上添加了新的预训练梯度,可以预见到奖励函数的公式会随着 RLHF 研究的进展而继续发展。

最后根据PPO算法,我们按当前批次数据的奖励指标进行优化(来自PPO算法on-policy的特性)。PPO算法是一种信任域优化(Trust Region Optimization,TRO)算法,它使用梯度约束确保更新步骤不会破坏学习过程的稳定性。DeepMind 对 Gopher 使用了类似的奖励设置,但是使用 A2C(同步优势 actor-critic)算法来优化梯度。

作为一个可用选项,RLHF 可以通过迭代 RM 和策略共同优化。随着策略模型更新,用户可以继续将输出和早期的输出进行合并排名。Anthropic 在他们的论文中讨论了迭代在线 RLHF ,其中策略迭代包含在跨模型的Elo排名系统中。这样引入策略和RM演变的复杂动态,代表了一个复杂和开放的研究问题。

RLHF 开源工具

如今,PyTorch 中已经有一些活跃的 RLHF 存储库就是由此产生的。主要存储库是 Transformers 强化学习 ( TRL )、TRLX(最初是 TRL 的分支)和语言模型强化学习 ( RL4LMs )。

TRL 旨在使用 PPO 微调 Hugging Face 生态系统中的预训练 LM。TRLX 是CarperAI构建的 TRL 的扩展分支,用于处理在线和离线训练的大型模型。目前,TRLX 拥有一个 API,能够在 LLM 部署所需的规模(例如 330 亿个参数)上使用 PPO 和隐式语言 Q-Learning ILQL进行生产就绪的 RLHF。TRLX 的未来版本将允许语言模型达到 200B 参数。因此,与 TRLX 的接口针对具有此类规模经验的机器学习工程师进行了优化。

RL4LM提供了用于微调和评估 LLM 的构建块,其中包括各种 RL 算法(PPO、NLPO、A2C 和 TRPO)、奖励函数和指标。此外,该库易于定制,允许在任意用户指定的奖励函数上训练任何编码器-解码器或基于编码器变压器的 LM。值得注意的是,它在最近多达 2000 个实验的广泛任务中经过了充分的测试和基准测试,突出了数据预算比较(专家演示与奖励建模)、处理奖励黑客和训练不稳定性等方面的一些实用见解。当前的计划包括大型模型的分布式训练和新的强化学习算法。

TRLX 和 RL4LM 都处于进一步开发阶段,因此预计很快会有更多功能。

Hub 上有一个由 Anthropic 创建的大型数据集。

RLHF 的未来

尽管 RLHF 取得了一定的成果和关注,但仍然存在死亡。这些模型仍然会毫无意义地输出损害或者不真实的文本。这种不完美也是 RLHF 的长期挑战和动力——在人类固有的领域中运行意味着永远不会达到一个完美的标准。

收集人类偏好数据的质量和数量决定了RLHF系统性能的上限。RLHF系统需要两种人类偏好数据:人工生成的文本和对模型输出的偏好标签。生成高质量答案需要雇佣固定人员(而不能依赖产品)另外,训练 RM 需要的奖励标签规模大概是 50k 左右,所以并不是那么昂贵(当然远超了实验室学术的预算)。目前相关的数据集只有一个基于通用 LM 的RLHF 数据集(来自Anthropic和几个较小的子任务数据集(例如来自OpenAI的摘要数据集)。另一个挑战来自标注者的偏见。一些人类标注者可能有不同的意见,导致训练数据存在一些潜在差异。

除开数据方面的限制外,还有一些待开发的设计选项可以让 RLHF 取得长足进步。例如对于 RL 优化器的改进方面,PPO 是一种较旧的算法,但目前还没有什么结构性原因让其他算法可以在现有 RLHF 工作中更具有优势。另外,张力 LM 策略的一大成本是策略生成的文本都需要在 RM 上进行评估,通过离线 RL 优化策略可以节省这些大模型 RM 的预测成本。最近,出现了新的RL 算法如隐式 Q 学习 (Implicit Language Q-Learning,ILQL ) 也适用于当前 RL 的优化。在 RL 训练过程的其他核心权衡,例如探索和开发 (exploration-exploitation) 的平衡也有待尝试和探索这些方向至少能够加深我们对 RLHF 的理解,更进一步提升系统的表现。