4.2 从“人类偏好建模”的角度理解 DPO:为什么配分函数会出现、又为什么能被约掉?

DPO(Direct Preference Optimization)的经典推导里,最容易卡住的点之一就是 配分函数 Z(x)Z(x)Z(x):它看起来像是“突然被凑出来”的,但后面又能在关键步骤中被约分掉。这里不从“硬凑公式”的视角讲,而是把 DPO 放回到 人类偏好建模(Bradley–Terry)行为约束强化学习(Behavior-Regularized RL / Offline RL) 的框架里,给出一个更直观的解释:

DPO 本质上不是“用奖励解释偏好”,而是把偏好建模的潜在量从 奖励 rrr 换成了 优势函数 AAA,然后利用行为约束 RL 中 优势与策略比值的指数关系,把偏好概率直接写成策略的函数,从而可以 直接训练策略,同时自然绕开了配分函数在多步轨迹里无法约掉的问题。


1. DPO 推导回顾:配分函数到底在做什么?

1.1 从行为约束 RL 目标出发(单步 MDP:x→yx \to yxy

在大模型对齐(RLHF/RLAIF)里,通常可以把交互看成一步 MDP:给定输入 xxx(prompt),输出回答 yyy(response)。在行为约束 RL 中,我们最大化奖励,同时用 KL 约束策略不要偏离参考策略 πref\pi_{\text{ref}}πref(一般是 SFT):

max⁡π Ex∼D, y∼π(⋅∣x)[r(x,y)] − β DKL ⁣(π(⋅∣x) ∥ πref(⋅∣x)). \max_\pi \ \mathbb{E}_{x\sim\mathcal{D},\,y\sim\pi(\cdot|x)}[r(x,y)] \ -\ \beta\, D_{\text{KL}}\!\left(\pi(\cdot|x)\ \|\ \pi_{\text{ref}}(\cdot|x)\right). πmax ExD,yπ(x)[r(x,y)]  βDKL(π(x)  πref(x)).

把 KL 展开,可写成:

max⁡π Ex∼D Ey∼π(⋅∣x)[r(x,y) − βlog⁡π(y∣x)πref(y∣x)]. \max_\pi \ \mathbb{E}_{x\sim\mathcal{D}} \ \mathbb{E}_{y\sim\pi(\cdot|x)} \left[ r(x,y)\ -\ \beta \log\frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} \right]. πmax ExD Eyπ(x)[r(x,y)  βlogπref(yx)π(yx)].

这里的直觉是:

  • r(x,y)r(x,y)r(x,y) 希望你输出高质量回答;
  • −βlog⁡ππref-\beta \log\frac{\pi}{\pi_{\text{ref}}}βlogπrefπ 惩罚你偏离参考策略太多;
  • β\betaβ 越大,越“保守”,更像 πref\pi_{\text{ref}}πrefβ\betaβ 越小,越“激进”,更追逐奖励。

1.2 “配分函数”出现:它不是魔法,而是在写一个“归一化后的目标分布”

把目标改写成最小化形式(等价变形):

min⁡π Ex∼D Ey∼π(⋅∣x)[log⁡π(y∣x)πref(y∣x) − 1βr(x,y)]. \min_\pi \ \mathbb{E}_{x\sim\mathcal{D}} \ \mathbb{E}_{y\sim\pi(\cdot|x)} \left[ \log\frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)}\ -\ \frac{1}{\beta}r(x,y) \right]. πmin ExD Eyπ(x)[logπref(yx)π(yx)  β1r(x,y)].

现在注意这一项:

log⁡π(y∣x)πref(y∣x)−1βr(x,y)=log⁡π(y∣x) − log⁡(πref(y∣x)exp⁡(1βr(x,y))). \log\frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} - \frac{1}{\beta}r(x,y) \mathrm{}= \log \pi(y|x)\ -\ \log\left(\pi_{\text{ref}}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right)\right). logπref(yx)π(yx)β1r(x,y)=logπ(yx)  log(πref(yx)exp(β1r(x,y))).

