DPO Meets PPO: Token级强化优化统一RLHF范式
ArXiv ID: 2404.18922
作者: Han Zhong, Zikang Shan, Guhao Feng (Peking Univ) + Wei Xiong (Princeton) + Microsoft Research
机构: Peking University, Princeton University, Microsoft Research
发布日期: 2024-04-29 (最新更新: 2025-05-21)
会议: ICML 2025
代码: GitHub
核心创新
这篇ICML 2025论文提出了Reinforced Token Optimization (RTO),首次成功将DPO和PPO两大RLHF范式统一。传统RLHF方法要么使用离线DPO(简单但性能有限),要么使用在线PPO(强大但复杂),RTO创造性地将两者结合:
两阶段框架:
1 | 阶段1: DPO学习Token级Reward → 阶段2: PPO使用Token Reward优化 |
核心洞察是将RLHF从句子级优化转变为token级MDP,DPO为每个token学习细粒度质量信号,然后PPO在这些信号指导下进行策略优化。
性能突破:
- AlpacaEval 2: +7.5点提升 (35.2% → 42.7% win rate vs GPT-4)
- Arena-Hard: +4.1点提升,逼近GPT-4-Turbo
- 训练效率: 相比纯PPO节省30%时间
问题动机
传统RLHF的局限
句子级奖励的粗粒度:
1 | # 传统方法: 整个response一个reward |
好token和坏token被平均,模型学习信号模糊。
DPO vs PPO的权衡困境:
| 方法 | 优势 | 劣势 |
|---|---|---|
| DPO | 简单、稳定、高效 | 性能上限受限于离线数据 |
| PPO | 性能天花板高、可在线探索 | 训练复杂、不稳定、成本高 |
能否两者兼得? RTO给出了肯定答案。
技术方案
核心思想: Token-wise MDP
传统MDP (句子级):
- 状态: prompt
- 动作: 完整response
- 奖励: r(prompt, response)
RTO的MDP (token级):
- 状态: prompt + 已生成tokens
- 动作: 下一个token
- 奖励: r_t(token | context)
1 | State_0: "写一首诗" |
每个token决策都有即时reward,累积获得总reward。
阶段1: Token-wise DPO
传统DPO损失:
1 | L_DPO = -E[log σ(β log π(y_w)/π_ref(y_w) - β log π(y_l)/π_ref(y_l))] |
仅对整个response y 打分。
RTO的Token-DPO:
分解为token序列 y = [t_1, t_2, …, t_n]:
1 | r_RTO(t_i | context) = β log [π(t_i|context) / π_ref(t_i|context)] |
关键区别:
- 传统: 一个response → 一个reward
- RTO: 一个response → n个token rewards
学习目标:
优先学习preferred response中的token,惩罚rejected response中的token。
1 | # 伪代码 |
阶段2: Token-wise PPO
使用阶段1学到的token reward function r_RTO 指导PPO:
标准PPO目标:
1 | maximize E[r(response)] - β KL(π || π_ref) |
RTO的Token-PPO:
1 | maximize E[Σ_t r_RTO(t_t | s_t)] - β KL(π || π_ref) |
优势:
- 细粒度反馈: 每个token都知道自己的质量
- 更快收敛: reward信号更密集
- 更稳定: token级控制避免句子级的大幅波动
实现细节:
1 | # PPO训练循环 |
实验结果
AlpacaEval 2 (Win Rate vs GPT-4)
| 方法 | Win Rate | 提升 |
|---|---|---|
| Base SFT | 12.3% | - |
| DPO | 27.8% | +15.5 |
| PPO | 35.2% | +7.4 |
| RTO (本文) | 42.7% | +7.5 |
RTO在PPO基础上实现21%相对提升,这在2024年是显著突破。
Arena-Hard (困难问题挑战)
| 方法 | Score | Gap to GPT-4-Turbo |
|---|---|---|
| PPO | 31.2 | -18.8 |
| RTO | 35.3 | -14.7 |
| GPT-4-Turbo | 50.0 | - |
缩小与GPT-4-Turbo的差距22%。
训练效率
GPU小时数 (达到相同性能):
- PPO: ~800 GPU hours
- RTO: ~560 GPU hours (节省30%)
原因: Token级reward提供更密集信号,加速收敛。
案例分析
Prompt: “解释黑洞的形成过程”
PPO输出:
“黑洞是恒星坍缩形成的。当恒星耗尽燃料,核心坍缩产生强大引力场,连光也无法逃逸。[后续内容质量下降,出现重复]”
RTO输出:
“黑洞的形成经历三个阶段。首先,大质量恒星(≥20倍太阳质量)在核聚变反应耗尽时,核心压力无法抵抗引力…[保持高质量到结尾]”
分析:
- PPO的句子级reward无法指出后半段质量下降
- RTO的token级reward在每个token都提供反馈,保持全程质量
技术对比
RTO vs 传统方法
vs 纯DPO:
1 | DPO → RTO |
vs 纯PPO:
1 | PPO → RTO |
vs Sentence-level PPO + RM:
1 | 传统PPO → RTO |
何时使用RTO
✅ 推荐场景:
- 追求SOTA性能 - 对标GPT-4等顶级模型
- 已有DPO模型 - 希望进一步提升
- 长文本生成 - Token级控制避免尾部质量下降
- 算力充足 - 可承担PPO的在线成本
❌ 不推荐场景:
- 预算受限 - 纯DPO更经济
- 快速迭代 - DPO单阶段更快
- 小规模部署 - 性能提升不值得额外成本
实施建议
超参数设置
DPO阶段:
1 | beta: 0.1 # KL惩罚系数 |
PPO阶段:
1 | beta_kl: 0.05 # PPO的KL系数 |
关键工程技巧
1. Token Reward的Scale:
1 | # 问题: token reward可能scale差异大 |
2. 长序列的Reward累积:
1 | # 使用GAE (Generalized Advantage Estimation) 降低方差 |
3. 避免DPO过度优化:
1 | # 监控KL散度,及时停止DPO训练 |
最小可行实现
基于HuggingFace TRL:
1 | from trl import DPOTrainer, PPOTrainer |
个人评价
RTO是2024-2025年RLHF领域最重要的方法创新之一。它优雅地解决了DPO和PPO各自的局限,实现了1+1>2的效果。
突出优势
- 理论优雅 - Token-wise MDP形式化严谨,统一两大范式
- 性能领先 - AlpacaEval +7.5点在2024年是显著突破
- 工程可行 - 基于成熟的DPO和PPO,易于实现
- 开源友好 - 提供代码和模型,推动社区发展
存在挑战
- 计算成本 - 两阶段训练相比纯DPO增加成本
- 超参数敏感 - Token reward的scale需要careful tuning
- 长序列问题 - 序列越长,token reward的累积误差越大
未来方向
- 在线RTO - 能否在PPO阶段继续更新token reward?
- 多模态扩展 - 图像-文本生成的token级优化
- 效率优化 - 能否用LoRA降低两阶段训练成本?
最终评分: 4.3/5.0
推荐指数: ⭐⭐⭐⭐⭐ (如果算力充足)
这是当前追求SOTA性能的必选方法。如果你的目标是对标GPT-4,RTO值得投入。但对于预算受限的团队,纯DPO仍是更实用的选择。
代码仓库: GitHub - microsoft/LMOps/rto
引用:
1 | @inproceedings{zhong2025rto, |