原文地址:LLM Training: RLHF and Its Alternatives,by Sebastian Raschka, on 2023-09-10
大语言模型训练:基于人类反馈的强化学习(RLHF)及其替代方案
我在讨论大语言模型(LLM)时,无论是研究资讯还是教程内容,都会频繁提到一个名为基于人类反馈的强化学习(Reinforcement Learning with Human Feedback,RLHF)的流程。RLHF是现代大语言模型训练流水线中不可或缺的一环,它能够将人类偏好融入优化过程,从而提升模型的有用性与安全性。
在本文中,我将逐步拆解RLHF的原理,为理解其核心思想与重要价值提供参考。继上一篇介绍Llama 2的《Ahead of AI》文章之后,本文还将对比ChatGPT与Llama 2实现RLHF的不同方式。
最后,对于好奇RLHF的实际意义与必要性的读者,我新增了一个章节介绍最新的替代方案——我打算定期更新这一部分。
简而言之,本文的目录如下:
- 经典大语言模型训练流水线
- 基于人类反馈的强化学习(RLHF)
- Llama 2中的RLHF
- RLHF的替代方案
经典大语言模型训练流水线
ChatGPT、Llama 2等现代基于Transformer的大语言模型,需要经历三步训练流程:
- 预训练
- 监督微调
- 对齐
首先在预训练阶段,模型从海量无标注文本数据中吸收知识。随后的监督微调会对模型进行优化,使其更好地遵循特定指令。最后的对齐阶段会进一步打磨模型,让它对用户提示的回复更有帮助、更安全。
注意,该训练流水线参考自论文 https://arxiv.org/abs/2203.02155,文中详细介绍了GPT-3的训练流程,这一方法也被广泛认为是ChatGPT背后的实现方案。稍后我们还会将该方法与 https://arxiv.org/abs/2307.09288 中的模型进行对比。
让我们从第一步——预训练开始,如下图所示。

图注:大语言模型预训练步骤示意图
预训练通常在包含数十亿到数万亿词元的海量文本语料上开展。在这个阶段,我们采用简单的下一词预测任务:模型根据给定的上文文本,预测后续的单词(或词元)。
如果你对下一词预测任务不熟悉,可以参考我之前的文章《理解编码器式与解码器式大语言模型》:
https://magazine.sebastianraschka.com/p/understanding-encoder-and-decoder
需要强调的一点是:这种预训练方式让我们能够充分利用大规模无标注数据集。只要使用数据时不侵犯版权、不违背创作者意愿,就无需手动标注即可获取海量训练数据。实际上,在预训练步骤中,“标签”就是文本里的下一个词,它本身就是数据集的一部分——因此这种预训练方法常被称为自监督学习。
下一步是监督微调,如下图所示。

图注:在指令数据上微调预训练模型
监督微调阶段会开展另一轮下一词元预测。但与预训练阶段不同,我们此时使用的是指令-输出配对数据,如上图所示。其中,指令是输入给模型的内容(根据任务不同,有时还会附带可选的输入文本),输出则是我们期望模型生成的理想回复。
举个具体的例子,我们来看下面这组指令-输出配对:
指令:“写一首关于鹈鹕的五行打油诗。”
输出:“从前有只鹈鹕特别棒……”
模型将指令文本(“写一首关于鹈鹕的五行打油诗”)作为输入,对输出文本(“从前有只鹈鹕特别棒……”)执行下一词元预测。
尽管两者采用了相似的下一词元训练目标,但监督微调使用的数据集通常远小于预训练数据集。这是因为它需要的是指令-输出配对,而非原始文本。要构建这样的数据集,人类(或另一个高质量大语言模型)必须针对特定指令写出期望的输出——构建这类数据集的工作量非常大。
监督微调阶段之后,还有一个微调阶段,通常被称为**“对齐”步骤**——它的核心目标是让大语言模型与人类偏好保持一致,RLHF正是在这一步发挥核心作用。