右边第二项看上去像“未归一化的目标密度”:

q~(y∣x)=πref(y∣x)exp⁡(1βr(x,y)). \tilde{q}(y|x) = \pi_{\text{ref}}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right). q~(yx)=πref(yx)exp(β1r(x,y)).

q~(y∣x)\tilde{q}(y|x)q~(yx) 不一定加和为 1,所以我们引入一个归一化常数(配分函数):

Z(x)=∑yπref(y∣x)exp⁡(1βr(x,y)). Z(x)=\sum_y \pi_{\text{ref}}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right). Z(x)=yπref(yx)exp(β1r(x,y)).

于是得到一个合法分布(也就是“Boltzmann policy / exponentiated advantage”风格):

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

这一步的真正意义是:

你不是“凭空发明了 Z(x)Z(x)Z(x)”,而是把“参考策略 + 奖励加权”的未归一化分布,变成了一个合法的目标策略分布 π∗\pi^*π


1.3 关键一步:为什么后面能约掉?

π∗\pi^*π 代回去,你会发现目标等价于最小化 KL:

min⁡π Ex∼D[DKL ⁣(π(⋅∣x) ∥ π∗(⋅∣x))−log⁡Z(x)]. \min_\pi \ \mathbb{E}_{x\sim\mathcal{D}} \left[ D_{\text{KL}}\!\left(\pi(\cdot|x)\ \|\ \pi^*(\cdot|x)\right) \mathrm{}- \log Z(x) \right]. πmin ExD[DKL(π(x)  π(x))logZ(x)].

因为 Z(x)Z(x)Z(x)π\piπ 无关,所以最优解就是:

π=π∗. \pi=\pi^*. π=π.

进一步变形得到最优奖励与最优策略的关系:

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

然后把它放进 Bradley–Terry 偏好模型(单步、同一 xxx 下比较 y1,y2y_1,y_2y1,y2):

P∗(y1≻y2∣x)=exp⁡(r∗(x,y1))exp⁡(r∗(x,y1))+exp⁡(r∗(x,y2)). P^*(y_1\succ y_2|x)= \frac{\exp(r^*(x,y_1))} {\exp(r^*(x,y_1))+\exp(r^*(x,y_2))}. P(y1y2x)=exp(r(x,y1))+exp(r(x,y2))exp(r(x,y1)).

代入 r∗r^*r,注意两项都含有相同的 +log⁡Z(x)+\log Z(x)+logZ(x),于是它在分子分母里相消:

P∗(y1≻y2∣x)=exp⁡(βlog⁡π∗(y1∣x)πref(y1∣x))exp⁡(βlog⁡π∗(y1∣x)πref(y1∣x))+exp⁡(βlog⁡π∗(y2∣x)πref(y2∣x)). P^*(y_1\succ y_2|x)= \frac{\exp\left(\beta\log\frac{\pi^*(y_1|x)}{\pi_{\text{ref}}(y_1|x)}\right)} {\exp\left(\beta\log\frac{\pi^*(y_1|x)}{\pi_{\text{ref}}(y_1|x)}\right) +\exp\left(\beta\log\frac{\pi^*(y_2|x)}{\pi_{\text{ref}}(y_2|x)}\right)}. P(y1y2x)=exp(βlogπref(y1x)π(y1x))+exp(βlogπref(y2x)π(y2x))exp(βlogπref(y1x)π(y1x)).

这就是 DPO 的核心结构:只剩策略比值,不再需要显式奖励,也不需要显式 Z(x)Z(x)Z(x)


2. DPO 推导的“单步限制”:多步 MDP 为什么约不掉?

在一般强化学习里,我们比较的是两段轨迹片段 σ1,σ2\sigma^1,\sigma^2σ1,σ2

