🧠 图解记忆:RLHF 先学奖励再强化,DPO 直接学偏好差;点击图片可查看原图。
两者都是"对齐"阶段的技术,目标相同:让模型输出符合人类偏好。区别在于实现路径。
一句话版本
- RLHF:训练一个奖励模型打分,再用强化学习(PPO)优化策略
- DPO:跳过奖励模型,直接在偏好数据上优化,数学上等价于 RLHF 的最优解
完整对比(面试重点)
| 维度 | RLHF(PPO) | DPO |
|---|---|---|
| 需要奖励模型 | ✅ 是 | ❌ 否 |
| 需要模型数量 | 4 个(策略/参考/奖励/价值) | 2 个(策略/参考) |
| 训练方式 | 在线采样 + PPO 强化学习 | 离线偏好对直接优化 |
| 实现复杂度 | 极高,训练不稳定 | 中,稳定简单 |
| 灵活性 | 高(可在线迭代、多轮采样) | 低(依赖固定偏好数据) |
| 数据要求 | 可在线生成对比 | 需高质量偏好对(垃圾进垃圾出) |
| 成本 | 高 | 低 |
| 当前趋势 | 大厂精细化场景 | ✅ 主流默认选择 |
简版原理
python
# DPO 核心思想(伪代码):让"好回答"的概率上升、"差回答"的概率下降
# loss = -log σ( β * (log π(y_good|x) - log π_ref(y_good|x))
# - β * (log π(y_bad|x) - log π_ref(y_bad|x)) )
# 不需要奖励模型,直接拉大好/坏回答的隐式奖励差顺带一提:GRPO(DeepSeek 提出)
- 同一 prompt 生成多个回答,组内相对比较打分
- 不需要奖励模型,也不需要严格的偏好对
- 是 RLHF 和 DPO 之间的折中,适合可验证任务(数学/代码)
工程选型建议
- 资源有限、数据规整 → DPO(大部分项目首选)
- 有标注团队、追求极致效果、需在线迭代 → RLHF
- 可验证任务、数据不规整 → GRPO
面试话术:
"RLHF 和 DPO 目标一致但路径不同:RLHF 先训奖励模型再用 PPO 优化,需要维护 4 个模型、训练不稳定但灵活;DPO 直接对偏好对构造损失,数学上等价于 RLHF 的最优解,简单稳定,是当前主流。选型上:资源有限用 DPO,追求极致用 RLHF,可验证任务考虑 GRPO。我们微调项目就用 DPO 做对齐,一周就能收敛。"
