本文完整系统地梳理 GVPO(Group Variance Policy Optimization)这篇 NeurIPS 2025 论文中的核心公式推导过程。整个推导围绕一个目标:在 KL 散度约束下最大化期望奖励,并得到一个可直接用于训练的、具有理论最优性保证的损失函数。
我们将严格按照论文逻辑,从问题设定出发,逐步推导出 GVPO 的最终损失形式。
🧭 1. 问题设定:带 KL 约束的策略优化
给定一个参考策略(通常是 SFT 模型)πref\pi_{\text{ref}}πref,我们的目标是找到一个新策略 πθ\pi_\thetaπθ,使其在满足与 πref\pi_{\text{ref}}πref距离不太远的前提下,最大化期望奖励:
maxπE(x,y)∼π[R(x,y)]s.t.Ex∼D[DKL(π(⋅∣x)∣πref(⋅∣x))]≤ϵ\max_{\pi} \quad \mathbb{E}{(x, y) \sim \pi} [ R(x, y) ] \quad \text{s.t.} \quad \mathbb{E}{x \sim \mathcal{D}} [ D_{\mathrm{KL}}(\pi(\cdot|x) | \pi_{\text{ref}}(\cdot|x)) ] \leq \epsilon πmaxE(x,y)∼π[R(x,y)]s.t.Ex∼D[DKL(π(⋅∣x)∣πref(⋅∣x))]≤ϵ
其中:
- (x) 是 prompt(来自数据分布 (\mathcal{D})),
- (y) 是模型生成的回复,
- (R(x, y)) 是标量奖励函数(例如由 RM 给出),
- ϵ\epsilonϵ是 KL 预算。
这是一个经典的约束优化问题。
🔑 2. 拉格朗日对偶 & 最优策略解析解
引入拉格朗日乘子 β>0\beta > 0β>0 ,将约束问题转化为无约束问题:
maxπEx∼D[Ey∼π(⋅∣x)[R(x,y)]−β⋅DKL(π(⋅∣x)∣πref(⋅∣x))]\max_{\pi} \quad \mathbb{E}{x \sim \mathcal{D}} \left[ \mathbb{E}{y \sim \pi(\cdot|x)} [ R(x, y) ] - \beta \cdot D_{\mathrm{KL}}(\pi(\cdot|x) | \pi_{\text{ref}}(\cdot|x)) \right] πmaxEx∼D[Ey∼π(⋅∣x)[R(x,y)]−β⋅DKL(π(⋅∣x)∣πref(⋅∣x))]
对每个固定的 (x),内层优化为:
maxπ(⋅∣x)∑yπ(y∣x)R(x,y)−β∑yπ(y∣x)logπ(y∣x)πref(y∣x)\max_{\pi(\cdot|x)} \quad \sum_y \pi(y|x) R(x, y) - \beta \sum_y \pi(y|x) \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} π(⋅∣x)maxy∑π(y∣x)R(x,y)−βy∑π(y∣x)logπref(y∣x)π(y∣x)
这是一个关于概率分布 π(⋅∣x)\pi(\cdot|x)π(⋅∣x) 的凹优化问题。对其求导并令梯度为零,可得全局最优策略(即 DPO 中著名的结论):
π∗(y∣x)=πref(y∣x)exp(1βR(x,y))Z(x)(1)\pi^*(y|x) = \frac{ \pi_{\text{ref}}(y|x) \exp\left( \frac{1}{\beta} R(x, y) \right) }{ Z(x) } \tag{1} π∗(y∣x)=Z(x)πref(y∣x)exp(β1R(x,y))(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))是配分函数(partition function),依赖于 (x) 但不依赖于 (y)。
✅ 关键点:这个最优策略 π∗\pi^*π∗ 是我们希望学习到的目标。
🎯 3. 目标:设计一个损失函数,使其最小值对应 (\pi_\theta = \pi^*)
我们希望构造一个关于参数 θ\thetaθ 的损失函数 L(θ)L(\theta)L(θ),使得:
- L(θ)L(\theta)L(θ) 在 πθ=π∗\pi_\theta = \pi^*πθ=π∗ 时取得全局最小值;
- L(θ)L(\theta)L(θ) 的形式便于用 SGD 优化(即能写成期望形式,且不需要知道 (Z(x)))。
为此,考虑衡量当前策略 πθ\pi_\thetaπθ 与最优策略 π∗\pi^*π∗ 的差距。一个自然的选择是 KL 散度:
L(θ)=Ex∼D[DKL(π∗(⋅∣x)∣πθ(⋅∣x))](2) L(\theta) = \mathbb{E}{x \sim \mathcal{D}} \left[ D{\mathrm{KL}}( \pi^*(\cdot|x) | \pi_\theta(\cdot|x) ) \right] \tag{2} L(θ)=Ex∼D[DKL(π∗(⋅∣x)∣πθ(⋅∣x))](2)
由于 KL 散度非负,且仅在两分布相等时为 0,因此该损失的全局最小值确实出现在 πθ=π∗\pi_\theta = \pi^*πθ=π∗。
展开 (2):
L(θ)=Ex[∑yπ(y∣x)logπ(y∣x)πθ(y∣x)] =Ex[∑yπ(y∣x)logπ(y∣x)−∑yπ∗(y∣x)logπθ(y∣x)]\begin{aligned} L(\theta) &= \mathbb{E}{x} \left[ \sum_y \pi^(y|x) \log \frac{\pi^(y|x)}{\pi\theta(y|x)} \right] \ &= \mathbb{E}{x} \left[ \sum_y \pi^(y|x) \log \pi^(y|x) - \sum_y \pi^*(y|x) \log \pi\theta(y|x) \right] \end{aligned} L(θ)=Ex[y∑π(y∣x)logπθ(y∣x)π(y∣x)] =Ex[y∑π(y∣x)logπ(y∣x)−y∑π∗(y∣x)logπθ(y∣x)]
第一项与 θ\thetaθ 无关,可忽略。因此优化等价于最小化:
Ex[∑yπ∗(y∣x)logπθ(y∣x)]=−E(x,y)∼π∗[logπθ(y∣x)]](3)\mathbb{E}{x} \left[ \sum_y \pi^*(y|x) \log \pi\theta(y|x) \right] = - \mathbb{E}{(x,y) \sim \pi^*} [ \log \pi\theta(y|x) ] \tag{3} ]Ex[y∑π∗(y∣x)logπθ(y∣x)]=−E(x,y)∼π∗[logπθ(y∣x)]](3)
但这需要从 π∗\pi^*π∗ 采样,而 π∗\pi^*π∗ 正是我们要学的,不可行。
💡 4. 关键技巧:利用 group-wise 采样 + 零和权重消去 (Z(x))
论文的核心洞察是:如果我们不是单条采样,而是在每个 prompt (x) 下采样一个 group Yx=y1,...,yK\mathcal{Y}x = {y_1, ..., y_K}Yx=y1,...,yK,并使用满足 ∑k=1Kwk=0\sum_{k=1}^K w_k = 0k=1∑Kwk=0 的权重,则 (Z(x)) 会自动消掉。
从 (1) 出发,取对数:
logπ∗(y∣x)=logπref(y∣x)+1βR(x,y)−logZ(x)(4) \log \pi^*(y|x) = \log \pi_{\text{ref}}(y|x) + \frac{1}{\beta} R(x, y) - \log Z(x) \tag{4} logπ∗(y∣x)=logπref(y∣x)+β1R(x,y)−logZ(x)(4)
现在,考虑任意一组权重 ∑k=1Kwk\sum_{k=1}^K w_kk=1∑Kwk 满足 ∑kwk=0\sum_k w_k = 0k∑wk=0。对 (4) 两边乘以 wkw_kwk 并对 k求和:
∑k=1Kwklogπ∗(yk∣x)=∑k=1Kwklogπref(yk∣x)+1β∑k=1KwkR(x,yk)−logZ(x)∑k=1Kwk⏟=0\sum_{k=1}^K w_k \log \pi^*(y_k|x) = \sum_{k=1}^K w_k \log \pi_{\text{ref}}(y_k|x) + \frac{1}{\beta} \sum_{k=1}^K w_k R(x, y_k) - \log Z(x) \underbrace{\sum_{k=1}^K w_k}_{=0}k=1∑Kwklogπ∗(yk∣x)=k=1∑Kwklogπref(yk∣x)+β1k=1∑KwkR(x,yk)−logZ(x)=0 k=1∑Kwk
最后一项消失!得到:
∑k=1Kwklogπ∗(yk∣x)=∑k=1Kwklogπref(yk∣x)+1β∑k=1KwkR(x,yk)(5)\sum_{k=1}^K w_k \log \pi^*(y_k|x) = \sum_{k=1}^K w_k \log \pi_{\text{ref}}(y_k|x) + \frac{1}{\beta} \sum_{k=1}^K w_k R(x, y_k) \tag{5} k=1∑Kwklogπ∗(yk∣x)=k=1∑Kwklogπref(yk∣x)+β1k=1∑KwkR(x,yk)(5)
这说明:在零和权重下,最优策略的对数概率与奖励之间存在一个不依赖 (Z(x)) 的线性关系。
🧩 5. 定义"隐式奖励"与"实际奖励"的中心化形式
为了匹配 (5) 的结构,定义:
- 实际奖励的中心化版本(centered reward): R~(x,yk):=R(x,yk)−Rˉ(x),其中Rˉ(x)=1K∑j=1KR(x,yj)\tilde{R}(x, y_k) := R(x, y_k) - \bar{R}(x), \quad \text{其中} \quad \bar{R}(x) = \frac{1}{K} \sum_{j=1}^K R(x, y_j) R~(x,yk):=R(x,yk)−Rˉ(x),其中Rˉ(x)=K1j=1∑KR(x,yj) 显然 ∑kR~(x,yk)=0\sum_k \tilde{R}(x, y_k) = 0k∑R~(x,yk)=0。
- 隐式奖励的中心化版本(implicit reward from policy): 从 (1) 反推,定义隐式奖励为:
- R^θ(x,y):=βlogπθ(y∣x)πref(y∣x)\hat{R}\theta(x, y) := \beta \log \frac{\pi\theta(y|x)}{\pi_{\text{ref}}(y|x)} R^θ(x,y):=βlogπref(y∣x)πθ(y∣x)
- 其中心化版本为: R~θ(x,yk):=R^θ(x,yk)−R^θ‾(x),其中R^θ‾(x)=1K∑j=1KR^θ(x,yj)\tilde{R}\theta(x, y_k) := \hat{R}\theta(x, y_k) - \overline{\hat{R}\theta}(x), \quad \text{其中} \quad \overline{\hat{R}\theta}(x) = \frac{1}{K} \sum_{j=1}^K \hat{R}\theta(x, y_j) R~θ(x,yk):=R^θ(x,yk)−R^θ(x),其中R^θ(x)=K1j=1∑KR^θ(x,yj) 同样有
- ∑kR~θ(x,yk)=0\sum_k \tilde{R}\theta(x, y_k) = 0k∑R~θ(x,yk)=0
注意:
R~θ(x,yk)=β(logπθ(yk∣x)−logπref(yk∣x)−logπθ−logπref‾)\tilde{R}\theta(x, y_k) = \beta \left( \log \pi\theta(y_k|x) - \log \pi_{\text{ref}}(y_k|x) - \overline{\log \pi_\theta - \log \pi_{\text{ref}}} \right)R~θ(x,yk)=β(logπθ(yk∣x)−logπref(yk∣x)−logπθ−logπref)
📐 6. 构造 MSE 损失:让隐式奖励拟合真实奖励
既然在最优策略 π∗\pi^*π∗ 下,有 R~(x,yk)=R~(x,yk)\tilde{R}^(x, y_k) = \tilde{R}(x, y_k)R~(x,yk)=R~(x,yk),那么我们可以设计一个损失,最小化当前策略的隐式奖励与真实奖励之间的差异:
LGVPO(θ)=Ex∼D[1K∑k=1K(R~θ(x,yk)−R~(x,yk))2](6)L_{\text{GVPO}}(\theta) = \mathbb{E}{x \sim \mathcal{D}} \left[ \frac{1}{K} \sum{k=1}^K \left( \tilde{R}_\theta(x, y_k) - \tilde{R}(x, y_k) \right)^2 \right] \tag{6} LGVPO(θ)=Ex∼D[K1∑k=1K(R~θ(x,yk)−R~(x,yk))2](6)
其中 ykk=1K{y_k}{k=1}^Kykk=1K 是从某个采样策略 πs(⋅∣x)\pi_s(\cdot|x)πs(⋅∣x) 中采样的(不要求是 πθ\pi\thetaπθ 或 πref)\pi_{\text{ref}})πref)。
✅ 关键性质:当且仅当 R~θ=R~\tilde{R}\theta = \tilde{R}R~θ=R~ 对所有 (x, y) 成立时,损失为 0。结合 (1) 和中心化操作,这等价于 πθ=π∗\pi\theta = \pi^*πθ=π∗。
因此LGVPOL_{\text{GVPO}}LGVPO的全局最小值唯一,且对应理论最优策略 π∗\pi^*π∗。
这就是 GVPO 的核心损失函数。
🔁 7. 将 MSE 损失重写为策略梯度形式(可选)
虽然 (6) 已可直接用于训练,但论文进一步将其展开,揭示其与策略梯度的联系。
注意到: R~θ(x,yk)=β(logπθ(yk∣x)−logπθ‾(x))−β(logπref(yk∣x)−logπref‾(x))\tilde{R}\theta(x, y_k) = \beta \left( \log \pi\theta(y_k|x) - \overline{\log \pi_\theta}(x) \right) - \beta \left( \log \pi_{\text{ref}}(y_k|x) - \overline{\log \pi_{\text{ref}}}(x) \right) R~θ(x,yk)=β(logπθ(yk∣x)−logπθ(x))−β(logπref(yk∣x)−logπref(x))
代入 (6) 并展开平方项,保留与 θ\thetaθ 相关的部分(忽略常数项),可得等效的优化目标:
minθ−2βK∑k=1KR~(x,yk)logπθ(yk∣x)+β2K∑k=1K(logπθ(yk∣x)−logπθ‾(x))2 \min_\theta \quad -\frac{2\beta}{K} \sum_{k=1}^K \tilde{R}(x, y_k) \log \pi_\theta(y_k|x) + \frac{\beta^2}{K} \sum_{k=1}^K \left( \log \pi_\theta(y_k|x) - \overline{\log \pi_\theta}(x) \right)^2 θmin−K2βk=1∑KR~(x,yk)logπθ(yk∣x)+Kβ2k=1∑K(logπθ(yk∣x)−logπθ(x))2
即:
Lequiv(θ)=−E[∑kwklogπθ(yk∣x)]+β2⋅Vark(logπθ(yk∣x))+const(7)L_{\text{equiv}}(\theta) = -\mathbb{E} \left[ \sum_k w_k \log \pi_\theta(y_k|x) \right] + \frac{\beta}{2} \cdot \text{Var}k \left( \log \pi\theta(y_k|x) \right) + \text{const} \tag{7} Lequiv(θ)=−E[k∑wklogπθ(yk∣x)]+2β⋅Vark(logπθ(yk∣x))+const(7)
其中权重 wk=2KR~(x,yk)=2K(R(x,yk)−Rˉ(x))w_k = \frac{2}{K} \tilde{R}(x, y_k) = \frac{2}{K} (R(x, y_k) - \bar{R}(x))wk=K2R~(x,yk)=K2(R(x,yk)−Rˉ(x)),满足 ∑kwk=0\sum_k w_k = 0k∑wk=0。
📌 解读:
- 第一项:类似 GRPO 的加权 log-likelihood,权重是中心化奖励。
- 第二项:策略 log-prob 的方差正则项,鼓励探索(防止 collapse 到单点)。
- (更完整的推导还包含与 πref\pi_{\text{ref}}πref 的协方差项,起到 KL 正则作用)
这解释了为什么 GVPO 训练稳定:它内建了必要的正则项,无需额外 clip 或 KL penalty。
✅ 总结:GVPO 推导流程图
- 带 KL 约束的奖励最大化
↓ (拉格朗日对偶) - 得到理论最优策略 π*(y|x) ∝ π_ref * exp(R/β) / Z(x)
↓ (取对数) - log π* = log π_ref + R/β - log Z(x)
↓ (关键技巧:在 group 内使用 Σw_k=0 的权重) - Σ w_k log π* = Σ w_k log π_ref + (1/β) Σ w_k R ← Z(x) 消失!
↓ (定义中心化奖励: ˜R = R - mean®) - 在 π* 下,隐式奖励 ˜R_θ 应等于真实奖励 ˜R
↓ (构造 MSE 损失) - L_GVPO = E[ || ˜R_θ - ˜R ||² ]
↓ (展开) - 等价于:加权 NLL + 方差正则 + 协方差正则
这个推导链条清晰展示了 GVPO 如何从坚实的理论出发,通过巧妙的数学变换,得到一个既最优又实用的训练目标。