σ1=((s01,a01),…,(sk−11,ak−11)),σ2=((s02,a02),…,(sk−12,ak−12)). \sigma^1=\big((s_0^1,a_0^1),\ldots,(s_{k-1}^1,a_{k-1}^1)\big),\quad \sigma^2=\big((s_0^2,a_0^2),\ldots,(s_{k-1}^2,a_{k-1}^2)\big). σ1=((s01,a01),,(sk11,ak11)),σ2=((s02,a02),,(sk12,ak12)).

经典偏好建模(Bradley–Terry / MaxEnt IRL 风格)是:

P∗(σ1≻σ2)=exp⁡(∑tγtr∗(st1,at1))exp⁡(∑tγtr∗(st1,at1))+exp⁡(∑tγtr∗(st2,at2)). P^*(\sigma^1\succ\sigma^2)= \frac{\exp\left(\sum_{t}\gamma^t r^*(s_t^1,a_t^1)\right)} {\exp\left(\sum_{t}\gamma^t r^*(s_t^1,a_t^1)\right)+ \exp\left(\sum_{t}\gamma^t r^*(s_t^2,a_t^2)\right)}. P(σ1σ2)=exp(tγtr(st1,at1))+exp(tγtr(st2,at2))exp(tγtr(st1,at1)).

如果你把“奖励-策略关系”也写成含 Z(s)Z(s)Z(s) 的形式:

r∗(s,a)=βlog⁡π∗(a∣s)πref(a∣s)+log⁡Z(s), r^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)}+\log Z(s), r(s,a)=βlogπref(as)π(as)+logZ(s),

代回去就得到:

∑tγtr∗(st,at)=β∑tγtlog⁡π∗(at∣st)πref(at∣st)+∑tγtlog⁡Z(st). \sum_t \gamma^t r^*(s_t,a_t) \mathrm{}= \beta\sum_t \gamma^t\log\frac{\pi^*(a_t|s_t)}{\pi_{\text{ref}}(a_t|s_t)} +\sum_t \gamma^t\log Z(s_t). tγtr(st,at)=βtγtlogπref(atst)π(atst)+tγtlogZ(st).

关键问题来了:两条轨迹经过的状态序列不同,所以

∑tγtlog⁡Z(st1) ≠ ∑tγtlog⁡Z(st2), \sum_t \gamma^t\log Z(s_t^1)\ \neq\ \sum_t \gamma^t\log Z(s_t^2), tγtlogZ(st1) = tγtlogZ(st2),

因此在偏好概率的分子分母里无法整体相消。
这就是为什么“照搬单步 DPO 的约分技巧”到多步一般 RL 里会卡住:

单步 DPO 的约分依赖一个非常强的条件:比较的两个候选共享同一个条件 xxx,因此 Z(x)Z(x)Z(x) 相同;多步轨迹不共享同一串状态,自然约不掉。


3. 重新审视偏好建模:用奖励解释偏好真的合理吗?

3.1 一个典型反例:同样的累积奖励,但人类偏好不同

考虑一个寻路环境:每走一步奖励为 −1-11,到达目标奖励为 +100+100+100。现在有两段长度为 2 的轨迹片段:

  • 片段 S:朝目标靠近两步;
  • 片段 O:远离目标两步。

由于每步都是 −1-11,两段片段的累积奖励一样:

∑t∈σSrt=−2,∑t∈σOrt=−2. \sum_{t\in\sigma^S} r_t = -2,\quad \sum_{t\in\sigma^O} r_t = -2. tσSrt=2,tσOrt=2.

如果只用奖励做 Bradley–Terry,那两者偏好概率就一样。但直觉上,人类会偏好 S,因为它更“有进展”。
这说明:

用“片段内即时奖励之和”来解释人类偏好,可能会丢掉“动作是否在推进目标”的信息。


3.2 更贴近偏好的量:优势函数 A(s,a)A(s,a)A(s,a)

