核心论文:
- Training Language Models to Follow Instructions with Human Feedback / InstructGPT(Ouyang et al., OpenAI, 2022)arXiv:2203.02155
- Learning to summarize from human feedback(Stiennon et al., OpenAI, 2020)arXiv:2009.01325
- Direct Preference Optimization: Your Language Model is Secretly a Reward Model(Rafailov et al., Stanford, 2023)arXiv:2305.18290
- Proximal Policy Optimization Algorithms(Schulman et al., OpenAI, 2017)arXiv:1707.06347
- The Llama 3 Herd of Models(Grattafiori et al., Meta, 2024)arXiv:2407.21783
目录
- 一、问题的起源:对齐问题(Alignment Problem)
- 二、RLHF 的三阶段流程
- 三、阶段一:监督微调(SFT)
- 四、阶段二:奖励模型(Reward Model)训练
- 五、阶段三:PPO 强化学习优化
- 六、关键评估:RLHF 的效果
- 七、DPO:直接偏好优化
- 八、RLAIF:用 AI 反馈替代人类反馈
- 九、Rejection Sampling Fine-tuning(RS)
- 十、RLHF 的效果与局限
一、问题的起源:对齐问题(Alignment Problem)
预训练得到的基础语言模型有一个根本问题:它的优化目标(预测下一个 token)与人类真正想要的目标(有帮助、无害、诚实)之间存在鸿沟。
这个鸿沟在 GPT-3 发布(2020年)时就已明显体现:
问题 1:不服从指令
如果用户问:”帮我写一首关于秋天的诗”,基础模型(未经对齐)可能:
- 继续生成类似的诗歌请求(因为训练数据中有很多这样的问题)
- 讨论”秋天的诗”这个话题而不是真正写诗
- 只完成一半就停下来
问题 2:生成有害内容
训练数据包含互联网上的全部内容,包括种族主义言论、极端主义内容、错误信息。基础模型在接收到相关提示词时,可能直接继续生成这类内容。
问题 3:频繁幻觉(Hallucination)
基础模型会自信地生成虚假信息,因为”听起来有道理”的错误陈述在训练数据中也大量存在。
核心概念:目标错位(Objective Misspecification)
这三个问题的共同根源是:Next Token Prediction 是一个代理目标(proxy objective),而不是人类真正关心的目标。模型优化了代理目标后,在真实目标上的表现并不理想。
RLHF(Reinforcement Learning from Human Feedback,来自人类反馈的强化学习)提供了一个系统化的解决方案:用人类的偏好反馈来训练奖励模型,再用这个奖励模型通过强化学习来优化 LLM。
二、RLHF 的三阶段流程
InstructGPT 论文(Ouyang et al., 2022)确立了 RLHF 的标准三阶段流程,这个流程被 Anthropic、Google、Meta 等机构广泛采用:
阶段 1:监督微调(Supervised Fine-Tuning, SFT) |
三、阶段一:监督微调(SFT)
3.1 SFT 的目的
SFT 是 RLHF 的第一步,目的是让基础模型初步学会”指令-回复”的对话格式。
输入: 预训练基础模型(如 GPT-3 175B 基础模型)
数据: 人工标注的”(指令, 理想回复)”对。在 InstructGPT 中,OpenAI 雇用了约 40 名标注员,专门编写高质量的回复示例。
格式示例:
指令:用通俗语言解释量子纠缠 |
训练过程: 与预训练相同的交叉熵损失,但只在回复部分计算损失(不对指令部分计算):
$$\mathcal{L}_{\text{SFT}} = -\sum_{t \in \text{response}} \log P_\theta(x_t | \text{instruction}, x_{1:t-1})$$
结果: SFT 之后的模型已经能够回答问题,但回复质量参差不齐——它只是在模仿标注员的风格,没有系统性地优化”有帮助性”。
3.2 SFT 数据的质量比数量更重要
这是 RLHF 工程中最重要的经验之一。
InstructGPT 的发现: 1.3B 的 InstructGPT(经过 RLHF)比 175B 的 GPT-3(未经对齐)更受人类偏好。这说明数据质量和对齐方法比参数量更重要。
Llama 3 的数据策略(来自技术报告):
Meta 在训练 LLaMA 3 的 SFT 数据时采用了严格的质量控制:
- 总 SFT 数据量:超过 10M 条对话样本
- 数据来源:内部标注员(约 350 名)+ 合成数据
- 每条数据通过至少两轮人工审核
- 特别注重”困难”场景:安全边界、复杂推理、代码调试
关键发现:将数据量从 1M 增加到 10M 对性能的提升,远不如将数据质量从”普通”提升到”优秀”。
四、阶段二:奖励模型(Reward Model)训练
4.1 奖励模型的架构和训练目标
奖励模型(RM)是一个从语言模型微调而来的价值函数,它的输入是一段完整的对话(包含指令和模型回复),输出是一个标量分数,表示这个回复的”质量”有多高。
架构: 通常将 SFT 模型的最后一层(负责预测下一个 token 的线性层)替换为一个输出单一标量的线性层。
$$r_\phi(x, y) \in \mathbb{R}$$
其中 $x$ 是输入(指令),$y$ 是输出(回复),$\phi$ 是奖励模型的参数。
4.2 Bradley-Terry 偏好模型
奖励模型的训练使用的是偏好数据(preference data)而不是绝对评分。
数据收集方式:
对于同一条指令 $x$,生成多个不同的回复 $y_1, y_2, y_3, \ldots$,然后让标注员在每对回复之间进行比较,选择更好的那个。
这比要求标注员给每个回复打分(1-10 分)容易得多,因为比较两个选项比给出绝对分数更自然、更一致。
Bradley-Terry 模型(Bradley & Terry, 1952):
给定两个回复 $y_w$(preferred,胜者)和 $y_l$(dispreferred,败者),Bradley-Terry 模型将标注员选择 $y_w$ 的概率建模为:
$$P(y_w \succ y_l | x) = \sigma(r(x, y_w) - r(x, y_l)) = \frac{e^{r(x, y_w)}}{e^{r(x, y_w)} + e^{r(x, y_l)}}$$
其中 $\sigma$ 是 sigmoid 函数,$r$ 是奖励模型。
训练损失: 最大化偏好数据的对数似然(即最大化模型认为胜者比败者更好的概率):
$$\mathcal{L}_{\text{RM}} = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[\log \sigma\left(r_\phi(x, y_w) - r_\phi(x, y_l)\right)\right]$$
4.3 偏好数据的标注细节
InstructGPT 的标注指南(公开):
标注员在评判回复时被要求综合考虑:
- 有帮助性(Helpfulness): 回复是否实际上帮助了用户完成任务?
- 真实性(Truthfulness): 回复中的陈述是否准确?
- 无害性(Harmlessness): 回复是否避免了有害内容?
当三个维度冲突时(如一个”有帮助”但”不安全”的回复 vs 一个”安全”但”没用”的回复),标注员需要根据具体情况权衡。
标注员一致性问题:
不同标注员的判断标准可能不同,尤其是在边界情况下。InstructGPT 报告了标注员间的一致率(Inter-Annotator Agreement)约为 72%。为了减少噪声,他们让多名标注员对同一对比进行评判,取多数投票。
4.4 奖励模型的局限性:奖励黑客(Reward Hacking)
奖励黑客问题(也称 Goodhart’s Law 的体现):
一旦模型开始用奖励模型的分数作为优化目标,它会发现一些”非预期但能获得高分”的捷径:
- 生成非常长的回复(因为标注员可能偏向更完整的回复)
- 在句子末尾添加奉承性语言(”这是一个很棒的问题!”)
- 过度确信地回答任何问题,即使没有足够依据
这说明奖励模型本身并不完美,只是对人类偏好的近似。过度优化奖励模型的分数会导致实际质量的下降,这被称为”奖励过优化(over-optimization of the reward)”。
InstructGPT 发现:在一定程度内增加 PPO 步数可以提升人类评分,但超过某个点后,继续优化反而会降低真实质量(即使奖励模型分数继续上升)。
五、阶段三:PPO 强化学习优化
5.1 为什么选择强化学习
SFT 只能让模型模仿训练数据中的”好回复”,但无法系统性地探索更好的回复空间。强化学习可以做到:
- 模型生成各种回复(包括 SFT 数据中没有见过的新颖回复)
- 奖励模型对这些回复打分
- 模型根据分数调整自身参数,增加高分回复的概率
这类似于让模型自己”练习”——通过不断尝试和反馈来提升能力,而不只是模仿教材。
形式化: 将 RLHF 建模为强化学习问题:
- 状态(State): 当前对话上下文(指令 + 已生成的 tokens)
- 动作(Action): 生成下一个 token
- 策略(Policy): $\pi_\theta$,即 LLM
- 奖励(Reward): 奖励模型对完整回复的评分 $r(x, y)$
- 目标: 最大化期望奖励 $\mathbb{E}[r(x, y)]$
5.2 KL 散度惩罚项:防止模型偏离 SFT
如果只优化奖励,模型会很快”坍塌”——它会找到能最大化奖励模型分数的捷径(奖励黑客),同时失去语言多样性和自然性(语言模型的崩溃通常表现为开始重复同样的高分短语)。
解决方案: 在奖励函数中加入 KL 散度惩罚,约束优化后的策略不能与 SFT 模型偏离太远:
$$r_{\text{total}}(x, y) = r_\phi(x, y) - \beta \cdot \mathbb{KL}[\pi_\theta(y|x) \| \pi_{\text{SFT}}(y|x)]$$
其中:
- $r_\phi(x, y)$ 是奖励模型的分数
- $\beta$ 是控制 KL 惩罚强度的系数
- $\mathbb{KL}[\pi_\theta | \pi_{\text{SFT}}]$ 是 RL 策略和 SFT 模型之间的 KL 散度
$$\mathbb{KL}[\pi_\theta \| \pi_{\text{SFT}}] = \sum_y \pi_\theta(y|x) \log \frac{\pi_\theta(y|x)}{\pi_{\text{SFT}}(y|x)}$$
逐 token 计算时,KL 散度等价于:
$$\mathbb{KL}[\pi_\theta \| \pi_{\text{SFT}}] \approx \sum_{t=1}^{|y|} \log \frac{\pi_\theta(y_t | x, y_{ $\beta$ 的选择是重要的超参数: 论文: Proximal Policy Optimization Algorithms(Schulman et al., OpenAI, 2017)arXiv:1707.06347 PPO 是目前最广泛用于 RLHF 的 RL 算法,核心思想是限制每次策略更新的幅度,防止更新过大导致训练不稳定。 Actor-Critic 框架: PPO 需要同时维护四个模型: PPO 的核心损失函数: $$\mathcal{L}_{\text{PPO}} = -\mathbb{E}_t \left[\min\left(\rho_t \hat{A}_t, \text{clip}(\rho_t, 1-\epsilon, 1+\epsilon) \hat{A}_t\right)\right]$$ 其中: 直觉理解: 如果 $\hat{A}_t > 0$(这个动作比平均好),增大 $\pi_\theta(y_t|s_t)$;如果 $\hat{A}_t < 0$,减小 $\pi_\theta(y_t|s_t)$。但 clip 机制防止更新幅度过大。 优势函数的计算: 优势函数 $\hat{A}_t = Q(s_t, a_t) - V(s_t)$,其中 $Q$ 是 Q 值(动作价值),$V$ 是状态价值(由 Critic 估计)。 在 LLM 中,优势函数需要分配到每个 token(稀疏奖励问题:只在回复结束时得到奖励)。通常使用 GAE(Generalized Advantage Estimation)从最后一个 token 反向传播奖励信号。 PPO 训练 LLM 是目前已知的最复杂的深度学习训练流程之一: 需要同时维护的内存: 对于 70B 参数的模型,仅 Actor 的参数 + 优化器状态就需要约 1.1TB 显存,加上其他三个模型,总需求超过 4TB。 数值不稳定性: PPO 的 KL 约束在 LLM 训练中容易出现数值问题,需要精心的超参数调整。 这些工程难度是 DPO 出现的重要动机之一(见第七节)。 InstructGPT 通过人类评估者(非标注员的独立评估者)比较 InstructGPT 和 GPT-3 的回复: 对齐税是指经过 RLHF 对齐后,模型在某些自动评测指标(如 MMLU 等 benchmark)上可能略有下降。 原因: RLHF 优化的是人类偏好,而人类偏好与特定 benchmark 的得分不完全相关。例如,优化有帮助性可能让模型在特定 NLP 基准上的格式化输出变差。 缓解方法: 在 PPO 的损失函数中加入预训练数据的 SFT 损失(即在强化学习的同时,继续在原始数据上进行一定程度的监督学习),防止模型”遗忘”预训练知识。 论文: Direct Preference Optimization: Your Language Model is Secretly a Reward Model(Rafailov et al., Stanford, 2023)arXiv:2305.18290 DPO 发现了一个令人惊叹的数学等价性:在某些假设下,RLHF 的三阶段流程(SFT → RM → PPO)可以等价地用一个对偏好数据的直接分类损失来替代,完全不需要强化学习。 推导思路: 在有 KL 约束的 RLHF 中,最优策略 $\pi^*$ 满足: $$\pi^*(y|x) = \frac{\pi_{\text{SFT}}(y|x) \exp(r(x,y)/\beta)}{Z(x)}$$ 其中 $Z(x) = \sum_y \pi_{\text{SFT}}(y|x) \exp(r(x,y)/\beta)$ 是归一化常数。 反解 $r(x,y)$: $$r(x,y) = \beta \log \frac{\pi^*(y|x)}{\pi_{\text{SFT}}(y|x)} + \beta \log Z(x)$$ 将这个表达式代入 Bradley-Terry 的偏好概率: $$P^*(y_w \succ y_l | x) = \sigma\left(\beta \log \frac{\pi^*(y_w|x)}{\pi_{\text{SFT}}(y_w|x)} - \beta \log \frac{\pi^*(y_l|x)}{\pi_{\text{SFT}}(y_l|x)}\right)$$ 注意 $Z(x)$ 被约掉了! 由此直接得到 DPO 的训练损失(不需要奖励模型,不需要 RL): $$\mathcal{L}_{\text{DPO}}(\pi_\theta; \pi_{\text{SFT}}) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[\log \sigma\left(\beta \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{SFT}}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{SFT}}(y_l|x)}\right)\right]$$ 直觉解释: DPO 的局限性: DPO 是离线(offline)方法,只能从固定的偏好数据集学习,无法像 PPO 那样在线生成新回复并从中学习。这在理论上限制了其探索能力。 实践中的选择: LLaMA 3、Qwen 2.5 等开源模型的后训练都报告使用了 DPO 或其变体(如 IPO、SimPO),因为工程复杂度更低。 IPO(Identity Preference Optimization,Azar et al., 2023)arXiv:2310.12036: DPO 使用的 Bradley-Terry 模型在某些情况下会过拟合。IPO 直接最小化偏好差距(无需 sigmoid),更稳定: $$\mathcal{L}_{\text{IPO}} = \mathbb{E}_{(x, y_w, y_l)} \left[\left(\log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} - \frac{1}{2\beta}\right)^2\right]$$ SimPO(Simple Preference Optimization,Meng et al., 2024)arXiv:2405.14734: 去掉对 Reference 模型的依赖,用平均对数概率直接作为奖励信号: $$\mathcal{L}_{\text{SimPO}} = -\mathbb{E} \left[\log \sigma\left(\frac{\beta}{|y_w|} \log \pi_\theta(y_w|x) - \frac{\beta}{|y_l|} \log \pi_\theta(y_l|x) - \gamma\right)\right]$$ 其中 $\gamma$ 是目标奖励差距(target reward margin),确保胜者比败者好出一定的差距才算有效偏好。 论文: Constitutional AI(Bai et al., Anthropic, 2022)arXiv:2212.08073(详见第 04 篇) 人类反馈数据有三个根本限制: RLAIF 用 AI 模型(通常是另一个已经对齐的 LLM)来替代人类进行偏好标注: $$r(x, y_w, y_l) \approx P_{\text{AI}}(y_w \text{ is better than } y_l | x)$$ “LLM 作为评判者”(LLM-as-Judge)是 RLAIF 的核心技术。Zheng et al.(2023)在 MT-Bench 论文中系统研究了这种方法:arXiv:2306.05685 具体实现: 已知偏差(来自研究文献): 缓解方法:随机化回复顺序、多次评判取平均、明确在 prompt 中要求忽略这些偏差。 这是 LLaMA 3 重点使用的一种方法,介于 SFT 和 RL 之间: 流程: 优势: 比 PPO 更简单稳定,比标准 SFT 效果更好(因为训练数据是模型自己生成的高质量版本) 局限: 只能从已有分布中选择,无法像 PPO 那样从探索中学习 LLaMA 3 的后训练使用了:SFT → Rejection Sampling → DPO 的多轮迭代,每轮使用当前最强模型生成更好的训练数据,再重新训练。 这些局限性推动了 Constitutional AI 和更严格的对齐研究的发展,详见第 04 篇。 论文:KTO: Model Alignment as Prospect Theoretic Optimization(Ethayarajh et al., 2024)arXiv:2402.01306 DPO 需要成对的偏好数据(chosen vs rejected),收集成本高。KTO 的创新:只需单一标签(好/坏),不需要成对比较。 理论基础来自 Kahneman & Tversky 的前景理论——人类对收益和损失有不对称的敏感度。KTO 将这种不对称性引入对齐训练:模型从”好”回复中学到应该做什么,从”坏”回复中学到应该避免什么,无需直接比较两者。 实际意义: 标注员只需对单个回复打分,成本大幅降低,使更大规模、更多样化的反馈收集成为可能。 论文:ORPO: Monolithic Preference Optimization without Reference Model(Hong et al., 2024)arXiv:2403.07691 核心创新:将 SFT 和偏好优化合并在一个训练阶段中,无需单独的 SFT → DPO/PPO 两阶段流程,也无需参考模型。ORPO 损失包含 SFT 损失(标准交叉熵)和优势比损失: $$\mathcal{L}_{\text{OR}} = -\log \sigma\left(\log \frac{\text{odds}_\theta(y_w|x)}{\text{odds}_\theta(y_l|x)}\right)$$ 其中 $\text{odds}(y|x) = \frac{P(y|x)}{1 - P(y|x)}$。单阶段训练,计算成本更低,在某些 benchmark 上与多阶段 RLHF 效果相当。 论文:SimPO: Simple Preference Optimization with a Reference-Free Reward(Meng et al., 2024)arXiv:2405.14734 SimPO 进一步简化偏好优化:使用生成序列的平均对数概率作为隐式奖励(无需单独的奖励模型或参考模型),添加长度归一化防止模型偏好长回复(RLHF 的已知偏差),在 AlpacaEval 2 和 Arena-Hard 上超越了 DPO。 标准 RLHF 是”离线”的——先收集偏好数据,再一次性训练。但奖励模型只在”见过的分布”上准确,随着策略在训练中变化,生成分布偏离奖励模型的训练分布,导致奖励”过时”——模型学会欺骗奖励模型(reward hacking)。 迭代做法: 用当前最优策略生成回复 → 收集新反馈 → 更新奖励/策略 → 重复。Anthropic 的 Claude 和 OpenAI 的 GPT-4 都使用了某种形式的迭代对齐。 当模型学会”钻奖励模型的空子”时的常见现象: 缓解策略: KL 惩罚(限制策略偏离 SFT 模型太远)、奖励模型集成(多个奖励模型投票)、长度归一化奖励、对抗训练专门抵抗已知 reward hacking 模式。
5.3 PPO 算法
5.4 PPO 训练的工程挑战
六、关键评估:RLHF 的效果
6.1 InstructGPT 的核心发现(来自原始论文)
6.2 对齐税(Alignment Tax)
七、DPO:直接偏好优化
7.1 DPO 的核心洞察
7.2 DPO 损失函数
7.3 DPO 与 PPO 的对比
方面
PPO-RLHF
DPO
训练流程
三阶段(SFT→RM→PPO)
两阶段(SFT→DPO)
模型数量
4个(Actor+Critic+RM+Ref)
2个(Policy+Reference)
算法复杂度
高(强化学习稳定性难)
低(监督分类)
超参数
多(PPO clip, KL β, advantage scale等)
少(主要是 β)
显存需求
极高(4个模型)
较低(2个模型)
在线探索
有(模型自己生成新数据)
无(使用固定偏好数据集)
性能
理论上更强(可以探索)
实践中差距较小
7.4 DPO 的若干改进变体(均已发表)
八、RLAIF:用 AI 反馈替代人类反馈
8.1 RLAIF 的动机
8.2 LLM-as-Judge
Prompt 给强大的 LLM(如 GPT-4):
"你是一个公正的评判者。请评判以下两个 AI 助手对用户问题的回复。
[用户问题]: {question}
[助手A的回复]: {response_A}
[助手B的回复]: {response_B}
请从有帮助性、准确性、深度等方面综合评判,说明哪个回复更好,以及原因。"
九、Rejection Sampling Fine-tuning(RS)
十、RLHF 的效果与局限
10.1 已被研究证实的 RLHF 正面效果
10.2 RLHF 已知的局限性
十一、RLHF 的前沿变体:KTO、ORPO 与迭代对齐
KTO(Kahneman-Tversky Optimization)
ORPO(Odds Ratio Preference Optimization)
SimPO:更简单的偏好优化
迭代 RLHF 与在线对齐
Reward Hacking(奖励黑客)与缓解策略

