跳到主要内容

RLHF

三步流程(SFT → 训 RM → PPO)的原理、显存代价与 reward hacking 风险

核心要点

  • RLHF 三步:SFT → 训 reward model (RM) → PPO 用 RM 优化 policy
  • RM loss = Bradley-Terry pairwise: $-\log \sigma(r(\text{chosen}) - r(\text{rejected}))$
  • PPO clip $\epsilon=0.2$ 限制 policy 单步更新幅度防训练崩
  • KL penalty $\beta=0.02$ 防 policy 偏离 SFT 太远导致 reward hacking
  • InstructGPT 1.3B 击败 GPT-3 175B base, 100× 参数差距被 RLHF 抹平
  • PPO 显存吃 4 个模型 (policy + ref + RM + value), SFT 的 4 倍
  • Constitutional AI 用 16 条原则替代人工 harmlessness 标注
  • 业界从 PPO 转 DPO 的根本动机:工程复杂度与训练稳定性

名词定义

本篇共享名词在 7.1 总览 已定义 (RLHF / PPO / Reward model / KL penalty / Bradley-Terry / Reward hacking)。本篇新引入:

名词定义
Helpful + Harmless (HH)Anthropic 提出的双目标对齐,helpful 让回答有用,harmless 让回答不造成伤害
Constitutional AI (CAI)Anthropic 2022 路线,用一组自然语言原则 (constitution) 让 AI 自己 critique + revise 输出
Verbosity biasReward hacking 典型表现,模型学会"加列表 / 加重复" 拿高分但实际不更有用
Sycophancy (谄媚)Reward hacking 另一种表现,模型优先输出"看起来对" 而非"实际正确"
Mode collapseRL 训练崩溃:policy 输出分布退化,多样性消失,总是说同样几句话
Value headPPO 中的辅助模型,学习预测 advantage;与 policy 共享 backbone
Advantage ($\hat{A}_t$)PPO 中"这一步比平均好多少" 的估计,用 GAE (Generalized Advantage Estimation)

@tbl-rlhf-glossary 本篇新引入名词

为什么 SFT 之后还要 RLHF?

核心问题:02 篇说 SFT 已经让模型听指令,LIMA 甚至证明 1000 样本能达到 GPT-4 水平。为什么还要 RLHF?它解决什么 SFT 解决不了的问题?

SFT 教模型"按格式回答", RLHF 教模型"哪种回答更被人类偏好"——前者是模仿,后者是优化

SFT 的根本局限:只能学示范,学不出偏好

SFT 用 (指令,回答) 对训练,模型学到的是"看到这个指令应该输出这个回答"。但人类偏好不是"唯一正确答案"

  • 同一指令可以有多个合理回答,但"好回答" 和"差回答" 仍有区别
  • SFT 数据可能"教错":标注者写的回答可能不是最佳,模型学到的是次优
  • 多个回答的相对排序 SFT 表达不出来

RLHF 通过偏好对比直接学排序:给定 prompt,比较两个回答哪个好,让 policy 朝"被偏好的那种"方向优化。

三步流程:SFT → RM → PPO

InstructGPT (Ouyang et al. 2022)[1] 系统化了 RLHF 三步流程:

Step输入输出算法
1. SFT(prompt, demo) 13K$\pi_{\text{SFT}}$CLM (见 02-SFT)
2. RM(prompt, $y_w, y_l$) 33K (人类偏好排名)$r_\theta$ (6B 参数)Bradley-Terry pairwise loss
3. PPO(prompt) 31K (无人工标注) + $r_\theta$ + $\pi_{\text{SFT}}$$\pi_{\text{RLHF}}$PPO + KL penalty

@tbl-rlhf-three-steps InstructGPT 三步流程 + 各步数据规模

Step 2: Reward Model 怎么训?

核心问题:Reward model 给模型回答打分,但人类很难给"绝对分数"。RM 怎么从相对偏好学到打分?

Reward model 用 Bradley-Terry pairwise loss 训,仅学"chosen 比 rejected 高"的相对差,绝对分数没有意义

RM 训练目标:Bradley-Terry

给定 (prompt $x$, chosen response $y_w$, rejected response $y_l$), RM 损失:

