Skip to content

E.4.3 PPO、RLHF 与 DPO 中的信息论

前置知识E.4.1 熵E.4.2 交叉熵与 KL——你需要知道熵、交叉熵和 KL 散度的定义。


前面两节建立了熵、交叉熵和 KL 散度的数学基础。现在来看这些工具如何在最前沿的对齐训练中发挥作用。我们会按照"为什么需要 KL 约束"到"RLHF 怎么用它"再到"DPO 怎么绕过它"的顺序展开,三个概念构成一条清晰的叙事线。

PPO 和 RLHF 中的 KL 约束

训练策略时,新策略如果一步变化太大,容易过拟合或钻奖励函数的空子(reward hacking)。为了限制这种漂移,PPO 和 RLHF 引入了 KL 惩罚项——用 KL 散度衡量新策略离旧策略(或参考模型)有多远,并在优化目标中加以约束。

先从一个具体的场景说起。假设旧策略对某个 token 的概率是 0.010.01,新策略突然变成 0.200.20。概率比是:

0.200.01=20.\frac{0.20}{0.01}=20.

新策略对这个 token 的偏好突然放大了 20 倍。即使这个 token 在当前样本上带来了高奖励,这种剧烈变动也很危险——它可能意味着过拟合,或者是模型在钻奖励函数的空子(即 reward hacking)。

为了防止这种情况,PPO 和 RLHF 引入了 KL 惩罚项:

优化目标=奖励βDKL(πnewπold).\text{优化目标} = \text{奖励} - \beta D_{KL}(\pi_{new}\|\pi_{old}).

这里 β\beta 控制惩罚强度。如果新策略离旧策略太远,KL 项变大,抵消掉奖励收益,迫使策略更新更平缓。

在 RLHF 中,KL 约束还承担一个特殊使命:让对齐后的模型不要偏离原始语言模型太远。如果不加约束,模型可能会为了迎合偏好数据而丧失一般语言能力——比如变成一个只会说好话、不会正常回答问题的"讨好型"模型。


交叉熵、熵和 KL 的关系

到目前为止,我们分别认识了熵、交叉熵和 KL 散度。三者看似独立,其实被一个等式串在一起——理解这个等式,就能看明白为什么分类模型、奖励模型、语言模型都在用交叉熵损失。

DKL(PQ)=H(P,Q)H(P).D_{KL}(P\|Q)=H(P,Q)-H(P).

用文字说就是:KL 散度等于"用错误分布 QQ 编码真实分布 PP 的代价",减去"用正确分布 PP 编码自身的代价"——多出来的部分,纯粹是预测不准造成的浪费

推导很直接。先把定义写出来:

H(P,Q)=xP(x)logQ(x),H(P,Q)=-\sum_x P(x)\log Q(x),

H(P)=xP(x)logP(x),H(P)=-\sum_x P(x)\log P(x),

相减:

H(P,Q)H(P)=xP(x)logQ(x)+xP(x)logP(x).H(P,Q)-H(P) = -\sum_xP(x)\log Q(x) +\sum_xP(x)\log P(x).

合并求和:

xP(x)logP(x)Q(x)=DKL(PQ).\sum_xP(x)\log\frac{P(x)}{Q(x)} =D_{KL}(P\|Q).

这个等式在机器学习中出现得极为频繁。因为训练时真实分布 PP 是固定的,所以最小化交叉熵 H(P,Q)H(P,Q) 和最小化 DKL(PQ)D_{KL}(P\|Q) 完全等价。这就是为什么分类模型、奖励模型、语言模型都在用交叉熵损失——表面上在降交叉熵,实质上在缩小模型分布与真实分布之间的差距。


DPO:用对数概率比替代奖励模型

RLHF 的流程是:先训练一个奖励模型,再用 PPO 优化策略。但这个过程很复杂——要训练四个模型(策略模型、参考模型、奖励模型、Critic),还要处理 KL 约束和训练不稳定的问题。DPO(Direct Preference Optimization)的出发点是:能不能绕过奖励模型和 PPO,直接用偏好数据("回答 A 比回答 B 更好")来优化策略? DPO 通过比较对数概率比来隐式地实现 KL 正则,一步到位地完成了 RLHF 需要多步才能做的事情。

它的损失函数看起来吓人:

LDPO=E[logσ(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx))].\mathcal{L}_{DPO} = -\mathbb{E}\left[ \log\sigma\left( \beta\log\frac{\pi_\theta(y_w\mid x)}{\pi_{ref}(y_w\mid x)} - \beta\log\frac{\pi_\theta(y_l\mid x)}{\pi_{ref}(y_l\mid x)} \right) \right].

先不要急着看整体。只看一个核心部件——对数概率比:

logπθ(yx)πref(yx).\log\frac{\pi_\theta(y\mid x)}{\pi_{ref}(y\mid x)}.

它比较的是:当前模型相对于参考模型,有多偏好回答 yy。拿一个数字例子。对某个回答 yy

模型概率
当前模型 πθ(yx)\pi_\theta(y\mid x)0.200.20
参考模型 πref(yx)\pi_{ref}(y\mid x)0.050.05

概率比是 0.200.05=4\frac{0.20}{0.05}=4,取对数得到 log4\log 4。这说明当前模型比参考模型更偏好这个回答。

DPO 做的事情是同时比较 winner(ywy_w)和 loser(yly_l)的对数概率比:

βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx).\beta\log\frac{\pi_\theta(y_w\mid x)}{\pi_{ref}(y_w\mid x)} - \beta\log\frac{\pi_\theta(y_l\mid x)}{\pi_{ref}(y_l\mid x)}.

如果 winner 的相对概率提高、loser 的相对概率降低,这个差值就变大,损失就变小——模型正在”更喜欢好的回答、更不喜欢差的回答”。

σ\sigma 是 sigmoid 函数,把差值压缩到 (0,1)(0,1) 区间,logσ\log\sigma 把它变成损失值。整行前面的负号确保”差值越大,损失越小”。

DPO 和 KL 的关系在于:参考模型 πref\pi_{ref} 不只是被动比较对象,它还像一根”锚”。当前模型不能只追求偏好数据,还会通过概率比受到参考模型约束。直觉上,这和 RLHF 中的:

J(π)=Eπ[r(x,y)]βDKL(πθπref)J(\pi)=\mathbb{E}_\pi[r(x,y)]-\beta D_{KL}(\pi_\theta\|\pi_{ref})

是同一类思想:提高偏好回答的概率,但不要离参考模型太远


小结

本篇把信息论工具用到了对齐训练的实战中:

概念解决什么问题核心公式/思想在 RL 中的角色
KL 约束防止策略更新太激进奖励 βDKL- \beta D_{KL}PPO/RLHF 中限制策略漂移
交叉熵-KL 等式解释为什么分类都用交叉熵DKL(PQ)=H(P,Q)H(P)D_{KL}(P|Q)=H(P,Q)-H(P)最小化交叉熵 = 最小化 KL
DPO 对数概率比不训练奖励模型也能做偏好学习logπθ(yx)πref(yx)\log\frac{\pi_\theta(y\mid x)}{\pi_{ref}(y\mid x)}用偏好数据优化相对概率

三个概念构成一条叙事线:KL 散度限制策略漂移 -> 交叉熵和 KL 的等式关系让训练损失有理论支撑 -> DPO 用对数概率比隐式实现 KL 正则,跳过了奖励模型。

下一篇E.4.4 互信息与表征学习 —— 用信息论衡量表征质量。

Built for reusable bilingual course delivery