RLHF变种方法
传统RLHF分为三个阶段(SFT → RM → PPO),流程复杂,对计算资源要求高。近年来出现了很多简化RLHF的方法,直接从偏好数据学习,不需要PPO,降低了训练复杂度。
DPO(Direct Preference Optimization)
核心思想
DPO(Direct Preference Optimization,直接偏好优化)不需要显式训练奖励模型,也不需要PPO,直接用二元分类损失端到端优化偏好,大大简化了RLHF pipeline。
核心结论:在某些假设下,RLHF的优化目标可以转换为一个简单的二元交叉熵损失,直接在偏好数据上训练。
损失函数
对于偏好数据(x是prompt,yw是更优回答,yl是较差回答),DPO的损失:
LDPO(π,πref)=−E(x,yw,yl)∼D[logσ(βlogπref(yw∣x)π(yw∣x)−βlogπref(yl∣x)π(yl∣x))]
其中:
- π 是我们要优化的策略
- πref 是初始SFT参考模型
- β 是温度超参数,控制与参考模型的KL散度强度
为什么简单?
- 不需要单独训练奖励模型
- 不需要PPO强化学习
- 就是一个标准的有监督分类损失,和SFT一样简单
- 只需要偏好数据就能训练,一个阶段完成
特点
- 效果通常和RLHF相当甚至更好
- 训练简单,只需要一次微调,显存占用低很多
- 成为目前最流行的RLHF替代方案
- β相当于KL惩罚,控制模型不要离参考模型太远
其他主要变种
KTO(Knowledge Preference Optimization)
- 基于DPO,同时利用偏好数据和已知正负样本
- 不仅可以比较哪个更好,还可以直接学习什么样的回答好/不好
- 适合数据混合场景,灵活性更高
IPO(Implicit Preference Optimization)
- 对DPO的目标函数进行修正,解决边界情况优化问题
- 改善训练稳定性
RRHF(Rank Response from Human Feedback)
- 不需要强化学习,直接对排序后的回复用排名损失训练
- RRHF对不同模型生成的回复排序,通过排名损失让模型对齐人类偏好
- 训练好的模型可以同时作为生成模型和奖励模型
- 实现简单,不需要RM和PPO
RLAIF(RL from AI Feedback)
- AI替代人工做偏好标注,降低成本
- SFT阶段:AI自我批评修正,生成高质量数据
- RL阶段:AI评估生成样本,得到AI偏好数据集训练RM,再做RL
- 研究表明,RLAIF效果和人工RLHF相当,大大降低标注成本
Constitutional AI
- 基于宪法(人类提供的原则)做自我对齐
- 红队攻击让模型生成有害回复,然后让模型自我修正
- 不需要人工对每个样本做偏好排序,只需要提供原则
- Anthropic Claude 采用了这个方法
HIR(Hindsight Instruction Relabeling)
- 基于后见之明重新标记指令
- 采样得到模型回答后,根据对齐得分重新标注指令
- 把失败案例转化为有用训练数据
- 在多个任务上效果优于RLHF
ReST(Reinforced Self-Training)
- 离线生成改进数据集,迭代在高质量子集上训练
- 比在线RLHF效率更高
- 缺少和标准RLHF的全面比较
RAFT(Reward rAnked FineTuning)
- 组合奖励排序和监督微调,不需要PPO
- 根据奖励对样本排序,然后加权做SFT
各方法优缺点对比
| 方法 | 需要RM? | 需要PPO? | 训练阶段 | 显存要求 | 效果 | 复杂度 |
|---|
| 原始RLHF | ✅ | ✅ | 3 | 很高 | 好 | 非常复杂 |
| DPO | ❌ | ❌ | 1 | 低 | 好 | 简单(同SFT) |
| KTO | ❌ | ❌ | 1 | 低 | 好(支持混合数据) | 简单 |
| RRHF | ❌ | ❌ | 1 | 低 | 好 | 简单 |
| RLAIF | ✅(AI标注) | ✅ | 3 | 很高 | 接近RLHF | 复杂 |
| Constitutional AI | - | ✅ | - | 高 | 好 | 复杂 |
| RAFT | ✅ | ❌ | 2 | 中 | 不错 | 中等 |
为什么DPO现在这么流行?
- 简洁:一个阶段搞定,不需要单独训RM,不需要RL,和微调一样简单
- 效果好:论文和实践都表明效果不输甚至优于传统RLHF
- 资源友好:不需要同时放四个模型在显存里,单GPU就能训7B模型
- 易复现:超参数少,训练稳定,不像PPO容易调崩
面试常见问题
Q: DPO的核心思想是什么?为什么能替代RLHF?
A: DPO直接偏好优化的核心思想是,在一定理论假设下,可以把RLHF的优化目标转化为一个简单的二元交叉熵损失,直接在偏好数据上训练,不需要单独训练奖励模型,也不需要PPO强化学习。这样大大简化了训练流程,降低了计算资源要求,效果还能和RLHF相当。
Q: DPO和RLHF相比有什么优缺点?
A:
- 优点:训练简单,只有一个阶段,不需要RM和PPO;显存要求低,单GPU就能训练大模型;效果相当甚至更好;超参数少,训练稳定。
- 缺点:理论上依赖一些假设,极端情况下可能不如RLHF;处理大规模偏好数据和RLHF差不多,但其实DPO在实践中已经证明很好用,现在是主流替代方案。
Q: RLHF主要缺点是什么?这些变种解决了什么问题?
A: RLHF主要缺点:
- 人工偏好标注成本高,难量产
- 三阶段训练流程长,迭代慢
- PPO需要同时跑四个模型,对计算资源要求很高
这些变种分别从不同角度解决:
- 成本问题:RLAIF用AI替代人工标注;LIMA用少量高质量SFT数据,不需要RLHF
- 流程复杂问题:DPO、RRHF等直接去掉RM和PPO,一步到位
- 资源问题:去掉PPO后显存要求大幅降低,训练更快
Q: DPO的正负样本怎么构造?损失函数是什么?
A: DPO不需要传统的正负样本,只需要对同一个prompt的两个回答,知道哪个更好就行。对于偏好 (yw>yl),损失函数是让模型给更好回答分配比更差回答更高的对数概率(相对于参考模型),用sigmoid交叉熵优化。公式就是:
L=−logσ(β(logπref(yw∣x)π(yw∣x)−logπref(yl∣x)π(yl∣x)))
Q: 你觉得未来RLHF会被DPO这类方法完全替代吗?
A: 很有可能。DPO这类直接偏好优化方法效果已经和RLHF相当,但训练简单太多,资源要求低很多,更容易规模化。对于大多数应用场景,DPO应该会逐步取代传统三阶段RLHF。不过在一些超大规模训练场景,RLHF+PPO可能还有它的位置,但我认为DPO会成为主流。