跳到主要内容

DPO 与新方法

DPO 如何消去 RM + PPO,及 KTO、ORPO、SimPO 的进一步简化思路

核心要点

  • DPO 把 RLHF 的"RM + PPO" 两步合成一个 binary cross-entropy loss
  • 数学:在 KL-constrained RLHF 闭式解上反解 reward,消去 $Z(x)$,与 RLHF 等价
  • 显存:DPO 用 2 个模型 (policy + ref), PPO 用 4 个 (policy + ref + RM + value),省 ~50%
  • Llama 3 / Qwen / DeepSeek / Mistral 全转 DPO 系
  • KTO 单边偏好 / ORPO 单阶段 / SimPO 去 reference model
  • on-policy 数据上 RLHF 仍略优,但工程复杂度让 DPO 主导

名词定义

本篇共享名词在 7.1 总览 已定义 (DPO / KTO / ORPO / SimPO / Preference data)。本篇新引入:

名词定义
隐式 reward ($\hat{r}_\theta$)DPO 推导中 $\hat{r}_\theta = \beta \log(\pi_\theta / \pi_{\text{ref}})$,让 policy 自己充当 reward model
Partition function $Z(x)$KL-constrained 闭式解中的归一化项,$Z(x) = \sum_y \pi_{\text{ref}}(y
Reference model ($\pi_{\text{ref}}$)DPO 训练用的固定锚点模型 (典型为 SFT model),约束 policy 不偏离过远
On-policy data当前训练 policy 自己生成的数据,RL 类方法用
Off-policy data离线收集的固定数据集,DPO 默认用
Length-normalized log pSimPO 用的隐式 reward, $\frac{1}{

@tbl-dpo-glossary 本篇新引入名词

DPO 的核心数学:三步消元

核心问题:RLHF 流程是 SFT → RM → PPO 三步,每步独立训,工程上要管理 4 个模型同时在 GPU 上 (policy + ref + RM + value)。Rafailov 2023 提出 DPO 把 RM 和 PPO 合成一个 binary cross-entropy loss。数学怎么推?

核心是三步消元:KL-constrained RLHF 闭式解 → 反解 reward 用 policy 表示 → 代入 Bradley-Terry 偏好概率,$Z(x)$ 自动消去

Step 1: KL-constrained RLHF 的闭式解

RLHF 目标 (省去常数项):

$$\begin{equation} \max_\pi \mathbb{E}[r(x, y)] - \beta \cdot \mathrm{KL}(\pi(\cdot|x) \| \pi_{\text{ref}}(\cdot|x)) \label{eq:dpo-rlhf-objective} \end{equation}$$
  • $r(x, y)$: reward model 给的标量奖励
  • $\beta$: KL 约束强度,防 policy 偏离 reference 太远

这有闭式最优解 (经典 RL 结论):

$$\begin{equation} \pi^*(y|x) = \frac{1}{Z(x)} \cdot \pi_{\text{ref}}(y|x) \cdot \exp\left(\frac{r(x, y)}{\beta}\right) \label{eq:dpo-closed-form} \end{equation}$$

其中 $Z(x) = \sum_y \pi_{\text{ref}}(y|x) \cdot e^{r(x,y)/\beta}$ 是归一化项 (partition function)。

核心问题$Z(x)$ 是对整个词表 $V^*$ 的所有可能序列求和,实际无法计算——这就是为什么 RLHF 需要 PPO 这种 RL 算法来近似优化,不能直接用闭式解。

Step 2:反解 reward,用 policy 表示

对公式 \ref{eq:dpo-closed-form} 取对数:

$$\begin{equation} r(x, y) = \beta \log \frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)} + \beta \log Z(x) \label{eq:dpo-reward-reparam} \end{equation}$$

这是 DPO 的核心 trick:reward 可以完全用 policy 表示。对参数化策略 $\pi_\theta$,定义隐式 reward

$$\begin{equation} \hat{r}_\theta(x, y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)} \label{eq:dpo-implicit-reward} \end{equation}$$

模型自己充当 reward model——这就是论文标题"Your Language Model is Secretly a Reward Model"。

