大模型的偏好对齐有两条路:DPO 和 PPO 差在哪?一个绕开奖励模型直接优化,一个规规矩矩训完奖励模型再上强化学习。两条路都通往同一个目标,让模型的输出更符合人类偏好,但走法、稳当程度、要掏的算力,差着一大截。
结论先说:求稳选 DPO,精细活选 PPO
资源有限、想快点看到结果,选 DPO。它只需要偏好对数据,一个阶段训完,流程短、复现容易。要精雕细琢、有充足算力和工程人力,选 PPO,它在奖励模型调得精准的前提下,能摸到更高的效果上限。
多数团队的实际路径是先用 DPO 验证偏好数据靠不靠谱,有效果再评估要不要上 PPO。SFT 与 RLHF 的分工里那套奖励模型的活,PPO 路线避不开,DPO 路线可以直接跳过。
两种算法的依赖项
PPO 的依赖链长:先训一个奖励模型给回答打分,再让策略模型生成回答、由奖励模型评分,最后用强化学习更新策略。链条上每一环都可能掉链子,奖励模型有偏见,策略就会跟着学歪。链条长也意味着周期长,从数据准备到跑出第一版可用模型,往往以周计。
DPO 的做法是把排序信号直接蒸馏进训练目标,同一个问题的优选回答和劣选回答放在一起,让模型拉大两者的差距。它不需要显式的奖励模型,也不需要在线采样,整个流程就是一次普通的微调。续训与微调的边界在这里依然成立,DPO 本质上还是微调家族的一员。
训练过程的稳定性差异
PPO 的不稳定是出了名的。策略一变,奖励模型的评分就失真,评分失真又带偏下一步更新,几轮下来可能整体跑飞,需要裁剪、价值网络、约束项一大套稳定手段兜着。调参经验不足的团队,很容易在救火中耗尽耐心。判断PPO 有没有跑偏,要靠奖励分数和人工抽检双看着,单看曲线会骗人。
DPO 的稳定性好得多,训练曲线接近普通监督学习,损失单调下降是常态。它的风险在另一头:对偏好数据的质量极其敏感,数据里混进噪声或标注偏见,模型会老老实实学过去,而且没有奖励模型这道缓冲。DeepSeek 和海螺AI 的公开实践里都能看到,DPO 家族的方法因为门槛低,正在成为默认选项。
算力与工程门槛
PPO 是重活儿。训练期要同时驻留策略模型、参考模型、奖励模型、价值模型四到五个网络,显存开销大,还要处理在线采样的延迟。工程上要写采样服务、评分服务、更新调度,一套下来不是小工程。
DPO 是轻活儿。显存里只有策略模型和参考模型,数据离线准备好,训练就是标准循环。团队里有一个熟悉微调框架的工程师就能上手。代价是效果上限,精细的偏好区分,比如同一问题的三种回答排出高下,DPO 的表达能力就吃紧了。
两条路的开销不在一个量级,按显存和工程拆开看。
| 对比项 | DPO | PPO |
|---|---|---|
| 驻留网络 | 策略模型和参考模型两个 | 策略、参考、奖励、价值四到五个 |
| 在线采样 | 不需要,数据离线准备好 | 需要,还要处理采样延迟 |
| 工程配套 | 标准训练循环,熟悉微调框架的工程师就能上手 | 采样服务、评分服务、更新调度一套 |
| 效果上限 | 精细偏好区分就吃紧 | 奖励模型调得精准时能摸到更高上限 |
折中的路线也存在:先用 PPO 的思路训一个轻量奖励模型做筛选,再用 DPO 做正式优化,兼得一部分精细度和大部分稳定性。这套组合在数据质量参半的团队里特别受欢迎,因为它把最难的在线采样环节绕开了。选型终究回到那两个字:求稳。
速查表:DPO 只要偏好对数据、一个阶段训完;PPO 要先训奖励模型、再在线采样强化;求稳选 DPO,精细活选 PPO。先用 DPO 验数据,再决定要不要上 PPO。
DPO 与 PPO 的三个常问问题
- 先做 DPO 还能改 PPO 吗?能,DPO 阶段产出的模型可以当 PPO 的初始化,偏好数据也通用,不算白做。
- DPO 会损伤模型能力吗?可能,过度优化偏好会让输出变保守,配合通用数据混训、控制训练步数能缓解。
- 奖励模型一定要人标数据吗?多数情况是,也可以用 AI 反馈补充,但人工标注的偏好仍是质量底线。