优势函数定义为:

Aπ(s,a)=Qπ(s,a)−Vπ(s), A^\pi(s,a)=Q^\pi(s,a)-V^\pi(s), Aπ(s,a)=Qπ(s,a)Vπ(s),

它衡量“在状态 sss 采取动作 aaa”相对“平均水平动作”的好坏。
直觉上:

  • 如果动作让你更接近目标(未来回报更高),AAA 应该更大;
  • 如果动作在浪费步骤甚至走远了,AAA 应该更小。

因此我们可以把偏好模型中的潜在量,从奖励和替换成优势和:

P∗(σ1≻σ2)=exp⁡(∑t∈σ1γtA∗(st1,at1))exp⁡(∑t∈σ1γtA∗(st1,at1))+exp⁡(∑t∈σ2γtA∗(st2,at2)). P^*(\sigma^1\succ\sigma^2)= \frac{\exp\left(\sum_{t\in\sigma^1}\gamma^t A^*(s_t^1,a_t^1)\right)} {\exp\left(\sum_{t\in\sigma^1}\gamma^t A^*(s_t^1,a_t^1)\right)+ \exp\left(\sum_{t\in\sigma^2}\gamma^t A^*(s_t^2,a_t^2)\right)}. P(σ1σ2)=exp(tσ1γtA(st1,at1))+exp(tσ2γtA(st2,at2))exp(tσ1γtA(st1,at1)).

这一步的含义非常朴素:

人类更偏好“看起来更有希望/更推进目标”的轨迹片段,而这更像是优势函数在衡量的东西,而不是片段内即时奖励的简单加和。


4. 从优势函数到策略:DPO 的核心桥梁

4.1 行为约束 RL 中的关键关系:策略比值 ↔\leftrightarrow 优势

在 Behavior-Regularized RL(或 Offline RL 的一类形式)下,有一个非常关键的等式关系(从拉格朗日与 KKT 条件可推导):

π∗(a∣s)=πref(a∣s)exp⁡(1βA∗(s,a)). \pi^*(a|s)=\pi_{\text{ref}}(a|s)\exp\left(\frac{1}{\beta}A^*(s,a)\right). π(as)=πref(as)exp(β1A(s,a)).

等价地:

A∗(s,a)=βlog⁡π∗(a∣s)πref(a∣s). A^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)}. A(s,a)=βlogπref(as)π(as).

这就是“把优势函数变成策略可观测量”的桥梁:优势可以直接写成策略相对参考策略的 log-ratio。


4.2 把优势偏好模型改写成“只依赖策略”的偏好模型

A∗(s,a)=βlog⁡π∗(a∣s)πref(a∣s) A^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)} A(s,a)=βlogπref(as)π(as)

代入偏好概率:

P∗(σ1≻σ2)=exp⁡(∑t∈σ1γtβlog⁡π∗(at1∣st1)πref(at1∣st1))exp⁡(∑t∈σ1γtβlog⁡π∗(at1∣st1)πref(at1∣st1))+exp⁡(∑t∈σ2γtβlog⁡π∗(at2∣st2)πref(at2∣st2)). P^*(\sigma^1\succ\sigma^2)= \frac{\exp\left(\sum_{t\in\sigma^1}\gamma^t \beta\log\frac{\pi^*(a_t^1|s_t^1)}{\pi_{\text{ref}}(a_t^1|s_t^1)}\right)} {\exp\left(\sum_{t\in\sigma^1}\gamma^t \beta\log\frac{\pi^*(a_t^1|s_t^1)}{\pi_{\text{ref}}(a_t^1|s_t^1)}\right)+ \exp\left(\sum_{t\in\sigma^2}\gamma^t \beta\log\frac{\pi^*(a_t^2|s_t^2)}{\pi_{\text{ref}}(a_t^2|s_t^2)}\right)}. P(σ1σ2)=exp(tσ1γtβlogπref(at1st1)π(at1st1))+exp(tσ2γtβlogπref(at2st2)π(at2st2))exp(tσ1γtβlogπref(at1st1)π(at1st1)).