Step 3: $Z(x)$ 在 Bradley-Terry 偏好里自动消去

把 \ref{eq:dpo-reward-reparam} 代入 Bradley-Terry 偏好模型 $p(y_w \succ y_l | x) = \sigma(r(x, y_w) - r(x, y_l))$:

$$\begin{align} p(y_w \succ y_l) &= \sigma\left[\left(\beta \log \frac{\pi(y_w)}{\pi_{\text{ref}}(y_w)} + \beta \log Z\right) - \left(\beta \log \frac{\pi(y_l)}{\pi_{\text{ref}}(y_l)} + \beta \log Z\right)\right] \\ &= \sigma\left[\beta \log \frac{\pi(y_w)}{\pi_{\text{ref}}(y_w)} - \beta \log \frac{\pi(y_l)}{\pi_{\text{ref}}(y_l)}\right] \label{eq:dpo-z-cancels} \end{align}$$

$Z(x)$ 出现两次,在差值中精确抵消——这是 DPO 整个推导的最美一步。$Z(x)$ 不再需要计算。

DPO loss:一个 sigmoid binary cross-entropy

直接最大化对数似然:

$$\begin{equation} \mathcal{L}_{\text{DPO}}(\theta) = -\mathbb{E}_{(x, y_w, y_l)}\left[\log \sigma\left(\beta \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right)\right] \label{eq:dpo-loss} \end{equation}$$

本质是对隐式 reward 差做 sigmoid 二元分类

  • 输入:$(x, y_w, y_l)$ 偏好对
  • 模型:一个 policy $\pi_\theta$ + 一个固定 reference $\pi_{\text{ref}}$ (SFT model)
  • Loss:让 $\hat{r}_\theta(y_w) > \hat{r}_\theta(y_l)$

DPO 等价于 RLHF 吗?

Rafailov 2023 Theorem 1:在 Bradley-Terry 偏好模型下,DPO 的最优解 $\pi^*$ 与 RLHF + 最优 RM 的最优解相同。

等价性成立的条件

  • Offline 数据 (固定偏好数据集)
  • 无噪声标注假设
  • Bradley-Terry 模型成立

实际上RLHF 在 on-policy 数据 + 噪声场景下仍略优 (Tajwar 2024,后文展开),但 offline DPO 在工程上已经远胜 RLHF。

梯度结构:自适应难样本加权

DPO loss 对 $\theta$ 求梯度:

$$\begin{equation} \nabla_\theta \mathcal{L}_{\text{DPO}} = -\beta \cdot \mathbb{E}\left[\sigma(\hat{r}_l - \hat{r}_w) \cdot \left(\nabla_\theta \log \pi_\theta(y_w|x) - \nabla_\theta \log \pi_\theta(y_l|x)\right)\right] \label{eq:dpo-grad} \end{equation}$$

权重 $\sigma(\hat{r}_l - \hat{r}_w)$ 实现自适应:

  • 当模型已经分对 (rejected score 低 chosen score 高),权重小,梯度小
  • 当模型仍判错 (rejected score 高),权重大,梯度强

模型自动把训练精力集中在难样本上,无需手动加权

DPO 工程优势:4 个模型变 2 个

方法训练时同时在 GPU 的模型数
PPO (RLHF)4 个:policy + ref + reward model + value head
DPO2 个:policy + ref

@tbl-dpo-memory DPO vs PPO 显存对比

显存约省 50%,训练时间约省 60-70% (PPO 还需要 sample-and-train 迭代)。

Llama 3 DPO 实际配置

Llama 3 tech report §4[1] 用 DPO:

  • $\beta = 0.1$
  • Learning rate $1 \times 10^{-5}$
  • 在 IFEval 等指令跟随任务上优于 PPO
  • 多轮迭代 DPO (每轮用上一轮 model 生成数据再训)

DPO 之后的变体

核心问题:DPO 已经把 RLHF 工程简化,但仍有改进空间——比如还需要 reference model 占显存,仍需要 chosen/rejected pair 数据等。2024 年涌现多个变体,各自解决一个具体痛点。

