4.2 从“人类偏好建模”的角度理解 DPO:为什么配分函数会出现、又为什么能被约掉?
DPO(Direct Preference Optimization)的经典推导里,最容易卡住的点之一就是 配分函数 Z(x)Z(x)Z(x):它看起来像是“突然被凑出来”的,但后面又能在关键步骤中被约分掉。这里不从“硬凑公式”的视角讲,而是把 DPO 放回到 人类偏好建模(Bradley–Terry) 与 行为约束强化学习(Behavior-Regularized RL / Offline RL
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 yx→y)
在大模型对齐(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 Ex∼D,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 Ex∼D Ey∼π(⋅∣x)[r(x,y) − βlogπref(y∣x)π(y∣x)].
这里的直觉是:
- 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 Ex∼D Ey∼π(⋅∣x)[logπref(y∣x)π(y∣x) − β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(y∣x)π(y∣x)−β1r(x,y)=logπ(y∣x) − log(πref(y∣x)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~(y∣x)=πref(y∣x)exp(β1r(x,y)).
但 q~(y∣x)\tilde{q}(y|x)q~(y∣x) 不一定加和为 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(y∣x)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). π∗(y∣x)=Z(x)1πref(y∣x)exp(β1r(x,y)).
这一步的真正意义是:
你不是“凭空发明了 Z(x)Z(x)Z(x)”,而是把“参考策略 + 奖励加权”的未归一化分布,变成了一个合法的目标策略分布 π∗\pi^*π∗。
1.3 关键一步:为什么后面能约掉?
把 π∗\pi^*π∗ 代回去,你会发现目标等价于最小化 KL:
minπ Ex∼D[DKL (π(⋅∣x) ∥ π∗(⋅∣x))−logZ(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 Ex∼D[DKL(π(⋅∣x) ∥ π∗(⋅∣x))−logZ(x)].
因为 Z(x)Z(x)Z(x) 与 π\piπ 无关,所以最优解就是:
π=π∗. \pi=\pi^*. π=π∗.
进一步变形得到最优奖励与最优策略的关系:
r∗(x,y)=βlogπ∗(y∣x)πref(y∣x)+logZ(x). r^*(x,y)=\beta\log\frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)}+\log Z(x). r∗(x,y)=βlogπref(y∣x)π∗(y∣x)+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∗(y1≻y2∣x)=exp(r∗(x,y1))+exp(r∗(x,y2))exp(r∗(x,y1)).
代入 r∗r^*r∗,注意两项都含有相同的 +logZ(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∗(y1≻y2∣x)=exp(βlogπref(y1∣x)π∗(y1∣x))+exp(βlogπref(y2∣x)π∗(y2∣x))exp(βlogπref(y1∣x)π∗(y1∣x)).
这就是 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),…,(sk−11,ak−11)),σ2=((s02,a02),…,(sk−12,ak−12)).
经典偏好建模(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)+logZ(s), r^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)}+\log Z(s), r∗(s,a)=βlogπref(a∣s)π∗(a∣s)+logZ(s),
代回去就得到:
∑tγtr∗(st,at)=β∑tγtlogπ∗(at∣st)πref(at∣st)+∑tγtlogZ(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(at∣st)π∗(at∣st)+t∑γtlogZ(st).
关键问题来了:两条轨迹经过的状态序列不同,所以
∑tγtlogZ(st1) ≠ ∑tγtlogZ(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-1−1,到达目标奖励为 +100+100+100。现在有两段长度为 2 的轨迹片段:
- 片段 S:朝目标靠近两步;
- 片段 O:远离目标两步。
由于每步都是 −1-1−1,两段片段的累积奖励一样:
∑t∈σSrt=−2,∑t∈σOrt=−2. \sum_{t\in\sigma^S} r_t = -2,\quad \sum_{t\in\sigma^O} r_t = -2. t∈σS∑rt=−2,t∈σO∑rt=−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). π∗(a∣s)=πref(a∣s)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(a∣s)π∗(a∣s).
这就是“把优势函数变成策略可观测量”的桥梁:优势可以直接写成策略相对参考策略的 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(a∣s)π∗(a∣s)
代入偏好概率:
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(at1∣st1)π∗(at1∣st1))+exp(∑t∈σ2γtβlogπref(at2∣st2)π∗(at2∣st2))exp(∑t∈σ1γtβlogπref(at1∣st1)π∗(at1∣st1)).
你会发现:
- 这里完全没有出现 Z(s)Z(s)Z(s);
- 也没有显式奖励函数;
- 偏好概率直接是策略的函数。
这说明:
如果你把偏好潜在量选成优势函数,而不是奖励函数,那么“配分函数约不掉”的障碍自然消失了,因为你根本不需要 Z(⋅)Z(\cdot)Z(⋅)。
4.3 回到大模型单步:直接得到 DPO 的形式
在 LLM 的单步场景里,s=xs=xs=x,a=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∗(y1≻y2∣x)=exp(βlogπref(y1∣x)π∗(y1∣x))+exp(βlogπref(y2∣x)π∗(y2∣x))exp(βlogπref(y1∣x)π∗(y1∣x)).
这正是 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(y∣x)π(y∣x) 把偏好概率写成策略的函数,于是可以直接优化策略。
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+≻y−∣x)=exp(βlogπref(y+∣x)πθ(y+∣x))+exp(βlogπref(y−∣x)πθ(y−∣x))exp(βlogπref(y+∣x)πθ(y+∣x)).
然后用负对数似然(等价于二分类交叉熵)训练:
LDPO(θ)=−E(x,y+,y−)∼D[logPθ(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+≻y−∣x)].
直觉上,这个 loss 在做两件事:
- 增大 logπθ(y+∣x)\log\pi_\theta(y^+|x)logπθ(y+∣x)(相对 πref\pi_{\text{ref}}πref);
- 减小 logπθ(y−∣x)\log\pi_\theta(y^-|x)logπθ(y−∣x)(相对 π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)+logZ(x), r^*(x,y)=\beta\log\frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)}+\log Z(x), r∗(x,y)=βlogπref(y∣x)π∗(y∣x)+logZ(x),
所以:
exp(r∗(x,y1))∝exp(logZ(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(y1∣x)π∗(y1∣x))β,
exp(r∗(x,y2))∝exp(logZ(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(y2∣x)π∗(y2∣x))β.
两者公共因子 exp(logZ(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(y∣x)π∗(y∣x),
偏好概率天然不需要 Z(x)Z(x)Z(x)。
因此“配分函数被约掉”并不是巧合,而是因为在单步同条件比较下,归一化常数对相对偏好无影响;优势视角则进一步说明:你根本不必把归一化常数写出来。
6.2 多步 RL:为什么优势视角能绕开“约不掉”的问题?
在多步轨迹里,如果你坚持用奖励写:
r∗(s,a)=βlogπ∗(a∣s)πref(a∣s)+logZ(s), r^*(s,a)=\beta\log\frac{\pi^*(a|s)}{\pi_{\text{ref}}(a|s)}+\log Z(s), r∗(s,a)=βlogπref(a∣s)π∗(a∣s)+logZ(s),
那么轨迹概率里会出现 ∑tlogZ(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(a∣s)π∗(a∣s)
出发,整个偏好概率都只依赖策略比值,就不存在 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[logexp(β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(y−∣x)πθ(y−∣x))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(y∣x)πθ(y∣x).
于是 loss 就是:
−logexp(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(y∣x)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(a∣s)π∗(a∣s)
直接把偏好概率写成策略函数,根本不需要引入也不需要约掉 Z(⋅)Z(\cdot)Z(⋅); - 在 LLM 单步场景下,上式自然退化为 DPO 的最终形式,因此 DPO 可以被理解为:
用优势函数而不是奖励函数来解释人类偏好,并因此实现直接策略优化。
更多推荐
所有评论(0)