你会发现:

  • 这里完全没有出现 Z(s)Z(s)Z(s)
  • 也没有显式奖励函数;
  • 偏好概率直接是策略的函数。

这说明:

如果你把偏好潜在量选成优势函数,而不是奖励函数,那么“配分函数约不掉”的障碍自然消失了,因为你根本不需要 Z(⋅)Z(\cdot)Z()


4.3 回到大模型单步:直接得到 DPO 的形式

在 LLM 的单步场景里,s=xs=xs=xa=ya=ya=y,并且比较同一 xxx 下的两个回答 y1,y2y_1,y_2y1,y2。此时上述式子化简为:

P∗(y1≻y2∣x)=exp⁡(βlog⁡π∗(y1∣x)πref(y1∣x))exp⁡(βlog⁡π∗(y1∣x)πref(y1∣x))+exp⁡(βlog⁡π∗(y2∣x)πref(y2∣x)). P^*(y_1\succ y_2|x)= \frac{\exp\left(\beta\log\frac{\pi^*(y_1|x)}{\pi_{\text{ref}}(y_1|x)}\right)} {\exp\left(\beta\log\frac{\pi^*(y_1|x)}{\pi_{\text{ref}}(y_1|x)}\right)+ \exp\left(\beta\log\frac{\pi^*(y_2|x)}{\pi_{\text{ref}}(y_2|x)}\right)}. P(y1y2x)=exp(βlogπref(y1x)π(y1x))+exp(βlogπref(y2x)π(y2x))exp(βlogπref(y1x)π(y1x)).

这正是 DPO 推导最终得到的 Bradley–Terry 概率形式。

因此可以用一句话概括这里的“人类偏好建模视角”:

DPO 相当于把 RLHF 里 BT 偏好模型的潜变量从 r∗r^*r 换成 A∗A^*A,再用 A∗(x,y)=βlog⁡π(y∣x)πref(y∣x)A^*(x,y)=\beta\log\frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)}A(x,y)=βlogπref(yx)π(yx) 把偏好概率写成策略的函数,于是可以直接优化策略。


5. DPO 的训练目标:偏好标签 + 交叉熵

给定偏好数据集 D\mathcal{D}D,每条样本是 (x,y+,y−)(x,y^+,y^-)(x,y+,y),其中 y+y^+y+ 是更偏好的回答,y−y^-y 是不偏好的回答。定义模型偏好概率:

Pθ(y+≻y−∣x)=exp⁡(βlog⁡πθ(y+∣x)πref(y+∣x))exp⁡(βlog⁡πθ(y+∣x)πref(y+∣x))+exp⁡(βlog⁡πθ(y−∣x)πref(y−∣x)). P_\theta(y^+\succ y^-|x)= \frac{\exp\left(\beta\log\frac{\pi_\theta(y^+|x)}{\pi_{\text{ref}}(y^+|x)}\right)} {\exp\left(\beta\log\frac{\pi_\theta(y^+|x)}{\pi_{\text{ref}}(y^+|x)}\right)+ \exp\left(\beta\log\frac{\pi_\theta(y^-|x)}{\pi_{\text{ref}}(y^-|x)}\right)}. Pθ(y+yx)=exp(βlogπref(y+x)πθ(y+x))+exp(βlogπref(yx)πθ(yx))exp(βlogπref(y+x)πθ(y+x)).

然后用负对数似然(等价于二分类交叉熵)训练:

LDPO(θ)=−E(x,y+,y−)∼D[log⁡Pθ(y+≻y−∣x)]. \mathcal{L}_{\text{DPO}}(\theta) \mathrm{}= -\mathbb{E}_{(x,y^+,y^-)\sim\mathcal{D}} \left[ \log P_\theta(y^+\succ y^-|x) \right]. LDPO(θ)=E(x,y+,y)D[logPθ(y+yx)].

