2024年9月13日

RLHF 总览

RLHF 是通过收集人类偏好数据、训练奖励模型、再用强化学习优化语言模型的三个阶段流程,使模型输出更符合人类期望。

知识库大模型训练与对齐llmmodelalignmentrlhf

先说结论

RLHF 是通过收集人类偏好数据、训练奖励模型、再用强化学习优化语言模型的三个阶段流程,使模型输出更符合人类期望。

为什么我会单独记这一篇

SFT 解决了「模型知道如何回答」,但无法解决「什么是好的回答」。SFT 本质是模仿学习,只能复制人类示范者的输出分布,但:

  • 人类示范者的质量有上限
  • 模型可能学到表面模式而非深层意图
  • 无法区分「好」与「更好」之间的细微差异

RLHF 通过引入人类偏好信号作为奖励,让模型在「什么是好的」这个维度上进一步优化。

先把核心脉络捋清楚

InstructGPT:RLHF 的里程碑

InstructGPT(Ouyang et al., 2022)确立了「SFT → RM → PPO」三阶段管道。

阶段一:SFT

  • 收集人类标注者编写的示范数据
  • 在 GPT-3 上进行标准监督微调
  • 产出 SFT 模型 πSFT\pi^{\text{SFT}}

阶段二:RM 训练

  • 用 SFT 模型对每个 prompt 生成多个回复
  • 人类标注者对这些回复进行排名
  • 训练奖励模型 rϕ(x,y)r_\phi(x, y) 预测人类偏好

阶段三:PPO 强化学习

  • 目标函数:maxπθEx,y[rϕ(x,y)]βE[KL(πθπref)]\max_{\pi_\theta} \mathbb{E}_{x,y}[r_\phi(x,y)] - \beta \cdot \mathbb{E}[\text{KL}(\pi_\theta \| \pi^{\text{ref}})]

核心发现:1.3B 参数的 InstructGPT 在人类评估中优于 175B 的原始 GPT-3。

RLHF 完整流程

预训练模型
    │
    ▼
[阶段1] SFT ─── 在人类示范数据上微调
    │
    ├──────────────────────┐
    ▼                      ▼
[阶段2] RM训练          [保留为参考模型]
    │                   π_ref
    ▼
[阶段3] PPO训练
    │  └── 奖励 = r_φ(x,y) - β·KL(π_θ || π_ref)
    ▼
最终对齐模型

数据需求

阶段 数据类型 规模
SFT 指令-回复对 ~13k 条
RM 偏好排序数据 ~33k 对比组
PPO prompt 集 + 在线采样 ~31k prompts

原理拆开看

RLHF 的核心是一个受约束的优化问题:在不过度偏离参考模型的前提下,最大化奖励模型给出的分数。KL 散度惩罚确保策略不会退化为「奖励投机」。

放到工程里怎么落

迭代式 RLHF

工业实践中 RLHF 通常是迭代的:

  1. 用当前模型生成输出
  2. 收集新的人类偏好数据
  3. 重新训练 RM
  4. 用新的 RM 进行 PPO 训练
  5. 重复

与相邻概念的区别

维度 SFT RLHF (PPO) DPO
模型数量 1 4 2
需要在线采样
显存需求 极高
训练稳定性
效果上限
工业成熟度 极高

设计时真正要权衡什么

  • RLHF vs DPO:DPO 更简单稳定,RLHF 上限可能更高但极难调参
  • RM 数据量 vs 质量:少量高质量偏好对 > 大量低质量
  • KL 惩罚系数 β:太小导致奖励投机,太大限制优化空间

容易踩的坑

  1. 奖励投机(Reward Hacking):模型利用 RM 漏洞获得高分但实际输出无意义
  2. 训练不稳定:PPO 超参数极其敏感,训练可能突然发散
  3. 显存爆炸:需要同时维护 4 个模型(策略/参考/奖励/价值函数)
  4. 冗长回复偏差:RM 可能偏好更长的回复

工程落地时我会怎么做

  • 头部 AI 公司(OpenAI、Anthropic、Google)的标准做法
  • 中小团队优先考虑 DPO
  • 如需使用 PPO,用 HuggingFace TRL 或 OpenRLHF 等成熟框架

如果要对外讲,可以怎么概括

"RLHF 是当前最强效的对齐方法,分三步:先 SFT 建立基本能力,再训练 Reward Model 学习人类偏好,最后用 PPO 优化策略模型。关键创新是用 KL 惩罚防止奖励投机。InstructGPT 证明 1.3B 的 RLHF 模型可以超越 175B 的原始模型。但 PPO-RLHF 工程复杂度极高(需要 4 个模型同时运行),所以 DPO 正在成为更主流的选择。"

最后记几条

  1. RLHF = SFT → RM → PPO 三阶段
  2. InstructGPT:1.3B RLHF > 175B 原始 GPT-3
  3. KL 惩罚是防止奖励投机的核心机制
  4. 需要 4 个模型同时运行(策略/参考/奖励/价值函数)
  5. DPO 正在成为更实用的替代方案

延伸阅读

延伸阅读

参考资料

  • InstructGPT (Ouyang et al., 2022) — arxiv.org/abs/2203.02155
  • HuggingFace TRL 文档 — huggingface.co/docs/trl