KTO 解掉"成对偏好"的强假设;ORPO 把 SFT + 偏好合一;SimPO 去掉 reference model——四个变体的设计哲学不同,业界仍在演化。

KTO:单边偏好就够

Ethayarajh et al. ICML 2024[2] 基于 Kahneman-Tversky 前景理论 (prospect theory):

  • 不需要 (chosen, rejected) pair
  • 每条数据只需 (response, desirable/undesirable) 单边标签
  • 在不平衡数据下 (减少 90% desirable 样本) 仍超过 DPO

优势:真实生产里收集"单边好坏" 标签比"两两对比" 容易得多。例如点赞 / 点踩,不需要让标注员对比两个回答。

1B-30B 全规模实证匹配或优于 DPO

ORPO: SFT 和偏好合一阶段

Hong et al. 2024[3] 提出 ORPO (Odds Ratio Preference Optimization):

  • SFT + 偏好对齐单阶段,不用先 SFT 再 DPO
  • 无 reference model——只需 1 个模型 (DPO 需 2, PPO 需 4)
  • 显存省约 50% (vs DPO)

实证

  • AlpacaEval 2 LC win rate: 12.20%
  • MT-Bench: 7.32
  • 7B 规模超过 13B 基线

思路:SFT loss 和 odds ratio penalty 加在一起,让模型同时学"生成回答的格式" + "偏好排序"。

SimPO:移除 reference model + length normalized

Meng et al. NeurIPS 2024[4] 提出 SimPO:

  • 移除 reference model
  • length-normalized log probability 作隐式 reward: $\hat{r}_\theta = \frac{1}{|y|} \log \pi_\theta(y|x)$
  • 加入 硬 margin $\gamma$ 让 chosen 与 rejected 之间有固定差距

Length normalization 的动机:DPO 隐式 reward $\beta \log(\pi_\theta / \pi_{\text{ref}})$ 是 token 级别 log p 之和,长回答天然 reward 低。SimPO 除以长度抵消这个偏差。

实证

  • AlpacaEval 2 比 DPO +6.4 points
  • Arena-Hard +7.5 points
  • Gemma-2-9B-it 版本 72.4% LC win rate, 10B 以下 Chatbot Arena 第一

IPO: squared loss 替代 sigmoid

Azar et al. 2023[5] 提出 IPO (Identity Preference Optimization):

  • 用 squared loss 替代 DPO 的 logistic loss
  • 把 reward margin 固定为 $1/(2\beta)$,解决 DPO 在偏好概率确定时 margin 无界增大导致的过拟合
  • 可训练至收敛无需 early stopping

实际工业应用不广,但理论分析清晰。

四变体对比

方法需要 chosen/rejected pair需要 reference model阶段数业界采用
DPO2 (SFT + DPO)Llama 3 / Qwen / Mistral
KTO否 (单边标签)2 (SFT + KTO)实验性
ORPO1 (合一)实验性
SimPO2 (SFT + SimPO)实验性,在 Gemma-2 上成功
IPO2学术为主

@tbl-dpo-variants DPO 系四变体对比

业界对齐方法现状 (2025-2026)

核心问题:业界各家用什么对齐方法?RLHF (PPO) 是不是已经被 DPO 取代?

Llama 3 / Qwen / Mistral / DeepSeek 全转 DPO 系,OpenAI / Anthropic 仍走 PPO 路线;reasoning 模型 (o1 / R1) 又把 RL 拉回中心

业界路线表

模型对齐方法
Llama 3SFT + Rejection Sampling + DPO (多轮迭代,§4 tech report)
Qwen 2DPO
Qwen 2.5多阶段 RL (含 DPO 系)
DeepSeek-V3SFT + GRPO (Group Relative Policy Optimization,无 critic 省显存)
DeepSeek-R1 (reasoning)大规模 RL with GRPO
MistralSFT + DPO ($\beta = 0.01$)
OpenAI (GPT-4 / GPT-4o)RLHF (PPO 系)
Anthropic (Claude)RLHF (含 Constitutional AI)
OpenAI o1 / DeepSeek-R1大规模 RL for reasoning (与传统 alignment RL 目标不同)