直觉上,这个 loss 在做两件事:

  1. 增大 log⁡πθ(y+∣x)\log\pi_\theta(y^+|x)logπθ(y+x)(相对 πref\pi_{\text{ref}}πref);
  2. 减小 log⁡πθ(y−∣x)\log\pi_\theta(y^-|x)logπθ(yx)(相对 πref\pi_{\text{ref}}πref);

并且通过 softmax 结构,让优化只关注相对差异。


6. 用案例把“优势视角”的 DPO讲清楚:为什么它比“奖励视角”更自然?

6.1 单步 LLM:为什么 Z(x)Z(x)Z(x)能被约掉?

在同一个 xxx 下比较 y1,y2y_1,y_2y1,y2,如果你走“奖励视角”的推导,会出现同一个 Z(x)Z(x)Z(x)

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

所以:

exp⁡(r∗(x,y1))∝exp⁡(log⁡Z(x))⋅(π∗(y1∣x)πref(y1∣x))β, \exp(r^*(x,y_1)) \propto \exp(\log Z(x))\cdot \left(\frac{\pi^*(y_1|x)}{\pi_{\text{ref}}(y_1|x)}\right)^\beta, exp(r(x,y1))exp(logZ(x))(πref(y1x)π(y1x))β,

exp⁡(r∗(x,y2))∝exp⁡(log⁡Z(x))⋅(π∗(y2∣x)πref(y2∣x))β. \exp(r^*(x,y_2)) \propto \exp(\log Z(x))\cdot \left(\frac{\pi^*(y_2|x)}{\pi_{\text{ref}}(y_2|x)}\right)^\beta. exp(r(x,y2))exp(logZ(x))(πref(y2x)π(y2x))β.

两者公共因子 exp⁡(log⁡Z(x))\exp(\log Z(x))exp(logZ(x)) 相同,进入 BT 概率就消掉了。

但从优势视角看,这一步更直接:你一开始就用

A∗(x,y)=βlog⁡π∗(y∣x)πref(y∣x), A^*(x,y)=\beta\log\frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)}, A(x,y)=βlogπref(yx)π(yx),

偏好概率天然不需要 Z(x)Z(x)Z(x)
因此“配分函数被约掉”并不是巧合,而是因为在单步同条件比较下,归一化常数对相对偏好无影响;优势视角则进一步说明:你根本不必把归一化常数写出来


6.2 多步 RL:为什么优势视角能绕开“约不掉”的问题?

在多步轨迹里,如果你坚持用奖励写:

r∗(s,a)=βlog⁡π∗(a∣s)πref(a∣s)+log⁡Z(s), r^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)}+\log Z(s), r(s,a)=βlogπref(as)π(as)+logZ(s),

那么轨迹概率里会出现 ∑tlog⁡Z(st)\sum_t \log Z(s_t)tlogZ(st),两条轨迹不共享状态序列,所以无法消掉。

而优势视角直接从

A∗(s,a)=βlog⁡π∗(a∣s)πref(a∣s) A^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)} A(s,a)=βlogπref(as)π(as)

出发,整个偏好概率都只依赖策略比值,就不存在 Z(s)Z(s)Z(s) 的累积项,自然不会遇到“无法约分”的障碍。

这解释了一个常见现象:

DPO 的经典形式之所以天然适配 LLM 的“同 prompt 下比较回答”,恰恰因为这是一个“共享条件”的单步偏好比较;而优势视角则告诉你,要把 DPO 推到一般 RL 轨迹比较,更自然的路线不是强行沿用奖励-配分函数那套,而是坚持优势(或与策略更直接挂钩的量)来建模偏好。


7. 对比学习角度:DPO 就是“一正一负”的对比损失

