DPO (Direct Preference Optimization, 直接偏好优化) 把带 KL 正则的 RLHF 目标重新参数化,导出只依赖策略概率比的闭式损失,省掉奖励模型与在线 RL 循环。配分函数
Z(x) 消掉的推导链 (3 步):
① 带 KL 约束的 RLHF 目标
maxπEx,y∼π[r(x,y)]−βDKL(π∥πref) 有闭式最优解
π∗(y∣x)=Z(x)1πref(y∣x)er(x,y)/β,其中配分函数
Z(x)=∑yπref(y∣x)er(x,y)/β 只与输入
x 有关、与输出
y 无关;
② 重排得到隐式奖励
r(x,y)=βlogπref(y∣x)π∗(y∣x)+βlogZ(x);
③ 代入 Bradley-Terry 偏好模型
P(yw≻yl)=σ(r(x,yw)−r(x,yl)):两项相减时
βlogZ(x) 完全抵消 (因
Z 不依赖
y),偏好概率仅由概率比决定——
P(yw≻yl)=σ(βlogπref(yw∣x)π∗(yw∣x)−βlogπref(yl∣x)π∗(yl∣x))
训练时用
πθ 替换
π∗ 并最大化偏好数据似然,取负对数得 DPO 损失:
LDPO(θ)=−E(x,yw,yl)∼D[logσ(βlogπref(yw∣x)πθ(yw∣x)−βlogπref(yl∣x)πθ(yl∣x))]
yw/
yl 为偏好对的 chosen/rejected;
πref 为参考策略 (通常取 SFT 后的模型);
β 为温度/正则强度:
β 越大策略越保守贴近
πref、KL 越小但偏好利用弱;
β 越小策略越激进贴合偏好数据、收益更高但易过拟合/风格漂移/退化 (如长度偏置与奖励模仿)。