
🧠 记忆锚点:RLHF 先学评分器再做强化学习;DPO 把偏好关系直接写进损失,省掉奖励模型与 PPO。
💡 答案要点
DPO = Direct Preference Optimization(直接偏好优化)
核心思想: 跳过奖励模型,直接从偏好数据优化策略。
RLHF vs DPO:
| 维度 | RLHF | DPO |
|---|---|---|
| 流程复杂度 | 三阶段(SFT→RM→PPO) | 两阶段(SFT→DPO) |
| 训练稳定性 | 不稳定(PPO 难调) | 稳定(监督学习) |
| 计算成本 | 高(需训练 RM + PPO) | 低(只需一次微调) |
| 效果 | 好 | 接近甚至超越 RLHF |
| 显存占用 | 需同时加载多个模型 | 只需一个模型 |
DPO 工作原理:
输入数据:{问题, 好答案, 差答案}
损失函数:
L = -log(σ(β·log(π_θ(y_好|x)/π_ref(y_好|x))
- β·log(π_θ(y_差|x)/π_ref(y_差|x))))
核心思想:
- 增加"好答案"的概率
- 降低"差答案"的概率
- 不偏离参考模型太远简化理解:
RLHF:
问题 → 生成答案 → 奖励模型打分 → PPO优化 → 更新模型
DPO:
问题 + 好/差答案对 → 直接优化概率 → 更新模型对比示例(Llama 2 7B,Helpfulness 数据集):
| 方法 | 训练时间 | GPU 显存 | Win Rate |
|---|---|---|---|
| RLHF | 12h | 80GB(4卡) | 68.5% |
| DPO | 4h | 40GB(2卡) | 69.8% |
面试话术:
"DPO 直接从偏好对优化策略,省去了在线采样和显式奖励模型,工程链路通常比经典 PPO 式 RLHF 简单。但它不保证效果不下降:结果取决于偏好数据质量、参考策略、分布外泛化和目标任务,应与 SFT、PPO/GRPO 等基线在同一评测集上比较。"