图注:摘自InstructGPT论文的带标注图表,https://arxiv.org/abs/2203.02155
下一节我们将深入讲解基于RLHF的对齐步骤。不过,对于好奇它与预训练基础模型、第二步监督微调模型效果差异的读者,我在上方附上了InstructGPT论文中的图表——正是这篇论文让这套方法广为流传。
上图对比了经过监督微调的1750亿参数GPT-3模型(浅虚线)与其他方法的效果。图表最底部是基础GPT-3模型的表现。
如果采用提示工程的方法,多次查询模型并每次选择最佳回复(“GPT-3 + 提示工程”),可以看到其表现比基础模型(“GPT-3”)有所提升,这是意料之中的结果。
在GPT-3基础模型上加入监督微调后,其表现(“GPT-3 + 监督微调”)甚至优于“GPT-3 + 提示工程”。
然而,最佳表现来自经过监督微调与RLHF的GPT-3模型(“GPT-3 + 监督微调 + RLHF”)——也就是图表顶部的两条曲线。(注意图表顶部有两条线,因为研究人员实验了两种不同的采样流程。)
下一节将更详细地介绍RLHF步骤。
基于人类反馈的强化学习(RLHF)
上一节介绍了ChatGPT、Llama-2-chat等现代大语言模型背后的三步训练流程。本节将更细致地拆解微调阶段,重点聚焦RLHF部分。
RLHF流水线以预训练模型为起点,先对其进行监督式微调(对应上一节的步骤2),再通过近端策略优化进一步完成对齐(对应上一节的步骤3)。
为简化理解,我们将RLHF流水线拆分为三个独立步骤:
- RLHF步骤1:对预训练模型进行监督微调
- RLHF步骤2:构建奖励模型
- RLHF步骤3:通过近端策略优化进行微调
RLHF步骤1如下图所示,是一个监督微调环节,用于为后续的RLHF微调创建基础模型。

图注:摘自InstructGPT论文的带标注示意图,https://arxiv.org/abs/2203.02155
在RLHF步骤1中,我们(例如从数据库中)创建或采样提示,然后请人工撰写高质量回复。接着我们用这个数据集,以监督方式微调预训练基础模型。
注意,RLHF步骤1与上一节“经典大语言模型训练流水线”中的步骤2本质相似。我在这里再次列出它,是因为它是RLHF流程中不可或缺的组成部分。
在RLHF步骤2中,我们利用经过监督微调的模型来构建奖励模型,如下图所示。

图注:摘自InstructGPT论文的带标注示意图,https://arxiv.org/abs/2203.02155
如上图所示,针对每个提示,我们用上一步得到的微调后大语言模型生成4~9条回复,再由标注人员根据自身偏好对这些回复进行排序。尽管这个排序过程耗时,但工作量通常小于构建监督微调数据集——因为对回复排序普遍比从头撰写回复更简单。
构建好包含这些排序结果的数据集后,我们就可以训练一个奖励模型,为RLHF步骤3的优化阶段输出奖励分数。这个奖励模型通常由上一步监督微调得到的大语言模型改造而来。我们将奖励模型简称为RM,将监督微调步骤得到的大语言模型简称为SFT。要把RLHF步骤1的模型转化为奖励模型,需要将其输出层(下一词元分类层)替换为回归层,该层仅包含一个输出节点。
如果你感兴趣,可以参考我的《深度学习基础》课程第4.5单元的短视频讲座,内容是如何将分类模型改造为回归模型:
https://lightning.ai/courses/deep-learning-fundamentals/training-multilayer-neural-networks-overview/4-5-multilayer-neural-networks-for-regression-parts-1-2/
RLHF流水线的第三步,是利用奖励模型(RM)来微调之前经过监督微调的模型(SFT),如下图所示。