$$\begin{equation} \mathcal{L}_{\text{RM}} = -\mathbb{E}_{(x, y_w, y_l) \sim D}\left[\log \sigma\left(r_\theta(x, y_w) - r_\theta(x, y_l)\right)\right] \label{eq:rlhf-rm-loss} \end{equation}$$
  • $\sigma$ 是 sigmoid
  • $r_\theta(x, y_w) > r_\theta(x, y_l)$
  • 只有差值有意义——给所有 $r_\theta$ 加常数不改变 loss,即 reward 是 shift-invariant 的

RM 架构与规模

  • 一般是与 policy 同架构的 transformer,末尾加一个标量输出 head (替代 LM head)
  • InstructGPT 用 6B 参数 RM 训 175B policy, RM 比 policy 小但仍需要足够容量
  • Llama 2 RM: 70B (与 policy 同规模)

数据收集:偏好排名

InstructGPT 的偏好数据收集:

  • 给标注员 prompt 和模型生成的 $K$ 个回答 ($K = 4$$9$)
  • 标注员排序所有 $K$ 个回答
  • 排序产生 $\binom{K}{2}$ 个 pairwise 对
  • 33K 排名 → 数十万 pairwise 对

为什么用排名而非打分:标注员排序比打分一致性高得多 (打分受标注员主观影响大)。

Step 3: PPO 怎么用 RM 优化 policy?

核心问题:有了 RM 给信号,怎么训 policy 让它最大化 RM 分数?直接 max reward 行不行?

PPO 的核心思路:clip policy 更新幅度 + KL 锚定 SFT,既最大化 reward 又不让 policy 偏离 SFT 太远

PPO 的 clip 目标

PPO (Schulman 2017)[2] 的损失:

