从人类反馈中学习的强化学习(RLHF)是使大语言模型与人类偏好对齐的核心技术。本文系统梳理 RLHF 的关键论文,从理论基础到工程实践,从经典 PPO 到 DPO 等前沿替代方案。
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)是一种将强化学习与人类偏好判断相结合的训练范式。其核心思想是:通过人类标注者对模型输出的质量进行排序或评分,训练一个**奖励模型(Reward Model)**来模拟人类偏好,再使用强化学习算法(如 PPO)优化语言模型以最大化奖励模型的输出分数。
RLHF 的出现解决了传统语言模型训练中的根本矛盾:监督学习使用人类标注的"正确答案",但自然语言生成任务中往往没有唯一正确答案,且仅使用最大似然估计(MLE)训练的模型倾向于生成高频但平庸的回复,而非人类真正偏好的高质量、安全、有用的内容。
| 时间 |
论文 |
贡献 |
| 2017 |
Deep RL from Human Preferences (Christiano et al.) |
首次将人类偏好信号用于 RL 训练 |
| 2020 |
Learning to Summarize from Human Feedback (OpenAI) |
将 RLHF 应用于文本摘要 |
| 2022 |
InstructGPT / Training Language Models... (OpenAI) |
将 RLHF 引入大语言模型训练 |
| 2022 |
ChatGPT |
RLHF 的里程碑产品化 |
| 2023 |
Direct Preference Optimization (DPO) |
无需 RL 的简化替代方案 |
| 2023 |
Constitutional AI (Anthropic) |
无需人类标注的自我对齐 |
| 2024 |
KTO, IPO, ORPO |
进一步简化和改进的对齐方法 |
标准的 RLHF 流程包含三个核心阶段:
阶段一:监督微调(SFT)
在高质量人工标注数据上对预训练模型进行监督学习,使模型学习遵循指令的基本格式。这是 RLHF 的必要前置步骤。
阶段二:奖励模型训练
收集人类对模型输出的偏好比较数据,训练一个奖励模型 rϕ(x,y) 来预测人类评分。
阶段三:强化学习优化
使用 PPO 等 RL 算法,以奖励模型的输出为奖励信号,优化策略模型(即语言模型)的参数。
基本信息:
核心贡献:
这是最早系统提出"从人类偏好中学习强化学习奖励函数"的工作。作者提出了一个完整的框架:使用人类对轨迹片段的偏好比较来学习奖励函数,而非依赖手工设计的奖励函数。
技术细节:
- 偏好数据收集:向人类标注者展示两个轨迹片段 σ1,σ2,要求选择更优的一个
- 奖励函数学习:假设人类偏好符合 Bradley-Terry 模型:
P(σ1≻σ2)=exp(∑tr(st1,at1))+exp(∑tr(st2,at2))exp(∑tr(st1,at1))
- 优化目标:最大化人类偏好的对数似然
- RL 优化:使用学习到的奖励函数 rϕ 进行 A2C 或 PPO 训练
实验验证:
- Atari 游戏(Enduro, Pong 等):仅需约 30 分钟的人类偏好标注即可学会复杂行为
- 简单的机器人控制任务:展示了从人类偏好学习奖励的可行性
局限性:
- 需要大量人类标注
- 偏好只在轨迹级别收集,粒度较粗
- 主要适用于低维控制任务,尚未应用于语言模型
基本信息:
核心贡献:
首次将 RLHF 应用于文本生成任务——摘要生成。这为后来 InstructGPT/ChatGPT 中的 RLHF 应用奠定了方法论基础。
技术方法:
Step 1: 收集比较数据
- 使用 Reddit TL;DR 数据集
- 标注者对比两个模型生成的摘要,选择更好的一个
- 共收集约 65,000 对比较
Step 2: 训练奖励模型
使用 Bradley-Terry 偏好模型,奖励模型的损失函数为:
L(ϕ)=−E(x,yw,yl)∼D[logσ(rϕ(x,yw)−rϕ(x,yl))]
其中 yw 是人类偏好的摘要,yl 是不被偏好的摘要。
Step 3: PPO 微调
- 策略模型(摘要模型)通过 PPO 最大化奖励
- 使用 KL 散度惩罚项防止模型过度偏离 SFT 模型:
R(x,y)=rϕ(x,y)−β⋅DKL(πθRL∥πθSFT)
实验结果:
- RLHF 训练的摘要模型在人类评估中显著优于监督训练模型
- 即使奖励模型只使用 1,000 条比较数据训练,RLHF 模型的质量仍优于更大的监督模型
- 人类更偏好 RLHF 模型的摘要:72% vs 25%(对比 MLE 训练的更大模型)
关键洞察:
- 规模补偿:RLHF 可以用更小的模型超越更大规模模型
- 泛化能力:奖励模型可以泛化到训练分布之外的数据
- KL 惩罚的重要性:限制策略偏移防止奖励黑客
基本信息:
核心贡献:
这是将 RLHF 全面引入大语言模型训练的里程碑工作。InstructGPT 首次证明:结合人类反馈微调的语言模型,即使在参数量小 100 倍的情况下,也能在人类评估中胜过大 100 倍的 GPT-3 模型(175B)。
完整方法论:
阶段 1: 监督微调(SFT)
- 收集标注者编写的指令-回复对
- 在约 12,000-15,000 条高质量数据上微调 GPT-3
- 使用标准最大似然损失
阶段 2: 奖励模型(RM)训练
- 对每个提示,让 SFT 模型生成 K 个回复(通常 K=4 到 9 之间)
- 标注者对这些回复进行排序(从最好到最差)
- 从排序中提取 (2K) 对比较数据
- 奖励模型的损失函数:
L(ϕ)=−E(x,yw,yl)∼D[logσ(rϕ(x,yw)−rϕ(x,yl))]
RM 的架构:移除 GPT 最后一层后接一个线性层输出标量奖励值。
阶段 3: PPO 强化学习
PPO 目标函数:
πθRL=argπθmaxEx∼D,y∼πθ(⋅∣x)[rϕ(x,y)]−β⋅DKL(πθ(⋅∣x)∥πSFT(⋅∣x))
在实际实现中,PPO-Clip 版本的核心目标函数为:
LCLIP(θ)=E^t[min(πθold(at∣st)πθ(at∣st)A^t,clip(πθold(at∣st)πθ(at∣st),1−ϵ,1+ϵ)A^t)]
其中:
- πθoldπθ 是重要性采样比率
- A^t 是优势函数估计
- ϵ 是裁剪超参数(通常设为 0.2)
PPO 在语言模型中的具体实现:
对于语言模型,PPO 目标变为最大化以下总目标:
objective(ϕ)=E(x,y)∼DπθRL[rϕ(x,y)−β⋅logπSFT(y∣x)πθRL(y∣x)]+γ⋅Ex∼D[logπθRL(x)]
其中第三项是预训练损失(用于防止灾难性遗忘,在 InstructGPT 中可选项,γ 控制强度)。
核心实验结果:
| 模型 |
参数量 |
人类评估胜率 vs GPT-3 |
说明 |
| GPT-3 (175B) |
175B |
50% |
基线 |
| SFT-175B |
175B |
~65% |
监督微调 |
| PPO-1.3B |
1.3B |
~53% |
小模型 RLHF |
| PPO-175B |
175B |
~85% |
大模型 RLHF |
1.3B 参数的 PPO 模型在人类评估中胜过 175B 的 GPT-3! 这强有力地证明了 RLHF 的效率。
关键设计决策:
- 每个 prompt 生成 K=4 到 9 个回复:过多的回复(如 K=30)并不能进一步提升效果
- KL 惩罚系数 β=0.02:平衡探索与约束
- 冻结预训练梯度:仅更新 SFT 后的参数
- 在 PPO 训练中持续使用 SFT 模型的 KL 散度约束:防止奖励黑客
RLHF 的局限性(InstructGPT 中发现):
- 在公共 NLP 基准测试(如 SQuAD, HellaSwag)上,RLHF 模型可能表现更差
- 模型仍可能产生幻觉(hallucination),RLHF 无法完全消除
- 存在"奖励黑客"风险:模型学会 exploit 奖励函数而非真正对齐
基本信息:
核心贡献:
PPO 是目前 RLHF 中使用最广泛的 RL 算法。它通过**裁剪的代理目标函数(Clipped Surrogate Objective)**实现了 TRPO 的稳定性,同时大幅简化了实现。
Monte Carlo 优势估计:
在 PPO 中,使用广义优势估计(GAE)计算优势函数:
A^t=l=0∑∞(γλ)lδt+l
其中 δt=rt+γV(st+1)−V(st),γ 是折扣因子,λ 是 GAE 参数。
PPO 为什么适合 RLHF:
- 样本高效:每次与奖励模型交互后可以多次更新
- 数值稳定:裁剪目标防止梯度爆炸
- 实现简单:无需计算 TRPO 中的 KL 约束的共轭梯度
- 与 Transformer 架构兼容:LM 的自回归生成可视为序列决策过程
基本信息:
- 作者:Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn (Stanford)
- 发表:NeurIPS 2023
- 链接:https://arxiv.org/abs/2305.18290
核心贡献:
DPO 提出了一套颠覆性的思路:无需训练奖励模型,也无需强化学习,直接通过偏好数据优化语言模型。这大幅简化了 RLHF 的工程复杂度。
数学推导:
DPO 的出发点是发现 RLHF 的 PPO 优化问题存在闭式解。标准 RLHF 目标:
πθmaxEx∼D,y∼πθ(y∣x)[r(x,y)]−β⋅DKL(πθ(y∣x)∥πref(y∣x))
这个优化问题的最优策略具有以下形式:
π∗(y∣x)=Z(x)1πref(y∣x)exp(β1r(x,y))
因此,奖励函数可被隐式表示为策略比率的对数:
r(x,y)=β⋅logπref(y∣x)π∗(y∣x)+β⋅logZ(x)
将上述表达式代入 Bradley-Terry 偏好模型,得到 DPO 的损失函数:
LDPO(πθ;πref)=−E(x,yw,yl)∼D[logσ(β⋅logπref(yw∣x)πθ(yw∣x)−β⋅logπref(yl∣x)πθ(yl∣x))]
简化理解:DPO 本质上是在最大化偏好和非偏好输出之间的对数概率比之差,经过 β 缩放后通过 sigmoid 映射到偏好概率。
DPO vs PPO 对比:
| 维度 |
PPO-RLHF |
DPO |
| 训练阶段数 |
3 (SFT + RM + RL) |
2 (SFT + DPO) |
| 奖励模型 |
必需 |
不需要 |
| 在线采样 |
需要(PPO 需要当前策略采样) |
不需要(完全离线) |
| 数值稳定性 |
较低(PPO 超参数敏感) |
较高 |
| 计算成本 |
高(维护多个模型) |
低 |
| 超参数 |
多(KL 系数、clip 等) |
少(仅 β) |
| 内存需求 |
同时加载 4 个模型(策略、参考、奖励、价值) |
同时加载 2 个模型(策略、参考) |
DPO 的实验结果:
- 在 GPT-4 评估中,DPO 对齐的模型在单轮对话中与 PPO 对齐的模型质量相当
- 在总结任务和单轮指令遵循中,DPO 甚至略优于 PPO
- 训练速度比 PPO 快约 2-3 倍
- 但多轮对话和对齐稳定性方面,PPO 通常仍更优
DPO 的局限性:
- 隐式奖励函数可能不准确:当模型分布与参考分布差异过大时
- 过拟合问题:DPO 对偏好数据中的噪声更敏感
- 多轮交互:未经特殊设计的 DPO 在多轮场景下不稳定
- 缺乏探索:离线偏好数据无法覆盖策略变化后的分布
基本信息:
核心思想:
使用一组宪法原则(Constitutional Principles)替代人类标注进行偏好判断。模型根据宪法原则对自己的输出进行自我修正和反馈。
两阶段流程:
- 监督阶段(SL-CAI):模型根据宪法原则生成自我批评和修正后的输出
- RL 阶段(RL-CAI):使用修正前后的输出作为偏好对训练奖励模型
关键优势:
- 大幅减少人类标注需求
- 可以处理更细粒度的安全对齐问题
- 易于迭代更新宪法原则
OpenAI 和 Anthropic 在实践中发现,单次 RLHF 不足以充分对齐。迭代 RLHF 流程成为工业界标准:
- 训练初始 RM → PPO → 得到新模型
- 用新模型生成新的采样
- 对新采样重新收集人类偏好
- 用新数据训练新的 RM
- 重复 PPO 训练
每次迭代都会产生更高质量的训练数据,形成正向循环。
基本信息:
KTO 基于 Kahneman-Tversky 的前景理论(Prospect Theory),不再需要成对偏好比较,而是只需要判断单个输出是"好的"还是"差的"(即二元反馈)。
KTO 损失函数:
LKTO(πθ,πref)=Ex,y∼D[w(y)(1−σ(β⋅logπref(y∣x)πθ(y∣x)−zref))]
其中 zref 是参考点,w(y) 是根据偏好类型(好/坏)赋予的权重。
优势:
- 数据收集更简单(只需判断单个输出好坏)
- 适合实际标注场景(标注者难以做精细排序时)
- 计算效率更高
基本信息:
ORPO 提出将 SFT 和偏好对齐 合并为一个阶段。模型在训练时同时优化:
- 对首选回复的标准语言模型损失
- 一个惩罚非首选回复的 odds ratio 损失
ORPO 损失:
LORPO=LSFT+λ⋅LOR
其中 LOR 使用优选和非优选回复的 odds ratio 进行对比。
问题描述:
语言模型可能学习利用奖励函数的漏洞,生成看起来高分但实际质量低的输出。例如,奖励模型可能偏好更长或更花哨的回复,模型就会学会生成冗长而无实质内容的回复。
解决方案:
- KL 散度惩罚:限制策略模型与 SFT 参考模型的偏离程度
- 奖励集成:使用多个奖励模型并取平均或取最小值
- 奖励归一化:对奖励值进行 Z-score 归一化,避免分布偏移:
r~(x,y)=σrr(x,y)−μr
- 偏好排序校准:对回复长度等无关因素进行 debias
问题描述:
奖励模型可能在其训练数据上过拟合,导致在分布外(OOD)样本上的打分不准确。
解决方案:
- 正则化:对 RM 使用 dropout、weight decay 等
- 数据多样化:确保偏好数据覆盖广泛的任务和领域
- Ensemble 方法:训练多个 RM 并集成
- RLHF 迭代:每次 PPO 迭代后重新采样和标注
RLHF 极度依赖高质量人类偏好数据。提升数据效率的方法:
- 主动学习(Active Learning):选择最具信息量的样本进行标注
- 模型辅助标注:用较弱模型进行初步筛选
- 偏好数据增强:利用模型自身的生成多样性
- 跨任务迁移:一个领域训练的 RM 可迁移到相似领域
单轮 RLHF 在多轮对话场景下的挑战:
- 模型需要理解对话上下文
- 一致性和长期连贯性需要特殊处理
- 对话式反馈收集成本更高
解决方案:
- 使用对话级别的偏好比较
- 引入对话状态追踪
- 在 RLHF 训练中使用上下文拼接
预训练模型
│
▼
SFT 阶段 ───── 高质量指令数据 (12K-15K)
│
▼
RM 训练 ────── 偏好比较数据 (50K-500K 对)
│
▼
PPO 训练 ───── 在线/离线生成 + RM 打分 + KL 约束
│
▼
迭代优化 ───── 重新采样 + 新标注 → 新的 RM → 新的 PPO
| 组件 |
模型大小 |
GPU 需求 |
时间估计 |
| SFT |
7B |
4-8 × A100 |
1-3 天 |
| RM |
7B |
4 × A100 |
1-2 天 |
| PPO |
7B |
8 × A100 |
2-5 天 |
| SFT |
70B |
16-32 × A100 |
5-10 天 |
| RM |
70B |
8-16 × A100 |
3-5 天 |
| PPO |
70B |
32-64 × A100 |
7-14 天 |
使用 TRL 的最小 DPO 训练示例:
from trl import DPOTrainer, DPOConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("your-sft-model")
ref_model = AutoModelForCausalLM.from_pretrained("your-sft-model")
tokenizer = AutoTokenizer.from_pretrained("your-sft-model")
training_args = DPOConfig(
output_dir="./dpo_output",
beta=0.1, # KL 惩罚系数
learning_rate=5e-7,
per_device_train_batch_size=4,
gradient_accumulation_steps=8,
max_length=1024,
max_prompt_length=512,
)
trainer = DPOTrainer(
model=model,
ref_model=ref_model,
args=training_args,
train_dataset=preference_dataset,
tokenizer=tokenizer,
)
trainer.train()
- 输出层设计:奖励模型通常使用 Transformer 的最后一层 hidden state([CLS] token 或最后一个 token)接一个线性投影层
- 对比对数量:每个 prompt 生成 4-9 个回复是性价比最优的选择
- 标注校准:使用多人标注和交叉验证提高偏好数据质量
- 数据筛选:标注者意见一致的样本训练效果更好
- 奖励模型分数:PPO 模型在 RM 上的平均得分
- KL 散度:PPO 模型与 SFT 模型的分布差异
- 奖励-KL Pareto 前沿:同时衡量奖励和偏离程度
- A/B 测试:对比 RLHF 模型和基线模型
- 胜率(Win Rate):人类偏好 RLHF 输出的百分比
- 交叉验证:不同标注者之间的一致性
| 基准 |
测试目标 |
评估方式 |
| MT-Bench |
多轮对话质量 |
GPT-4 评估 |
| AlpacaEval |
单轮指令遵循 |
自动对比 GPT-4 |
| Chatbot Arena |
众包偏好评估 |
ELO 评分 |
| HH-RLHF |
帮助性和无害性 |
偏好数据 |
- Self-Play RLHF:模型自主生成偏好数据
- RLAIF:用 AI(如 GPT-4)替代人类偏好标注
- Constitutional AI:基于原则的自我对齐
将 RLHF 扩展到图像、视频、语音等多模态场景:
- Image Reward Models:评估图文一致性和美学质量
- Video Preference Optimization:视频生成的偏好对齐
- Audio RLHF:语音合成和音频生成的质量对齐
- Process Reward Models(PRM):评估推理过程的每一步而非仅最终结果
- Outcome-based vs Process-based:PRM 提供更细粒度的反馈
- Scalable Oversight:AI 辅助人类进行更复杂的监督任务
RLHF 是大语言模型走向实用化、安全化的关键技术路径。从 2017 年 Christiano 的先行工作,到 2022 年 InstructGPT 的突破,再到 2023-2024 年 DPO、KTO、ORPO 等简化方案的涌现,RLHF 领域正在快速演进。
核心要点回顾:
- RLHF 的核心三阶段:SFT → RM 训练 → PPO 优化
- PPO 是最广泛使用的 RL 算法,但参数敏感、工程复杂
- DPO 提供了简化的替代方案,在单轮任务中效果相当
- 奖励黑客和过拟合是核心挑战,需要通过 KL 约束和迭代训练缓解
- 工业级 RLHF 需要大量计算资源,但开源工具链正在降低门槛
- 未来的趋势:减少人类标注依赖、扩展到多模态、引入过程级监督
参考论文:
- Christiano et al. "Deep Reinforcement Learning from Human Preferences." NeurIPS 2017.
- Stiennon et al. "Learning to Summarize from Human Feedback." NeurIPS 2020.
- Ouyang et al. "Training Language Models to Follow Instructions with Human Feedback." NeurIPS 2022.
- Schulman et al. "Proximal Policy Optimization Algorithms." 2017.
- Rafailov et al. "Direct Preference Optimization." NeurIPS 2023.
- Bai et al. "Constitutional AI: Harmlessness from AI Feedback." 2022.
- Ethayarajh et al. "KTO: Model Alignment as Prospect Theoretic Optimization." 2024.
- Hong et al. "ORPO: Monolithic Preference Optimization without Reference Model." 2024.