图注:摘自InstructGPT论文的带标注示意图,https://arxiv.org/abs/2203.02155
在RLHF的最终步骤——步骤3中,我们基于步骤2构建的奖励模型输出的奖励分数,使用**近端策略优化(PPO)**来更新SFT模型。
PPO的详细数学原理超出了本文范围,感兴趣的读者可以在早于InstructGPT的四篇经典论文中找到相关细节:
- https://arxiv.org/abs/1602.01783(2016年),作者为Mnih、Badia、Mirza、Graves、Lillicrap、Harley、Silver和Kavukcuoglu,提出了策略梯度方法,作为深度强化学习中Q学习的替代方案。
- https://arxiv.org/abs/1707.06347(2017年),作者为Schulman、Wolski、Dhariwal、Radford和Klimov,提出了改进的基于近端策略的强化学习流程,相比基础策略优化算法,数据效率更高、可扩展性更强。
- https://arxiv.org/abs/1909.08593(2020年),作者为Ziegler、Stiennon、Wu、Brown、Radford、Amodei、Christiano、Irving,阐述了将PPO和奖励学习应用于预训练语言模型的思路,还加入了KL正则化以防止策略偏离自然语言过远。
- https://arxiv.org/abs/2009.01325(2020年),作者为Stiennon、Ouyang、Wu、Ziegler、Lowe、Voss、Radford、Amodei、Christiano,提出了广为流传的RLHF三步流程,该流程后来也被应用于论文 https://arxiv.org/abs/2203.02155 中。
Llama 2中的RLHF
上一节我们介绍了OpenAI的InstructGPT论文中描述的RLHF流程,这种方法通常被认为是ChatGPT所采用的方案。但它与Meta AI最新的Llama 2模型相比有何异同?
Meta AI在构建Llama-2-chat模型时也使用了RLHF,但两种实现方式之间存在若干差异,我在下面的带标注示意图中进行了重点说明。

图注:摘自《Llama 2:开源基础模型与微调对话模型》的带标注示意图,https://arxiv.org/abs/2307.09288
总而言之,Llama-2-chat在RLHF步骤1中,与InstructGPT一样,在指令数据上执行相同的监督微调步骤。但在RLHF步骤2中,它构建了两个奖励模型而非一个。此外,Llama-2-chat模型会经历多个迭代阶段,根据模型新出现的错误更新奖励模型,同时还加入了拒绝采样步骤。
间隔损失
上述示意图中未体现的另一个差异,与构建奖励模型时对模型回复的排序方式有关。
在之前介绍的、基于RLHF+PPO的标准InstructGPT方法中,研究人员收集标注者对4~9条输出的排序结果,再从中构建“k选2”的对比对。
例如,如果一名人类标注员对四条回复(A-D)排序为 A < C < D < B,那么会产生“4选2”=6组对比:
- A < C
- A < D
- A < B
- C < D
- C < B
- D < B
同样,Llama 2的数据集也基于回复的二元对比(比如A < B)。但不同的是,每一轮标注中,每位人类标注员只会看到2条回复(而非4~9条)。
此外,Llama 2的创新点在于:在每个二元排序旁还会收集一个**“间隔”标签**(从“显著更优”到“几乎无差异”),该标签可以通过额外的间隔参数选择性地应用于二元排序损失中,用于量化两条回复之间的质量差距。
InstructGPT使用以下基于交叉熵的排序损失来训练奖励模型:
而Llama 2则将间隔“m(r)”作为偏好评分的离散函数加入其中,形式如下:
其中:
r_θ(x,y)是针对提示x和生成回复y输出的标量分数;θ为模型权重;σ为逻辑斯蒂sigmoid函数,用于将层输出转换为0到1之间的分数;y_c是人类标注员选择的更优回复;y_r是人类标注员选择的较差回复。
举例来说,通过m(r)返回更大的间隔值,会缩小更优回复与较差回复的奖励差值,导致损失值更大,进而在策略梯度更新时产生更大的梯度,最终带来更显著的模型参数变化。
双奖励模型
如前所述,Llama 2中有两个奖励模型而非一个:一个基于有用性训练,另一个基于安全性训练。最终用于模型优化的奖励函数,是这两个分数的线性组合。