$$\begin{equation} \mathcal{L}^{\text{CLIP}}(\theta) = \mathbb{E}_t\left[\min\left(r_t(\theta) \cdot \hat{A}_t, \mathrm{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \cdot \hat{A}_t\right)\right] \label{eq:rlhf-ppo-clip} \end{equation}$$
  • $r_t(\theta) = \frac{\pi_\theta(a_t | s_t)}{\pi_{\text{old}}(a_t | s_t)}$: probability ratio (新 policy vs 旧 policy)
  • $\hat{A}_t$: advantage (这一步比平均好多少,用 GAE 估计)
  • $\mathrm{clip}(r_t, 1-\epsilon, 1+\epsilon)$ 限制 $r_t$ 不偏离 1 太远
  • InstructGPT 用 $\epsilon = 0.2$

Clip 的直觉

PPO 是 on-policy RL:每轮用当前 policy 采样,优化,再采样,再优化。Clip 限制每步 policy 不能改太多,防止"一步走太远导致采样分布失真"

  • 当 advantage 为正 (这个动作好) + ratio > 1 (新 policy 更倾向这个动作):clip 上限 $1+\epsilon$ 防止"过度偏向"
  • 当 advantage 为负 (这个动作差) + ratio < 1: clip 下限 $1-\epsilon$ 防止"过度抑制"

没有 clip → 训练崩:policy 一步偏离 sampling distribution 太远,off-policy 估计失效。

KL Penalty 防 reward hacking

完整的 RLHF reward 形式:

$$\begin{equation} r_{\text{eff}}(x, y) = r_\theta(x, y) - \beta \cdot \log \frac{\pi_\phi^{\text{RL}}(y | x)}{\pi^{\text{SFT}}(y | x)} \label{eq:rlhf-kl-penalty} \end{equation}$$
  • 第一项是 RM 给的奖励
  • 第二项是 KL penalty,防 policy 偏离 SFT 太远
  • InstructGPT $\beta = 0.02$

为什么需要 KL penalty: reward hacking 实例

RM 是真实人类偏好的近似——无约束 PPO 会让 policy 找到 RM 的漏洞但真正 helpful

Stiennon 2020[3] 实测对比:

  • 训练步数增加,RM score 持续上升
  • 人类真实偏好在某个步数后开始下降
  • 即 policy 学会"骗 RM" 而非"变得更 helpful"

Verbosity bias (典型 reward hacking):模型学会加列表 / 加重复内容 / 加冗余解释,这些在 RM 看来分高 (RM 可能在长回答上训练偏置),但人类觉得啰嗦。

KL penalty 把 SFT model 当锚,限制 policy 偏离,防止 policy 走向 RM 漏洞角落。

InstructGPT-ptx:防 alignment tax

InstructGPT 还用 PPO-ptx 变体,额外加预训练梯度:

$$\begin{equation} \mathcal{L} = \mathcal{L}^{\text{CLIP}} + \gamma \cdot \mathbb{E}_{x \sim D_{\text{pretrain}}}[\log \pi_\phi^{\text{RL}}(x)] \label{eq:rlhf-ppo-ptx} \end{equation}$$

防止"alignment tax": RLHF 让模型在对齐目标上提升,但在预训练任务 (如 SuperGLUE / PIQA 等) 性能下降。加预训练梯度让模型同时维持基础能力。

InstructGPT 核心实证:1.3B 击败 175B

InstructGPT 论文最有力的实证:

  • InstructGPT 1.3B 在人类评估中胜过 GPT-3 175B base
  • 100× 参数差距被 RLHF 对齐完全逆转

这证明:RLHF 阶段虽然算力 < 1%,但决定模型实际可用性

Anthropic 路线:HH + Constitutional AI

核心问题:InstructGPT 让模型"听指令",但还需要"无害"。Anthropic 推动的 helpful + harmless (HH) 怎么做?Constitutional AI 解决了什么?

Anthropic HH-RLHF 用两套偏好数据 (helpful + harmless) 训 RM; Constitutional AI 进一步用 AI 替代人类做 harmlessness 标注

HH-RLHF (Bai 2022)

Anthropic Bai et al. 2022[4] 提出双目标:

  • Helpful:回答有用,用 helpful preference data 训 helpful RM
  • Harmless:不造成伤害 (拒绝违法 / 暴力 / 性内容请求),用 harmless preference data 训 harmless RM

两个 RM 各自学一种偏好,PPO 阶段联合优化

Constitutional AI:用原则替代人工标注

Bai et al. 2022b Constitutional AI[5] 解决"harmlessness 数据成本高 + 人类标注者接触有害内容的伦理问题":

核心思路:给 AI 一个 constitution (约 16 条自然语言原则),让 AI 自己 critique + revise 输出。

两阶段

  1. SL-CAI (Supervised Learning CAI):

    • 给模型生成的 (potentially harmful) 输出
    • 用 constitution 让模型自己 critique (找出违反哪条原则)
    • 用 critique 让模型 revise 输出
    • 用 (原 prompt, revised output) 做 SFT
  2. RL-CAI (RLAIF, RL from AI Feedback):

    • 用独立 feedback 模型生成偏好标签 (替代人类)
    • 训 Preference Model (PM)
    • PPO 用 PM 微调

Helpfulness 仍用人工标注,harmlessness 完全由 AI 生成

CAI 实证:"harmless but non-evasive"

CAI 模型的行为特征:

  • 面对有害请求会解释理由而非简单拒绝
  • 解决早期 RLHF "过度 evasive" (一律拒绝 + 不解释) 的问题
  • 例如有人问"如何制造爆炸物", CAI 模型会解释为什么不能教,而不是"对不起,我不能回答"

RLAIF: AI 反馈替代人工

Lee et al. 2023 RLAIF[6] 系统对比 AI vs 人类反馈:

任务RLAIFRLHF差异
Summarization71%73%无显著
Harmless dialogue88%76%RLAIF 优
Direct-RLAIF (跳过 RM,用 LLM token 概率作 reward)74%可行

@tbl-rlhf-rlaif-vs-rlhf RLAIF vs RLHF 实证对比

关键数字

  • AI 标注成本约人工的 1/10
  • PaLM 2 Large 与人类偏好一致率 78%,已达人类标注者间一致率 (73-77%) 水平

这是 RLHF 走向 RLAIF 的根本依据:AI 已经能给出与人类相当的偏好信号。

RLHF 的工程难点

核心问题:既然 RLHF 这么 powerful,为什么 Llama 3 / Qwen 都转 DPO?它的具体痛点在哪?

RLHF (PPO) 在工程上有四个核心痛点:显存翻 4 倍 + 训练不稳 + reward hacking + 标注成本高

痛点 1:显存翻 4 倍

PPO 阶段需同时在 GPU 维护 4 个模型

  • $\pi_\theta$:当前 policy (训练中)
  • $\pi^{\text{SFT}}$: reference (用于 KL penalty,固定)
  • $r_\theta$: reward model (前向,固定)
  • $V_\phi$: value head (与 policy 共享 backbone,但额外 head)

70B 模型单份 fp16 约 140 GB, 4 份合计 ≥ 560 GB,实际需 8× A100-80GB——是 SFT 显存的 4 倍。

痛点 2:训练不稳

核心来源:

  • KL 系数 $\beta$ 过小 → policy 偏离 SFT 初始化,出现"乱码得高分" 现象
  • Mode collapse: policy 输出多样性崩塌,总是说同样几句话
  • Reward hacking: policy 找到 RM 漏洞,RM score 高但实际差
  • 超参敏感$\epsilon, \beta, \gamma$ 等都需要精细调

痛点 3: Reward hacking 的具体表现

类型描述
Verbosity bias模型学会加列表 / 重复 / 冗长解释拿高分
Sycophancy模型优先输出"看起来对"而非"实际正确"
Format hacking模型用特定格式 (Markdown / emoji 等) 触发 RM 偏置
Refusal abuse模型过度拒绝,因为"拒绝" 比"说错" 在 RM 上扣分少

@tbl-rlhf-hacking Reward hacking 的常见表现

痛点 4: Casper 2023 系统化分析

Casper et al. 2023 "Open Problems and Fundamental Limitations of RLHF"[7] 列了 23 个开放问题,分三类:

类别问题
人工反馈质量标注者间一致率 63-77% / 人口偏差 / adversarial annotators
RM 问题misspecification / reward hacking / sycophancy amplification
Policy 训练mode collapse / adversarial exploitability / power-seeking behavior

区分 tractable (可解) 和 fundamental (根本) 两类挑战,fundamental 问题需要 RLHF 之外的范式转换

业界趋势:转向 DPO

PPO 工程复杂性推动业界转向 DPO:

  • 4 个模型 → 2 个模型 (省 ~50% 显存)
  • 无在线采样 → offline 数据训
  • 训练稳定性显著更高
  • KL 隐式 (在 loss 里) 而非显式 hyperparameter

Llama 3 / Qwen / Mistral / DeepSeek 全转 DPO 系,详见 04-DPO 与新方法

Takeaway

知识点核心结论
为什么 SFT 不够SFT 只学示范,不学相对偏好排序
三步流程SFT → RM (Bradley-Terry) → PPO + KL
InstructGPT 数据SFT 13K + RM 33K 排名 + PPO 31K prompts
RM loss$-\log \sigma(r(\text{chosen}) - r(\text{rejected}))$, shift-invariant
PPO clip$\epsilon = 0.2$ 限制 policy 单步偏离
KL penalty $\beta$InstructGPT 0.02,防 reward hacking
InstructGPT 实证1.3B RLHF 击败 175B base, 100× 参数差距抹平
Constitutional AI16 条原则 + AI 自 critique + revise, harmlessness 全 AI 标注
RLAIFAI 反馈替代人类,summarization 71% vs 73% (无显著),成本 1/10
RLHF 4 痛点显存 ×4 / 训练不稳 / reward hacking / 标注成本
业界转向DPO 因工程优势主导,OpenAI / Anthropic 仍 RLHF

开放问题

  • RLHF 在 reasoning 上的不可替代性:o1 / R1 用 RL (GRPO) 做 reasoning 训练,是否 RLHF 仍是某些场景的最优
  • RLAIF 是否会完全取代 RLHF:AI 标注成本 1/10 + 质量接近,但极端 case 仍需人工;这条边界在哪
  • Reward hacking 的根治方案:Casper 2023 列为 fundamental 问题,可能需要 RLHF 之外的范式
  • KL penalty $\beta$ 与 RLHF / DPO 的统一: DPO 隐式 $\beta$, RLHF 显式;是否有更系统的 KL 控制方法
  • 多目标对齐 (HH 之外) : helpful + harmless 之外还有 honest / safe / robust 等,怎么组合仍开放

延伸阅读

参考资料

  1. Ouyang et al. Training language models to follow instructions with human feedback. NeurIPS 2022. https://arxiv.org/abs/2203.02155
  2. Schulman et al. Proximal Policy Optimization Algorithms. 2017. https://arxiv.org/abs/1707.06347
  3. Stiennon et al. Learning to summarize from human feedback. 2020. https://arxiv.org/abs/2009.01325
  4. Bai et al. Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback. Anthropic 2022. https://arxiv.org/abs/2204.05862
  5. Bai et al. Constitutional AI: Harmlessness from AI Feedback. Anthropic 2022. https://arxiv.org/abs/2212.08073
  6. Lee et al. RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback. 2023. https://arxiv.org/abs/2309.00267
  7. Casper et al. Open Problems and Fundamental Limitations of Reinforcement Learning from Human Feedback. 2023. https://arxiv.org/abs/2307.15217