Skip to content

03 RLHF:DPO 与 PPO-RLHF

学习理念:前面讲的都是"RL 让 AI 玩游戏",现在终于到正题了——怎么用 RL 训练 LLM? 这就叫 RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)。用一个比方记住全部:RLHF = 教一个实习生写周报,先让他看 100 份优秀周报(SFT),然后你告诉他对在哪错在哪(RM),最后让他自己写、你给反馈、他反复改(PPO)。

预习一道面试题:"RLHF 的三阶段分别解决了什么问题?"——答:"SFT 让它学会写回答,RM 让它学会判断好坏,PPO 让它学会写出好回答。"


📖 阅读优先级

等级章节说明
🔴 必须深入全部RLHF 是 LLM 对齐核心技术,面试必考
🟡 理解即可DPO 回顾Ch21 已讲,这里只做对比

一、先搞清两个概念的区别

🟡 【理解即可】 很多人搞混 SFT 和 RLHF 的区别,一个比方说清楚。

SFT(监督微调)= 背答案

给你 1 万道"题目-标准答案",你背下来。考试碰到一样的题,你答得对;碰到没见过的、需要推理的题,你就懵了。

RLHF(人类反馈强化学习)= 学思路

给你 1 万道题但不给答案,你自己试着做,然后老师告诉你"这步推理有道理,那步逻辑跳了"——你学会的是思路,而不是答案

这就是为什么 GPT-4 级别的模型都用了 RLHF——光背答案不够,得学会"什么回答是好的、什么回答是差的"。


二、RLHF 三阶段——"教实习生写周报"

🔴 【必须深入】 整个 RLHF 的本质就是一个"实习生培养计划"。

阶段一:SFT——让 TA 先看优秀范例

你是 team lead,招了个实习生。
第一步不是让 TA 写周报,而是让 TA 先看 100 份优秀周报:
"你看,别人是这样写的:做了什么、遇到什么困难、下周计划。"

对应到 LLM:用高质量的(指令, 回答)数据对做监督微调
模型学会:人类指令长什么样、好回答长什么样

阶段二:训练 Reward Model(RM)——教会 TA"怎么判断好坏"

现在实习生开始尝试写周报了。你不可能每份都自己看——太累了!
所以你先训练一个"评分助手"(RM):
  "拿 10 份周报给评分助手排序:这份最好、这份中等、这份最差"
  评分助手学会了你的品味,之后 TA 写的周报它就能自动打分。

对应到 LLM:训练一个 Reward Model
  输入:(prompt, answer)  →  输出:一个分数
  训练数据:人类排序的(chosen, rejected)对

阶段三:PPO 微调——"TA 写,评分助手打分,反复迭代"

现在开始正式训练了:
  ① 实习生(Actor = LLM)写周报
  ② 评分助手(RM)打分——"这份 8 分,内容充实"
  ③ 还有一个"老实习生"(Reference = 冻结的 SFT 模型)在旁边比着:
     "新实习生写的和我的差距不能太大,否则 TA 可能为了高分瞎编"
  ④ 还有一个"质量经理"(Critic)在评估"这个实习生当前水平值多少分"
  ⑤ 综合以上所有反馈 → 更新实习生(Actor)
  ⑥ 回到 ①,重复几万轮

对应到 LLM:PPO-RLHF 训练
  Actor = 正在训练的 LLM
  RM = 回答打分器
  Reference = 冻结的 SFT 模型(防止偏离)
  Critic = 价值评估器

整个过程如下图(用文字描述)

SFT 阶段:
  数据: (指令, 标准回答) → 训练 LLM 学会回答格式

RM 阶段:
  数据: (指令, 回答A>回答B) → 训练打分模型

PPO 阶段:
  ┌─ Prompt → Actor(LLM) → 回答 ──→ RM 打分 ──→ 优势 A_t ──┐
  │                                    ↑                    │
  │                              Reference(防偏离)          │
  │                                    ↑                    │
  │                              Critic(估值)               │
  └──────────────────────────────────────────────────────────┘
                ↓ PPO 裁剪 + KL 惩罚
            更新 Actor

三、四个模型,各司其职

🔴 【必须深入】 PPO-RLHF 需要 4 个模型,面试可能会问"为什么需要 Reference?为什么需要 Critic?"

模型干的事类比训练状态
Actor(策略模型)生成回答实习生✅ 在训练
Reference(参考模型)和 Actor 对比,防止偏离太远老实习生❌ 冻结
Reward Model(奖励模型)给回答打分评分助手✅ 单独训练
Critic(价值模型)预估"当前状态值多少钱"质量经理✅ 在训练

🔴 【必须深入】 为什么不能只用 RM?因为 RM 只打分、不提供"梯度方向"。PPO 需要知道"这个回答比预期好多少"——这就是 Critic 干的事(优势估计 A_t)。


四、DPO vs PPO-RLHF——"直接教 vs 反复改"

🟡 【理解即可】 DPO 在 Ch21 已讲,这里只对比。

用一个比方对比:

DPO = 你给实习生看两份周报:"这份好,那份差,记住了啊。"
      实习生记住区别,下次直接写好那份的风格。
      优点:简单,不需要评分助手,一轮搞定。
      缺点:上限取决于你给的对比案例的质量。

PPO-RLHF = 你让 TA 写 → 你给反馈 → TA 改 → 再给反馈 → 再改...
      优点:通过反复迭代,理论上能越来越好。
      缺点:需要 4 个模型配合,实现复杂,训练不稳定。
维度DPOPPO-RLHF
实现难度
需要几个模型2 个(Actor + Ref)4 个(Actor + Ref + RM + Critic)
训练稳定性稳定容易崩
效果上限受偏好数据限制理论上限更高
谁在用大多数开源模型GPT-4、Claude

五、本节小结

RLHF = 教实习生写周报
  ├── SFT = 先看 100 份优秀范例
  ├── RM = 训练一个评分助手
  └── PPO = 写→打分→反馈→改写(反复迭代)
        ├── Actor = 实习生(LLM)
        ├── RM = 评分助手(回答打分器)
        ├── Reference = 老实习生(防止写偏)
        └── Critic = 质量经理(状态估值器)

OPC 超级个体实战指南