# DPO 为什么只做偏好分类,却“自带” KL 约束? > 更喜欢手写体的可以看手稿。下面三页是我下午完整手推的过程,展开即可查看。
展开手稿(共三页) ![DPO 手稿第 1 页](../assets/images/dpo-handwritten/dpo-handwritten-01.jpg) ![DPO 手稿第 2 页](../assets/images/dpo-handwritten/dpo-handwritten-02.jpg) ![DPO 手稿第 3 页](../assets/images/dpo-handwritten/dpo-handwritten-03.jpg)
> 关键词:DPO、RLHF、KL Divergence、Reference Policy、Bradley–Terry Model、Partition Function DPO大家都很熟悉,也知道他的基本原理以及适用场景,KL散度大家也很熟悉,也知道它的基本原理和适用场景,老生常谈。DPO 的训练形式看起来只是一个二分类问题。给定同一个 Prompt 下的 `chosen response` 和 `rejected response`,模型只需要提高前者胜过后者的概率。此文主要讲DPO的偏好模型是怎么构建的,以及为什么其他的后训练算法都在添加KL散度,但DPO的损失函数却如此纯粹? 比如说,DPO Loss 中为什么又会出现当前策略与 Reference Policy 的对数概率比: $$ \log\frac{\pi_\theta(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)}. $$ 这个形式与 KL Divergence 的核心组成完全一致。难道说?????但,DPO并没有显式计算KL散度 > DPO 明明没有在 Loss 中显式计算 KL Divergence,为什么仍然带有相对于 Reference Policy 的 KL 约束? 本文结合手稿进行如下结论的推算: > DPO 并不是在普通偏好分类目标之外“自动生成”了一个 KL 项。它先从带 KL Regularization 的 RLHF 目标出发,把最优策略反解成隐式 Reward,再代入 Bradley–Terry Preference Model。因此,最后看起来只是分类的 Loss,实际上继承了原始 RL 目标的 KL 结构。 一句话结论,Reference Policy 并不是后来人为塞进 DPO Loss 的技巧,而是原始 KL-Regularized RL 目标经过解析推导后自然留下来的结构。下面从最基础的 Reward Maximization 开始,一步步把这个关系推出来。 --- ## 一、符号定义 | 符号 | 含义 | | --- | --- | | $x$ | Prompt | | $y$ | 针对 Prompt $x$ 的一条完整回答 | | $y_w$ | Preferred / Chosen Response | | $y_l$ | Dispreferred / Rejected Response | | $\pi_\theta(y\mid x)$ | 当前可训练策略生成回答 $y$ 的概率 | | $\pi_{\mathrm{ref}}(y\mid x)$ | 固定的 Reference Policy | | $r(x,y)$ | 回答 $y$ 在 Prompt $x$ 下的 Reward | | $\beta>0$ | KL Regularization 系数 | | $Z(x)$ | 固定 Prompt 下的归一化因子,即 Partition Function | 这里的 $\pi_\theta(y\mid x)$ 表示完整回答的序列概率。对自回归语言模型,有: $$ \log\pi_\theta(y\mid x) = \sum_{t=1}^{T} \log\pi_\theta(y_t\mid x,y_{ DPO 的 Preference Logit 使用了由 KL-Regularized RL 最优策略诱导出的隐式 Reward 参数化,因此继承了 Reference Policy 所定义的相对概率坐标系。 ### 8.3 DPO 的梯度在做什么 单个样本的梯度为: $$ \nabla_\theta\ell_{\mathrm{DPO}} = -\beta\sigma(-m_\theta) \left[ \nabla_\theta\log\pi_\theta(y_w\mid x) - \nabla_\theta\log\pi_\theta(y_l\mid x) \right]. $$ 从这个梯度看,DPO 会提高 Chosen Response 的 Log Probability,并降低 Rejected Response 的 Log Probability。 Reference Policy 是固定的,不会产生参数梯度;但它参与 $m_\theta$ 的计算,从而决定当前偏好对是否已经被模型正确拉开,以及该样本的梯度权重 $\sigma(-m_\theta)$ 有多大。 --- ## 九、“DPO 自带 KL”的准确含义 “DPO 自带 KL”可以作为直观表述,但必须明确其适用边界。 ### 可以这样理解 1. DPO 的理论起点是带 Reference KL 的 Reward Maximization; 2. 最优策略通过 $\pi^*/\pi_{\mathrm{ref}}$ 表达; 3. Reward 被重参数化为相对于 Reference Policy 的 Log Ratio; 4. Preference Difference 消去了同一 Prompt 下共享的 $Z(x)$; 5. 最终得到只依赖策略概率比的分类 Loss。 所以,DPO 虽然没有显式训练 Reward Model,也没有运行 Policy Gradient RL Loop,但其目标形式继承了 KL-Regularized RLHF 的结构。 ### 不能过度理解成 $$ \mathcal L_{\mathrm{DPO}} = \mathcal L_{\mathrm{preference}} + \beta D_{\mathrm{KL}} (\pi_\theta\Vert\pi_{\mathrm{ref}}). $$ 标准 DPO Loss 并不是上述两个 Loss 的简单相加,也不会在每一步训练中显式枚举完整回答空间并计算 KL。 因此,在有限偏好数据、有限模型容量和非凸参数优化下,不能仅凭“隐含 KL”就断言实际测得的 KL 一定被严格限制在某个范围内。DPO 与 KL-Regularized RL 的对应关系,首先是目标函数最优解层面的理论对应。 --- ## 十、完整推导链条 完整过程可以压缩成下面这条链: $$ \boxed{ \begin{aligned} &\text{KL-Regularized Reward Maximization}\\ &\Downarrow\\ &\pi^*(y\mid x) = \frac{1}{Z(x)} \pi_{\mathrm{ref}}(y\mid x)e^{r(x,y)/\beta}\\ &\Downarrow\\ &r(x,y) = \beta\log\frac{\pi^*(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)} + \beta\log Z(x)\\ &\Downarrow\\ &\text{同一 Prompt 下做 Reward Difference,}Z(x)\text{ 消失}\\ &\Downarrow\\ &\text{使用 }\pi_\theta\text{ 拟合 }\pi^*\\ &\Downarrow\\ &\mathcal L_{\mathrm{DPO}} \end{aligned} } $$ 核心结论可以概括为: > DPO 先利用 KL-Regularized RL 的最优解,把 Reward 写成 Policy 与 Reference Policy 的对数概率比;再利用同一 Prompt 内偏好比较只依赖 Reward Difference 的性质,消去共同的 $Z(x)$,最终将 RLHF 目标转换成可以直接训练 Policy 的二分类目标。 DPO 最巧妙的地方在于:它表面上绕开了 Reward Model 和 RL Loop,但并没有丢弃 RLHF 的理论结构,而是通过一次重参数化将其折叠进 Preference Classification。 --- ## 十一、推导成立的条件与边界 为了避免将结论无限外推,还需要明确该推导依赖的基本条件: 1. $\beta>0$; 2. 在所讨论的回答支持集上,$\pi_{\mathrm{ref}}(y\mid x)>0$; 3. 解析求解时,先把策略视为可以自由优化的条件概率分布,而不是直接处理有限参数神经网络; 4. 偏好数据使用同一 Prompt 下的回答对; 5. 偏好概率能够由 Bradley–Terry Model,或相应的 Plackett–Luce Model 描述; 6. 实际训练使用参数化策略 $\pi_\theta$ 去逼近理论最优策略 $\pi^*$。 --- ## 参考资料 - [Direct Preference Optimization: Your Language Model Is Secretly a Reward Model(arXiv:2305.18290)](https://arxiv.org/abs/2305.18290):提出 DPO,通过对 KL-Regularized RLHF 目标中的 Reward 进行策略重参数化,将 Reward Modeling 与 RL Policy Optimization 转换为单阶段偏好分类目标。