@tbl-dpo-industry 2025-2026 业界对齐方法

RLHF vs DPO 实证:on-policy 优于 off-policy

Tajwar et al. ICML 2024[6] 系统对比:

  • On-policy 数据是关键:用当前 policy 生成数据 + RL 训练在 reasoning 任务上明显优于 DPO offline
  • DPO offline 在 safety / instruction-following 上工程优势显著,主导业界
  • 推理任务 (math / code) RL (GRPO / PPO) 占优

这解释了为什么 reasoning 模型 (o1 / R1) 重新引入 RL:不是回归 InstructGPT 时代,是为了 reasoning 这种 on-policy 数据特别重要的任务。

Takeaway

知识点核心结论
DPO 核心 trick反解 reward 用 policy 表示,$Z(x)$ 在 Bradley-Terry 差值中消去
隐式 reward$\hat{r}_\theta = \beta \log(\pi_\theta / \pi_{\text{ref}})$
DPO losssigmoid binary cross-entropy on 隐式 reward 差
等价性offline + 无噪声 + Bradley-Terry 下与 RLHF 最优解相同
工程优势显存 4 个模型变 2 个,省 ~50%
Llama 3 DPO$\beta = 0.1$, lr 1e-5,多轮迭代,优于 PPO
KTO单边偏好 (不需 pair),不平衡数据更鲁棒
ORPOSFT + 偏好合一,无 reference model
SimPO去 reference + length-normalized, AlpacaEval 2 +6.4 vs DPO
业界状态Llama 3 / Qwen / Mistral DPO 系;OpenAI / Anthropic PPO 系;reasoning 模型大规模 RL
RLHF vs DPOoffline DPO 工程胜出主导;on-policy RL 在 reasoning 上仍优

开放问题

  • DPO 是否最终被 ORPO / SimPO 取代:ORPO 单阶段省显存,SimPO AlpacaEval +6.4,但 Llama 4 / Qwen 4 是否会换还待观察
  • Reasoning RL (GRPO) 是否会扩到 alignment:o1 / R1 证明 RL 在 reasoning 上不可替代,是否 alignment 也会回归 RL
  • on-policy vs offline 的最优混合:Llama 3 用多轮 iterative DPO (近似 on-policy),是否有更系统的方法
  • DPO 在 multi-turn / agentic 场景:当前主要在 single-turn 对话验证,多轮 + tool use 场景需要新设计
  • KL 系数 $\beta$ 的最优: Llama 3 用 0.1, Mistral 用 0.01,差 10×,没有统一最优值

本章结束:微调与对齐走完一遍

走完 07 章 (02-04 三篇 + 总览),读者拿到 LLM "从 base model 到 aligned model" 的完整流程:

  • SFT 教听指令 (02): instruction tuning + chat template + loss masking
  • RLHF 经典三步 (03): SFT → RM → PPO + Anthropic Constitutional AI
  • DPO 工程简化 (04):一个 loss 替代 RM + PPO,当前业界主流

后续章节:

  • 08-推理:拿 aligned model 跑生成 (prefill / decode / KV cache / 采样 / 量化)

延伸阅读

参考资料

  1. Meta AI. The Llama 3 Herd of Models. 2024. https://arxiv.org/abs/2407.21783 §4
  2. Ethayarajh et al. KTO: Model Alignment as Prospect Theoretic Optimization. ICML 2024. https://arxiv.org/abs/2402.01306
  3. Hong et al. ORPO: Monolithic Preference Optimization without Reference Model. 2024. https://arxiv.org/abs/2403.07691
  4. Meng et al. SimPO: Simple Preference Optimization with a Reference-Free Reward. NeurIPS 2024. https://arxiv.org/abs/2405.14734
  5. Azar et al. A General Theoretical Paradigm to Understand Learning from Human Preferences. 2023. https://arxiv.org/abs/2310.12036
  6. Tajwar et al. Preference Fine-Tuning of LLMs Should Leverage Suboptimal, On-Policy Data. ICML 2024. https://arxiv.org/abs/2404.14367