LLM2023· NeurIPS 2023· CLASSIC

Direct Preference Optimization

Rafailov et al.

数学证明 RLHF 的 RM+PPO 两阶段可以合成一个 SFT-style 损失——跳过 RM,直接从偏好数据优化策略。

arXiv:2305.18290
#alignment#rlhf#preference-learning

核心贡献

  • 01理论:RLHF 的最优策略有闭式解,形式是 π*(y|x) ∝ π_ref(y|x) · exp(r(x,y)/β)
  • 02反解得:r(x,y) = β log(π*(y|x)/π_ref(y|x)) + const
  • 03代入 Bradley-Terry 偏好损失,得到直接对策略 π 的损失
  • 04完全避开训练独立的 RM 和跑 PPO 的复杂性
  • 05实践中效果匹敌甚至超过 PPO,且训练稳定得多

RLHFDPO

RLHF 最优化目标

maxπExD,yπ[r(x,y)]βKL(ππref)\max_\pi \mathbb{E}_{x \sim D, y \sim \pi}[r(x, y)] - \beta \cdot \text{KL}(\pi \| \pi_{ref})

这个问题有闭式解(通过变分法求解):

π(yx)=1Z(x)πref(yx)exp(1βr(x,y))\pi^*(y|x) = \frac{1}{Z(x)} \pi_{ref}(y|x) \exp\left(\frac{1}{\beta} r(x,y)\right)

关键反解

从上式反解 reward:

r(x,y)=βlogπ(yx)πref(yx)+βlogZ(x)r(x,y) = \beta \log \frac{\pi^*(y|x)}{\pi_{ref}(y|x)} + \beta \log Z(x)

左边是 reward,右边是策略的函数。这说明:策略隐式地定义了 reward

代入 Bradley-Terry

Bradley-Terry 偏好模型说:

P(ywylx)=σ(r(x,yw)r(x,yl))P(y_w \succ y_l | x) = \sigma(r(x, y_w) - r(x, y_l))

注意到 log Z(x) 在 y_w 和 y_l 的 reward 差中会抵消掉(同一个 x),最终得到 DPO 损失:

LDPO=E[logσ(βlogπ(ywx)πref(ywx)βlogπ(ylx)πref(ylx))]L_{DPO} = -\mathbb{E}\left[\log \sigma\left(\beta \log \frac{\pi(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi(y_l|x)}{\pi_{ref}(y_l|x)}\right)\right]

为什么这很强

  • 训练流程简化为和 SFT 类似的监督学习
  • 不需要采样、不需要 reward hacking 担忧、不需要 critic value function
  • 超参数少:就一个 β(控制偏离 ref 的程度)
  • 训练稳定,reproducibility 好

局限

  • 需要 offline preference dataset(不像 PPO 可以 on-policy)
  • 会过拟合 preference data,over-optimization 问题存在
  • β 选择敏感
面试视角

面试考点

"DPO 为什么可以跳过 RM?" 核心:最优策略和 reward 是一一对应的(通过那个 exp 闭式解)。既然策略和 reward 等价,我们可以直接把 reward 参数化成策略的 log-ratio——训练策略等价于训练 reward,合二为一。

"DPO vs PPO 的本质区别?"

  • PPO:on-policy RL,需要采样 + reward model 打分 + actor-critic + GAE
  • DPO:offline 监督学习,只需要 preference pairs (x, y_w, y_l) 和一个 reference model
  • DPO 简单稳定,但失去了 on-policy 探索能力

"什么时候用 PPO 什么时候用 DPO?" 经验:

  • 数据量小、要快速迭代:DPO
  • 有强 RM 且能 on-policy 采样:PPO 仍有优势
  • 需要细粒度 reward shapingPPODPO 只吃成对偏好)

"DPO 的 over-optimization 如何缓解?"

  • Identity PO (IPO):换 sigmoid 为平方损失,防止 over-confident
  • SimPO:去掉 reference model,用 length-normalized log-prob
  • β-DPO:动态调整 β

"GRPODPO 的关系?" GRPODeepSeek 提出的 online RL 变种,去掉 critic,用 group 内相对优势计算 baseline。本质上是 PPO 家族的简化版,但保留 online 特性。DPOPPOGRPO 代表对齐训练的三种范式。

相关论文