(x,y+,y−)(x,y^+,y^-)(x,y+,y) 看成:

  • anchor 是条件 xxx 下的策略分布;
  • 正样本是偏好回答 y+y^+y+
  • 负样本是非偏好回答 y−y^-y

DPO loss:

LDPO(θ)=−E(x,y+,y−)∼D[log⁡exp⁡(βlog⁡πθ(y+∣x)πref(y+∣x))exp⁡(βlog⁡πθ(y+∣x)πref(y+∣x))+exp⁡(βlog⁡πθ(y−∣x)πref(y−∣x))]. \mathcal{L}_{\text{DPO}}(\theta) \mathrm{}= -\mathbb{E}_{(x,y^+,y^-)\sim\mathcal{D}} \left[ \log \frac{\exp\left(\beta\log\frac{\pi_\theta(y^+|x)}{\pi_{\text{ref}}(y^+|x)}\right)} {\exp\left(\beta\log\frac{\pi_\theta(y^+|x)}{\pi_{\text{ref}}(y^+|x)}\right)+ \exp\left(\beta\log\frac{\pi_\theta(y^-|x)}{\pi_{\text{ref}}(y^-|x)}\right)} \right]. LDPO(θ)=E(x,y+,y)D logexp(βlogπref(y+x)πθ(y+x))+exp(βlogπref(yx)πθ(yx))exp(βlogπref(y+x)πθ(y+x)) .

结构上与对比学习的 InfoNCE 非常像:
把“相似度”换成下面这个分数(越大越好):

sθ(x,y)=βlog⁡πθ(y∣x)πref(y∣x). s_\theta(x,y)=\beta\log\frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}. sθ(x,y)=βlogπref(yx)πθ(yx).

于是 loss 就是:

−log⁡exp⁡(sθ(x,y+))exp⁡(sθ(x,y+))+exp⁡(sθ(x,y−)). -\log \frac{\exp(s_\theta(x,y^+))}{\exp(s_\theta(x,y^+))+\exp(s_\theta(x,y^-))}. logexp(sθ(x,y+))+exp(sθ(x,y))exp(sθ(x,y+)).

直观解释:

  • 如果 πθ\pi_\thetaπθ 相对 πref\pi_{\text{ref}}πref 更倾向于 y+y^+y+,那么 sθ(x,y+)s_\theta(x,y^+)sθ(x,y+) 变大;
  • 同时 sθ(x,y−)s_\theta(x,y^-)sθ(x,y) 变小;
  • softmax 迫使“正样本分数”高于“负样本分数”。

这也解释了为什么 DPO 常被描述成“直接把策略往偏好答案推,远离非偏好答案”:它确实就是一个对比式的偏好分类问题。


8. 总结:用一句话把“配分函数困惑”讲通

  • 传统 DPO 推导里,Z(x)Z(x)Z(x) 是把 πref(y∣x)exp⁡(r/β)\pi_{\text{ref}}(y|x)\exp(r/\beta)πref(yx)exp(r/β) 归一化成合法分布时必然出现的常数;
  • 在单步、同 xxx 比较 y1,y2y_1,y_2y1,y2 的 Bradley–Terry 模型里,Z(x)Z(x)Z(x) 对两项相同,所以会在分子分母中相消;
  • 但在多步 MDP 比较两条不同状态序列轨迹时,Z(s)Z(s)Z(s) 会沿着不同状态累积,无法相消;
  • 从“偏好建模视角”重写问题:把潜变量从奖励换成优势 AAA,并用
    A∗(s,a)=βlog⁡π∗(a∣s)πref(a∣s) A^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)} A(s,a)=βlogπref(as)π(as)
    直接把偏好概率写成策略函数,根本不需要引入也不需要约掉 Z(⋅)Z(\cdot)Z()
  • 在 LLM 单步场景下,上式自然退化为 DPO 的最终形式,因此 DPO 可以被理解为:
    用优势函数而不是奖励函数来解释人类偏好,并因此实现直接策略优化。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