大模型对齐的 DPO 思路很直接:既然手里已经有成对的偏好数据,何必再训一个奖励模型?DPO 把 RLHF 的后两步合并,直接用偏好数据优化策略模型,绕开奖励模型的训练和调用,链条短了一半,工程上因此更轻。
绕开奖励模型的思路
先对比两条路径的进出。RLHF 路径:偏好数据先进奖励模型,变成分数,再用分数训策略,中间多一次转换。DPO 路径:同样的偏好数据直接进策略模型的训练目标,一次到位。少掉的环节不只是算力,还有误差累积,奖励模型的偏差不会传导到策略上。
两条路径的差别,落在偏好数据每一步的去向上。
| 环节 | RLHF 路径 | DPO 路径 |
|---|---|---|
| 偏好数据先进哪 | 进奖励模型,变成分数 | 直接进策略模型的训练目标 |
| 中间转换 | 用分数训策略,多一次转换 | 一次到位,不需要显式打分器 |
| 误差累积 | 奖励模型的偏差会传导到策略上 | 偏差不传导,少一层误差累积 |
| 阶段数 | 三个阶段 | 压缩成一个阶段 |
这个简化不是拍脑袋。偏好数据本身就隐含了“什么样的回答更好”的信息,DPO 用数学方式把这个信息直接接到策略模型的优化目标上,中间不需要一个显式的打分器。RLHF 的三个阶段因此被压缩成了一个阶段。
偏好数据怎么直接用
DPO 的训练数据形态和 RLHF 第一阶段一致:同一个问题,一个被偏爱的回答,一个被冷落的回答。进来的是这样的成对样本,发生的是策略模型对两个回答的概率调整:被偏爱的回答概率往上推,被冷落的回答概率往下压。出去的是更新后的策略模型。
这里有个精妙设计:推和压的力度不是固定的,而是参考模型当前状态下两个回答的差距。差距小就多推一点,差距大就少推,避免模型为了拉开差距而走极端。标注规范在这里同样重要,排序口径不一致,目标就会被带偏。
数据量在这条路线上同样关键。偏好对太少,模型学到的排序规律覆盖不住真实场景,换个问法就失效;几十到几百条精心构造的对子,通常能让模型在目标场景上出现方向性变化。这也是小团队能快速上手的原因。
目标函数在做什么
把目标函数翻译成大白话,它在平衡两件事。第一是跟随偏好,让模型更偏爱人类选中的回答。第二是别跑太远,用参考模型拉住策略,防止它为了迎合偏好把原有的语言能力玩坏。两件事的权重由一个系数控制,系数大小直接决定模型是学得快还是学得稳。
不堆公式也能理解它的直觉:训练后的模型,面对同一个问题,给高排名回答的概率应该明显高于低排名回答,同时整体分布不能偏离原模型太远。奖励模型训练要学一个泛化的打分函数,DPO 则把同样的偏好信号直接蒸馏进策略。
与 RLHF 路线的取舍
两条路线没有唯一答案,只有场景匹配。数据量中等、追求轻量落地时,DPO 的短链条优势明显,中小团队更容易复现。追求极致对齐效果、数据充足时,RLHF 的奖励模型能泛化到没见过的偏好类型,上限可能更高,但工程成本和调试难度也上一个台阶。
实践中还常见混合用法:先用 DPO 快速对齐拿到基线,再按需补 RLHF 做精调。对普通用户来说,这种差异体现在对话手感上,智谱清言和通义千问在对齐风格上的不同,背后就有路线选择的成分。选哪条,取决于你的数据规模和算力账本。
速查表:DPO=跳过奖励模型,直接用偏好数据训策略;核心是推高偏爱回答概率同时拉住参考模型;轻量场景首选,极致对齐仍看 RLHF。
关于 DPO 机制再多问三句
- DPO 完全不需要奖励模型吗?训练阶段不需要,但它的目标函数在数学上和某个隐式奖励模型等价,只是不显式训出来。
- 偏好数据质量差会怎样?排序噪声直接进优化目标,模型会迎合错误偏好,清洗和规范比路线选择更基础。
- 小团队适合从 DPO 入手吗?适合,链条短、组件少,几十到几百条高质量偏好数据就能看到方向性变化。