图注:基于InstructGPT论文带标注示意图绘制的Llama 2排序方法与奖励模型构建说明,https://arxiv.org/abs/2203.02155
拒绝采样
此外,Llama 2的作者采用了可迭代生成多个RLHF模型(从RLHF-V1到RLHF-V5)的训练流水线。他们没有只依赖前文讨论的RLHF+PPO方法,而是采用了两种算法进行RLHF微调:PPO,以及论文 https://arxiv.org/abs/2204.05862 中提出的方法。
在拒绝采样中,会生成K条输出,然后选择奖励最高的那一条用于优化步骤的梯度更新,如下图所示。

图注:基于InstructGPT论文示意图绘制的Llama 2拒绝采样步骤说明:生成多条回复并选择奖励最高的回复,https://arxiv.org/abs/2203.02155
拒绝采样的作用是在每次迭代中筛选出奖励分数高的样本。因此,与每次仅基于单个样本更新的PPO相比,模型能使用质量更高、奖励更优的样本进行微调。
在监督微调的初始阶段之后,模型先仅使用拒绝采样进行训练,之后再结合使用拒绝采样和PPO。
研究人员绘制了RLHF各阶段的模型表现,结果显示,经过RLHF微调的模型在无害性和有用性两个维度上都有所提升。

图注:摘自《Llama 2:开源基础模型与微调对话模型》的带标注示意图,https://arxiv.org/abs/2307.09288
注意,研究人员在最后一步使用了PPO,接续之前通过拒绝采样更新的模型。正如图表中“RLHF-v5(含PPO)”与“RLHF-v5(不含PPO)”的对比所示,在最终阶段加入PPO训练的模型,效果优于仅使用拒绝采样训练的模型。(就我个人而言,我很好奇如果仅用PPO、不使用拒绝采样进行微调,模型表现会如何。)
RLHF的替代方案
我们已经讨论并定义了RLHF流程——一个相当复杂的过程,有人可能会疑惑:花这么大功夫是否值得?前面InstructGPT和Llama 2论文中的图表(如下再次展示)已经证明了RLHF的实际价值。

