04 RLHF 变体:DPO、RRHF、GRPO
04 RLHF 变体:DPO、RRHF、GRPO
PPO-RLHF 虽然有效,但需要训练多个模型(奖励模型、价值函数),实现复杂。近年来出现了多种简化方法:DPO 直接从偏好数据优化,RRHF 用排序替代强化学习,GRPO 用组内相对奖励替代单独的奖励模型。本文详细推导这些方法的数学原理。
1. DPO:Direct Preference Optimization
1.1 动机:绕过奖励模型
PPO-RLHF 的痛点:
- 需要先训练奖励模型
- 需要在 PPO 训练中使用奖励模型
- 奖励模型可能成为"中间瓶颈"
问题:能否直接从偏好数据优化策略,不需要显式的奖励模型?
DPO 的核心洞察:我们可以从最优策略反推奖励函数,然后直接优化策略。
1.2 从 KL 约束的奖励最大化推导
原始问题:
问题:最优策略 是什么?
1.3 最优闭式解推导
Step 1:展开目标函数
Step 2:引入拉格朗日乘子(归一化约束)
策略必须满足 。
拉格朗日函数:
Step 3:对 求导
对每个 :
Step 4:令导数为 0
解出 :
其中 是常数。
Step 5:利用归一化确定常数
是配分函数,记 。
Step 6:最优策略表达式
1.4 从最优策略反推奖励
关键推导:从 的表达式可以得到 的表达式。
从 的表达式:
两边取对数:
整理得到奖励函数:
注意: 只依赖于 ,对于固定的 是常数(不依赖 )。
1.5 DPO 目标函数推导
核心洞察:在 Bradley-Terry 模型中,重要的是奖励差值,而不是绝对值。
从 Bradley-Terry 模型:
将奖励表达式代入:
关键:配分函数 在差值中抵消了!
1.6 DPO 最终目标函数
偏好概率:
DPO 损失函数:
1.7 DPO 的梯度分析
梯度形式:
直观理解:
- 增大 (chosen 的概率)
- 减小 (rejected 的概率)
- 权重由模型"判断错误程度"决定
1.8 DPO vs PPO-RLHF 对比
| 特性 | PPO-RLHF | DPO |
|---|---|---|
| 奖励模型 | 需要 | 不需要 |
| 参考模型 | 需要(用于 KL 惩罚) | 需要(用于计算目标) |
| 训练过程 | 强化学习(复杂) | 监督学习(简单) |
| KL 约束 | 显式惩罚 | 隐式(通过目标函数) |
| 稳定性 | 需要调参 | 更稳定 |
| 效果 | 通常更好 | 通常略差但够用 |
2. RRHF:Rank Responses to Align
2.1 核心思想
问题:PPO 和 DPO 都需要参考模型,能不能更简单?
RRHF 思路:直接学习对多个回复排序,不需要显式的奖励模型或参考模型。
2.2 数据格式
给定 prompt 和一组回复 ,人类标注从好到坏的排序:
2.3 RRHF 损失函数
RRHF 使用 List-wise 排序损失:
其中 是模型对 的打分。
简化理解:对于每对 (其中 优于 ),最大化模型正确排序的概率。
2.4 与 DPO 的关系
RRHF 可以看作 DPO 的多回复扩展:
- DPO:只考虑一对
- RRHF:考虑所有排序对
3. Rejection Sampling Fine-Tuning (RFT)
3.1 核心思想
最简单的对齐方法:用奖励模型筛选好回复,然后 SFT。
3.2 算法流程
Rejection Sampling:
1. 用当前模型生成多个候选回复 {y_1, ..., y_k}
2. 用奖励模型打分:s_i = r_φ(x, y_i)
3. 选择最高分回复 y* = argmax_i s_i
4. 用 (x, y*) 进行 SFT
3.3 数学分析
等价于以下目标:
局限:只能在当前策略能生成的回复中选择,可能错过全局最优。
4. GRPO:Group Relative Policy Optimization
4.1 动机:DeepSeek 的需求
DeepSeek R1 的挑战:
- 需要对齐推理模型
- 训练单独的奖励模型成本高
- PPO 的价值函数训练不稳定
GRPO 创新:用组内相对比较替代绝对奖励,不需要单独的奖励模型。
4.2 GRPO 核心思想
对于每个 prompt :
- 生成一组回复 (组大小 )
- 用某种规则(如规则奖励或弱奖励模型)对每个回复打分
- 在组内标准化分数得到优势
4.3 组内标准化
计算组内均值和标准差:
标准化后的优势:
直观理解:
- :这个回复在组内平均以上
- :这个回复在组内平均以下
4.4 GRPO 目标函数
结合 PPO 的 Clip 目标:
4.5 GRPO 的优势
| 特性 | PPO-RLHF | GRPO |
|---|---|---|
| 奖励模型 | 需要单独训练 | 不需要(或弱的规则奖励) |
| 价值函数 | 需要训练 | 不需要 |
| 组内比较 | 无 | 核心机制 |
| 计算效率 | 中等 | 更高 |
| 稳定性 | 需要调参 | 更稳定 |
4.6 GRPO 与 PPO 的关键区别
PPO:需要单独的价值函数估计优势
GRPO:用组内相对排名估计优势
好处:
- 不需要训练价值函数(减少一个模型)
- 组内比较更稳定(减少奖励模型的误差影响)
5. 方法对比总结
| 方法 | 奖励模型 | 价值函数 | 参考模型 | 训练方式 | 复杂度 |
|---|---|---|---|---|---|
| PPO-RLHF | 需要训练 | 需要训练 | 需要 | RL | 高 |
| DPO | 不需要 | 不需要 | 需要 | 监督学习 | 低 |
| RRHF | 不需要 | 不需要 | 不需要 | 排序学习 | 低 |
| RFT | 需要(筛选用) | 不需要 | 不需要 | SFT | 最低 |
| GRPO | 不需要/弱规则 | 不需要 | 需要(KL) | RL | 中 |
6. 选择指南
| 场景 | 推荐方法 |
|---|---|
| 追求最佳效果 | PPO-RLHF(如果有资源) |
| 资源有限,追求简单 | DPO |
| 只有排序标签 | RRHF |
| 推理模型/需要不使用单独奖励模型 | GRPO |
| 快速迭代/原型 | RFT |
7. 未来趋势
- 更简单的对齐方法:DPO 和 GRPO 展示了"更简单也能有效"的方向
- 过程奖励:不仅看最终回复,还看推理过程
- 迭代式对齐:多轮生成-偏好-优化循环
- 弱奖励信号:用规则或弱模型替代强奖励模型
8. 参考文献
- Rafailov, R., et al. (2023). "Direct Preference Optimization: Your Language Model is Secretly a Reward Model." NeurIPS.
- Yuan, W., et al. (2023). "RRHF: Rank Responses to Align Language Models with Human Feedback." arXiv.
- Dong, H., et al. (2023). "RAFT: Reward Ranked Fine-Tuning for Generative Foundation Model Alignment." arXiv.
- DeepSeek-AI. (2025). "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning." arXiv.
- Wang, Z., et al. (2024). "HelpSteer2: Open-source dataset for training helpfulness and harmless reward models." arXiv.