不过,目前有大量研究致力于开发更高效的替代方案,最值得关注的几种方法总结如下。
(1) 宪法AI:来自AI反馈的无害性(2022年12月,https://arxiv.org/abs/2212.08073)
在这篇宪法AI论文中,研究人员提出了一种基于人类提供的规则列表的自训练机制。与前文提到的InstructGPT论文类似,该方法采用了强化学习思路。

图注:摘自《宪法AI:来自AI反馈的无害性》的图片,https://arxiv.org/abs/2212.08073
研究人员在上图中使用的“红队”(https://en.wikipedia.org/wiki/Red_team)一词,源于冷战时期的军事演习:当时 https://en.wikipedia.org/wiki/Red_team#History 有一支扮演苏联的队伍,用于测试美国的战略与防御体系。
在AI研究的网络安全语境中,“红队测试”如今指的是由外部或内部专家模拟潜在对手,通过模仿真实攻击者的战术、技术与流程,来挑战、测试并最终改进目标系统的过程。
(2) 后见之明的智慧:让语言模型更好地遵循指令(2023年2月,https://arxiv.org/abs/2302.05206)
《后见之明的智慧:让语言模型更好地遵循指令》一文表明,监督式的大语言模型微调方法确实能取得良好效果。研究人员提出了一种基于重标记的监督微调方法,在12项BigBench任务上的表现超过了RLHF。
这种被称为**HIR(后见之明指令重标记,Hindsight Instruction Labeling)**的方法是如何运作的?简而言之,HIR包含两个步骤:采样与训练。
在采样步骤中,将提示与指令输入大语言模型,收集其回复;在训练阶段,根据对齐分数,在合适的情况下对指令进行重标记。然后,使用重标记后的指令与原始提示来微调大语言模型。通过这种重标记方法,研究人员有效地将失败案例(大语言模型生成的输出与原始指令不匹配的案例)转化为监督学习的有用训练数据。

图注:摘自《后见之明的智慧:让语言模型更好地遵循指令》的带标注示意图,https://arxiv.org/abs/2302.05206
注意,这项研究与InstructGPT等RLHF研究不具备直接可比性,因为它使用了启发式方法(“不过,由于大多数人类反馈数据难以收集,我们采用了一种脚本化的反馈函数……”)。不过,HIR后见之明方法的结果仍然非常有说服力。
(3) 直接偏好优化:你的语言模型本身就是奖励模型(2023年5月,https://arxiv.org/abs/2305.18290)
**直接偏好优化(DPO)**是RLHF+PPO的替代方案。研究人员表明,RLHF中拟合奖励模型的交叉熵损失,可以直接用于微调大语言模型。根据他们的基准测试,使用DPO效率更高,而且在回复质量方面通常也优于RLHF/PPO。

图注:摘自https://arxiv.org/abs/2305.18290的带标注示意图
(4) 对比偏好学习:无需强化学习的人类反馈学习(2023年10月,https://arxiv.org/abs/2310.13639)
与直接偏好优化(DPO)类似,**对比偏好学习(CPL)**通过省去奖励模型学习环节来简化RLHF。和DPO一样,CPL使用监督学习目标,具体来说是对比损失。(在论文的附录中,作者证明了DPO是CPL的一个特例。)
虽然相关实验是在机器人环境中进行的,但CPL同样可以应用于大语言模型微调。
(5) 面向语言建模的强化自训练(ReST)(2023年8月,https://arxiv.org/abs/2308.08998)
ReST是基于人类反馈的强化学习(RLHF)的替代方案,用于让大语言模型与人类偏好对齐。ReST采用采样方法构建更优的数据集,通过在质量越来越高的子集上迭代训练来优化其奖励函数。
据作者称,ReST通过离线生成训练数据集,相比标准的在线RLHF方法(如结合近端策略优化PPO的RLHF)效率更高,但目前缺乏与InstructGPT或Llama 2中使用的标准RLHF+PPO方法的全面对比。

图注:摘自https://arxiv.org/abs/2308.08998的带标注示意图
(6) RLAIF:用AI反馈扩展基于人类反馈的强化学习(2023年9月,https://arxiv.org/abs/2309.00267)
近期的**基于AI反馈的强化学习(RLAIF)**研究表明,RLHF中用于奖励模型训练的评分不一定非要由人类提供,也可以由大语言模型(本文中为PaLM 2)生成。
人类评估者对RLAIF模型的偏好程度与传统RLHF模型各占一半,这意味着两者并没有明显的优劣之分。另外一个有趣的发现是,RLHF和RLAIF的表现都显著优于仅通过监督指令微调训练的模型。

图注:摘自RLAIF论文的带标注示意图,https://arxiv.org/abs/2309.00267
这项研究的结果非常实用且意义重大,因为它基本上意味着我们或许可以让基于RLHF的训练更高效、更易实现。不过,这些RLAIF模型在聚焦安全性与信息内容真实性的定性研究中表现如何,还有待观察——人类偏好研究仅能部分体现这些维度。
结语
这些替代方案在实践中是否真的有价值,还有待时间检验——因为目前还没有能与Llama 2、Code Llama量级相当,且未经RLHF训练的模型能真正与之抗衡。
另外,如果你尝试过其中任何一种方法,或者偶然发现了其他有前景的方案,欢迎和我交流!
这本杂志是我的个人热情项目,不提供直接报酬。不过,如果您愿意支持我,可以考虑购买一本我在 https://sebastianraschka.com/books 上的书。如果您觉得这些书有洞察力、有帮助,也欢迎推荐给您的朋友和同事。

https://www.amazon.com/Machine-Learning-PyTorch-Scikit-Learn-scikit-learn-ebook-dp-B09NW48MR1/dp/B09NW48MR1/ , https://nostarch.com/machine-learning-and-ai-beyond-basics , 以及 http://mng.bz/M96o
非常感谢您的支持!