GVPO
LLM-RL · NeurIPS 2025

GVPO:用零和权重消掉配分函数,把 KL 最优解写进梯度

后训练算法的梯度大多可以写成“每个回答的权重 × log 概率的梯度”。GVPO 的关键观察是:只要一个 prompt 组内的权重和为零,KL 最优解里的配分函数 Z(x) 就会在梯度中抵消。于是它把“隐式奖励与真实奖励的中心化差”直接做成权重,得到一个有 MSE 解释、且论文证明其最优解与 KL 约束奖励最大化一致的损失。Qwen2.5-Math-7B 上,五个数学基准从 14.68 / 38.55 / 64.00 / 27.20 / 30.66 升到 20.72 / 62.65 / 83.80 / 45.95 / 46.96。

Kaichen Zhang、Yuzhong Hong、Junwei Bao、Hongfei Jiang、Yang Song、Dingqian Hong、Hui Xiong · HKUST(GZ) / 作业帮 / HKUST 原文 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

RLHF 的目标是 KL 约束下的奖励最大化。它的解析最优解是 π*(y|x) = π_ref(y|x) e^{R(x,y)/β} / Z(x),但 Z(x) 要对所有可能回答求和,算不动。DPO 用成对偏好让 Z(x) 在 Bradley-Terry 里约掉;GVPO 则把“组内权重和为零”作为消去条件,把方法扩展到一次比较 k 条回答。

GVPO 的梯度权重是 w_i = (R_i − R̄) − β(log πθ/πθ′ − 组均值)。它等价于最小化“隐式奖励的中心化值”与“真实奖励的中心化值”的均方误差。论文证明:在采样分布满足支撑条件时,损失的最优解与 KL 约束奖励最大化的最优解一致,且该解是全局最优。

Qwen2.5-Math-7B 主实验用 k=5、β=0.1、8×H800,AIME2024(avg@32)20.72、AMC 62.65、MATH500 83.80;相对基座,AIME 提升 6.04 个百分点(相对 41.1%),相对最好的基线 Remax 提升 3.53 个百分点(相对 20.5%)。

代价是每个 prompt 要采样 k 条回答;论文没有和 GRPO/PPO 做墙钟时间对比。评测以数学为主,摘要任务放在附录;开放域、代码、多模态都没有验证。

20.72%
Qwen2.5-Math-7B 的 AIME2024 avg@32;基座 14.68%
62.65%
同模型 AMC pass@1;基座 38.55%
83.80%
同模型 MATH500 pass@1;基座 64.00%
01

要最大化奖励,却先被配分函数卡住

后训练的目标不复杂:让模型多生成高奖励回答,同时不要偏离参考模型太远。难点在于最优解的归一化项。

给定 prompt x、策略 πθ、参考策略 πθ′,KL 约束奖励最大化的目标是:

maxπθ Ex∼D, y∼πθ(·|x)[ R(x, y) ] − β DKL[ πθ(·|x) ‖ πθ′(·|x) ]
Eq. 3:β > 0 控制偏离参考策略的惩罚。

这个目标有解析最优解:

π*(y|x) = (1 / Z(x)) · πθ′(y|x) · exp( R(x, y) / β )
Z(x) = Σy πθ′(y|x) exp( R(x, y) / β )
Eq. 4:Z(x) 是对所有可能回答的求和;对语言模型来说不可枚举。

把 Eq. 4 反过来,可以得到隐式奖励:

R(x, y) = β log( π*(y|x) / πθ′(y|x) ) + β log Z(x)
Eq. 5:Z(x) 仍然在,且与 y 无关。

如果直接把 Rθ(x,y) 与真实奖励 R(x,y) 做回归,Z(x) 会留在损失里;如果把 Z(x) 近似掉,又会引入偏差推断(依据:§3.4 指出直接回归 Rθ 会得到 Rθ(x,y)=R(x,y)+βlogZ(x),偏离真实奖励;近似误差如何传导到策略,原文未展开)。DPO 的解法是用成对偏好,让 Z(x) 在 Bradley-Terry 的比值里约掉;GVPO 的解法是让一组回答的权重和为零,这样 Z(x) 在加权求和里也消失。

SFT

每条回答权重 1

只抬高示范回答的 likelihood,没有负样本,也不利用奖励的相对大小。

DPO

成对权重 +w / −w

用偏好对构造权重,Z(x) 在成对比较中消掉;但一次只比较两条回答。

GRPO

组内标准化奖励

用 (R_i − mean)/std 作权重;依赖 on-policy 采样与重要性采样,偏离时可能梯度爆炸。

这三类方法的梯度都可以写成同一个形式:

∇θL(θ) = − Σ(x, y1, …, yk) Σi=1k wi ∇θ log πθ(yi|x)
Eq. 7:统一框架。SFT 的 w1=1;GRPO 的权重是标准化奖励;DPO 的成对权重是 +w/−w。

于是问题变成:怎样设计 wi,既让 Z(x) 消掉,又让最优解仍然对应 Eq. 3 的最优策略?

02

DPO 用成对比较消 Z,GRPO 用组内标准化换稳定

GVPO 不是从零发明一个损失,而是把 DPO 的解析解思路扩展到组,同时绕开 GRPO 的重要性采样。

DPO 的贡献

把奖励模型消成策略比值

DPO 把 Eq. 5 代入 Bradley-Terry 偏好模型:成对回答的 Z(x) 相同,做比值时约掉。因此它只需要偏好对 (yw, yl),不需要显式奖励模型,也不需要在线采样。

DPO 的局限

只比较两条,且依赖 BT 假设

论文引用前人工作指出:DPO 的损失可能有多个极小值,且与真实奖励目标的相关性会在训练中减弱;Bradley-Terry 模型本身也有假设限制。GVPO 想把“成对”扩展成“组”,同时保留解析解。

GRPO 的贡献

去掉价值模型,用组内相对奖励

GRPO 对每个 prompt 采样 k 条回答,用组内标准化的奖励作为优势,省掉了与策略同规模的价值网络;DeepSeek-R1 用它做 RL 训练。

GRPO 的局限

重要性采样比与 clip 的稳定性代价

论文说 GRPO 对 clip 阈值和 KL 系数敏感;离线更新时 πθ/πθ_old 可能过大或过小,导致梯度爆炸。clip 能压住数值,但会引入有偏梯度。

GVPO 的切入点因此很明确:保留“组内相对比较”的信息,但不使用重要性采样,也不依赖 clip。它从 Eq. 5 出发,设计一个权重,使 Z(x) 在组内加权和里消失;这个权重同时要能把“隐式奖励的中心化值”拉向“真实奖励的中心化值”。

表 0 · 四类方法的权重结构对比(页面整理,非论文表格)
方法每组样本梯度权重 wi是否需要重要性采样论文声称的最优性
SFT1 条示范1否只拟合示范,不针对奖励
DPO1 对偏好+w / −w否依赖 BT 假设;论文引用前人指出可能次优
GRPOk 条采样(Ri − mean)/std是(πθ/πθ_old)经验性;需要 clip/KL 稳定
GVPOk 条采样或历史数据(Ri − R̄) − β(log ratioi − 均值)否(论文证明支撑条件即可)论文证明最优解与 Eq. 3 一致

表中的公式只用于对比结构;GVPO 的正式梯度见 Eq. 8。DPO 的“可能次优”是论文对前人工作的引用,不是本页的独立结论。

03

零和权重让 Z(x) 消失,MSE 解释让目标可算

GVPO 的推导只有两步:先找消去 Z(x) 的条件,再把权重写成“隐式奖励与真实奖励的中心化差”。

第一步:组内权重和为零

把 Eq. 5 代入加权和,得到:

Σi wi Rθ(x, yi) = Σi wi β log( πθ(yi|x) / πθ′(yi|x) ) + β log Z(x) Σi wi
只要 Σi wi = 0,第二项就消失;Z(x) 不再需要估计。

GVPO 选择的权重是:

wi = ( R(x, yi) − R̄(x, {yi}) ) − β ( log( πθ(yi|x) / πθ′(yi|x) ) − L̄(x, {yi}) )
Eq. 8 的权重部分;R̄ 是组内平均奖励,L̄ 是组内平均 log 比值。按构造,Σ wi = 0。

直观上,第一项是“这条回答比组平均好多少”,第二项是“这条回答的隐式奖励比组平均高多少”。两者相减,得到的是“实际奖励的中心化值”与“隐式奖励的中心化值”的差。权重为正,说明这条回答的真实优势大于模型当前认为的优势,应该被抬高;权重为负则相反。

第二步:把梯度写成 MSE

把 Eq. 8 代回 Eq. 7,并利用 Σ wi = 0、∇θR(x, R̄) = 0,可以得到:

∇θLGVPO = (1/2) ∇θ Σx,{yi} Σi [ (Rθ(x,yi) − R̄θ(x,{yi})) − (R(x,yi) − R̄(x,{yi})) ]2
Eq. 9 的等价形式:GVPO 的梯度等于一个 MSE 损失的梯度。

因此 GVPO 可以读成“让模型内心的相对奖励排序去拟合外部奖励的相对排序”。它不要求隐式奖励的绝对值等于真实奖励;只要求两者在组内的中心化值一致。这也是 Z(x) 能消掉的原因:Z(x) 只影响绝对值,不影响组内相对差。

论文的保证与条件

Theorem 3.1

πs = πθ′ 时,最优解就是 Eq. 3 的最优策略

最小化 Eq. 9 得到的策略 π*(y|x) ∝ πθ′(y|x) e^{R(x,y)/β},与 KL 约束奖励最大化的解析解一致;论文证明这是全局最优解。

Theorem 3.2

任意满足支撑条件的采样分布都可以

只要 πθ′ 的支撑集被 πs 覆盖,即 {y | πθ′(y|x) > 0} ⊆ {y | πs(y|x) > 0},同样的最优性结论成立。因此可以用 πθ_old、历史数据、甚至混合采样。

论文还把 β=1 时的梯度拆成三项:优势项 (R − R̄)∇log πθ、方差项 Var(log πθ)、协方差项 Cov(log πθ, log πθ′)。方差项替代熵正则,协方差项约束策略不要偏离参考模型。这个分解解释了为什么 GVPO 不需要显式的 KL 项或 clip。

组内三个权重(log 比值固定为 0.0 / −0.5 / −0.2)
w1 = 0.643 w2 = −0.307 w3 = −0.337
Σ wi = 0.000(按构造恒为零)
手算:三组参数 与滑块输出逐位一致(三位小数)

固定 log 比值 L = (0.0, −0.5, −0.2),所以 L̄ = −0.2333。

1)R=(1, 0, 0),β=0.1:R̄=0.3333。w1=(1−0.3333)−0.1×(0−(−0.2333))=0.643;w2=(0−0.3333)−0.1×(−0.5+0.2333)=−0.307;w3=(0−0.3333)−0.1×(−0.2+0.2333)=−0.337。和为 0.000。

2)R=(1, 1, 0),β=0.1:R̄=0.6667。w1=0.3333−0.1×0.2333=0.310;w2=0.3333−0.1×(−0.2667)=0.360;w3=−0.6667−0.1×0.0333=−0.670。和为 0.000。

3)R=(1, 0, 0),β=0:权重退化为 Ri − R̄,即 0.667 / −0.333 / −0.333。和为 0.000。

β 只改变隐式奖励项的缩放,不破坏零和;奖励差决定正负,log 比值差决定同一奖励下的相对修正。

04

8 张 H800、每步 1024 个 prompt、k=5:成本主要花在组采样

GVPO 与 GRPO 一样不需要价值模型,但每个 prompt 要采样 k 条回答;论文给了训练时长,没有给与 GRPO/PPO 的墙钟对比。

主实验的设置如下(Appendix A.1):

项目设置说明
基础模型Qwen2.5-Math-7B主表;1.5B 用于 β/k/πs 消融与随机种子实验
训练数据Competition Math每个 step 采样 1024 个 prompt,mini-batch 256
训练轮数10 epochswarm-up 5%
学习率5e−6网格搜索 {5e−7, 1e−6, 5e−6, 1e−5} 后选择
组大小k=5主实验;1.5B 消融用 k=8
β0.1主实验;消融覆盖 0.01–0.5
硬件8×H800 80GB论文报告 7B k=5 每步 6–8 分钟,约 12 小时/实验
7B 主实验

k=5,每步 6–8 分钟,约 12 小时完成一个实验(Appendix A.1)。

1.5B 消融

k=8,每步 4–5 分钟,约 8 小时完成一个实验;β/k/πs 与随机种子实验都在 1.5B 上做。

没有报告

论文没有给 GPU 小时、显存峰值,也没有给与 GRPO/PPO 的墙钟对比;GRPO 同样不需要价值模型,不能把这一项当成 GVPO 相对 GRPO 的速度优势。

成本结构上,GVPO 的组采样与 GRPO 一样是 k 条回答;GVPO 与 GRPO 都不维护价值模型,GVPO 的差别是不做重要性采样、也不需要 clip 的比率修正。论文的代码实现(Listing 1)只改了几行 verl 的 GRPO loss,说明工程改动很小;但“改动小”不等于“总算力低”,因为组采样仍是主导成本。

另一个数据条件是:GVPO 需要每个 prompt 有可计算的标量奖励 R(x,y)。数学任务用规则 verifier 很自然;开放域任务需要奖励模型,成本与偏差都会转移到这里。

05

采样一组回答,算零和权重,再回传梯度

一次 GVPO 迭代:prompt → 采样 k 条 → 奖励 → 权重 → MSE 梯度 → 更新;采样分布 πs 可以与当前策略不同。

prompt x x ∼ D 采样 k 条回答 y_i ∼ π_s(·|x) 计算奖励 R(x, y_i) 零和权重 w_i Σ w_i = 0,Z(x) 消失 GVPO MSE 梯度 中心化隐式奖励 ↔ 中心化真实奖励 更新策略 π_θ ← π_θ − η∇L 下一组 π_s:旧策略 / 历史 可选采样来源 π_θ_old · 历史数据 · 混合策略(Theorem 3.2)
图:GVPO 的一次迭代示意。采样分布 πs 不要求等于当前策略;只要支撑条件满足,Theorem 3.2 的最优性结论仍成立。不覆盖分布式训练、batch 拼接与具体 verl 实现。
Step 1–2

采样

每个 prompt 采样 k 条回答;主实验 k=5,1.5B 消融 k=8。πs 可以是 πθ_old、历史策略或混合分布。

Step 3–4

奖励与权重

算每条回答的标量奖励,再算组内均值 R̄ 与 log 比值均值 L̄,得到 wi;零和是构造出来的,不需要额外归一化。

Step 5

MSE 梯度

用 wi 加权 log πθ 的梯度,等价于中心化隐式奖励与中心化真实奖励的 MSE;Z(x) 已消掉。

Step 6

更新与复用

更新 πθ 后进入下一组;旧策略或历史数据可以继续参与采样,不需要重要性采样修正。

06

AIME 20.72、AMC 62.65、MATH500 83.80:五个基准都高于基座与基线

先看主表,再看随机种子、换基座、正则项消融,最后是与 DPO 的摘要任务对比。

Table 1 · 主实验(Qwen2.5-Math-7B,k=5)

算法AIME2024 (avg@32)AMCMATH500MinervaOlympiadBench
Qwen2.5-Math-7B14.6838.5564.0027.2030.66
+ GRPO14.7955.4280.0041.1742.07
+ Dr.GRPO16.5648.1981.2044.4843.40
+ Remax17.1960.2482.0040.4445.19
+ Reinforce++16.6754.2280.4043.0141.78
+ GVPO20.7262.6583.8045.9546.96

Table 1:AIME2024 用 avg@32(30 题),其余用 pass@1;所有方法用相同的模型、数据和硬件,算法超参按各自原论文。AIME 这一列的最好基线是 Remax 17.19,不是 Dr.GRPO 16.56。

相对基座,GVPO 在 AIME 上提升 6.04 个百分点(相对 41.1%),AMC 提升 24.10 个百分点(相对 62.5%),MATH500 提升 19.80 个百分点(相对 30.9%),Minerva 提升 18.75 个百分点(相对 68.9%),OlympiadBench 提升 16.30 个百分点(相对 53.2%)。

相对各列最好的非 GVPO 基线:AIME 是 Remax 17.19,GVPO 高 3.53 个百分点(相对 20.5%);AMC 是 Remax 60.24,高 2.41 个百分点(相对 4.0%);MATH500 是 Remax 82.00,高 1.80 个百分点(相对 2.2%);Minerva 是 Dr.GRPO 44.48,高 1.47 个百分点(相对 3.3%);OlympiadBench 是 Remax 45.19,高 1.77 个百分点(相对 3.9%)。

相对 GRPO:AIME 高 5.93 个百分点(相对 40.1%),AMC 高 7.23 个百分点(相对 13.0%),MATH500 高 3.80 个百分点(相对 4.8%),Minerva 高 4.78 个百分点(相对 11.6%),OlympiadBench 高 4.89 个百分点(相对 11.6%)。

当前读数
Base
14.68
GRPO
14.79
Dr.GRPO
16.56
Remax
17.19
Reinforce++
16.67
GVPO
20.72
GVPO基座 / 对照算法柱高按当前指标的最大值归一;数值逐字取自 Table 1
手算:图表归一化 三组,与柱高逐位一致

AIME2024:最大值是 GVPO 20.72,所以 GVPO 柱高 = round(20.72/20.72×1000)/10 = 100.0%;Remax = round(17.19/20.72×1000)/10 = 83.0%;基座 = round(14.68/20.72×1000)/10 = 70.8%。

AMC:最大值 62.65;GVPO 100.0%;Remax = round(60.24/62.65×1000)/10 = 96.2%;基座 = 61.5%。

MATH500:最大值 83.80;GVPO 100.0%;Remax = round(82.00/83.80×1000)/10 = 97.9%;基座 = 76.4%。

柱高最低 1.2%,避免 0 值柱不可见;本表最小值不低于 59.2%,不会触发。

Table 3 · 10 个随机种子(Qwen2.5-Math-1.5B)

算法AIME2024AMCMATH500MinervaOlympiadBench
GRPO13.59±1.1144.34±2.1976.30±1.3535.40±1.0438.65±0.74
GVPO15.56±1.0545.78±2.0577.36±0.9836.03±1.1539.58±1.08

Table 3:10 个随机种子的均值±标准差,Qwen2.5-Math-1.5B。GVPO 的均值全列更高,标准差与 GRPO 同量级;AIME 差 1.97 个百分点(相对 14.5%),AMC 差 1.44 个百分点(相对 3.2%)。

Table 4 · 换基座:Llama-3.1-8B-Instruct

算法AIME2024AMCMATH500MinervaOlympiadBench
Llama-3.1-8B-Instruct5.0019.2750.4022.4217.04
+ GRPO8.5419.2752.6025.3716.15
+ GVPO11.5620.4856.6029.4120.59

Table 4:Llama-3.1-8B-Instruct 上的对比。相对 GRPO,GVPO 在 AIME 高 3.02 个百分点(相对 35.4%),AMC 高 1.21 个百分点(相对 6.3%),MATH500 高 4.00 个百分点(相对 7.6%),Minerva 高 4.04 个百分点(相对 15.9%),OlympiadBench 高 4.44 个百分点(相对 27.5%)。

Table 2 · 去掉正则项后的崩溃

算法AIME24AMCMATH500MinervaOlympiadbench
GVPO20.7262.6583.8045.9546.96
GVPO − Var0.000.000.000.000.00
GVPO − Cov0.000.000.000.000.00
GVPO − Var − Cov7.1939.7673.0034.9335.70
GVPO − Var + Entropy0.000.000.000.000.00
GVPO − Var + Entropy (LR=1e−6)3.0239.7633.2023.168.89

Table 2:正则项消融。单独去掉 Var 或 Cov 都会让训练发散、输出不连贯;同时去掉后约 10% 训练步开始崩。用 entropy 正则替代 Var 也不能恢复。

Table 5 · 摘要任务(附录 C)

算法RewardWin RateAccuracyGPT-4oGemini-2.5-proDeepSeek-R1Human
SFT2.8441.85%—————
+ DPO4.8368.28%60.43%31%40%25%34%
+ GVPO5.7579.49%64.93%69%60%75%66%

Table 5:Reddit 摘要数据,Qwen2.5-1.5B 先做 SFT,再分别用 DPO/GVPO 后训练;奖励模型是 OpenAssistant/reward-model-deberta-v3-large-v2。GVPO 比 DPO 的 Reward 高 0.92,Win Rate 高 11.21 个百分点,Accuracy 高 4.50 个百分点;LLM/人工评测的差值见表格。

原文内部错位

§4 写 “As shown in Table 5”,但 Llama 对比在 Table 4

原文在 “Robustness Check with a Different Foundation Model” 一段写 “As shown in Table 5, GVPO again outperforms GRPO”,但 Table 5 是摘要任务;Llama-3.1-8B-Instruct 的五基准对比实际在 Table 4。页面按 Table 4 引用,保留原文的编号错位作为并列说明。

07

理论保证有前提,实验范围仍然窄

GVPO 的“全局最优”是数学结论,不是“在所有任务上都更好”的经验结论;两者需要分开看。

理论前提

支撑覆盖 + 精确优化

Theorem 3.2 要求采样分布覆盖参考策略的支撑集;实际实现用 πθ_old 或历史数据,通常满足,但有限采样与优化误差不在定理里。定理也不保证有限步 SGD 一定到达最优解。

奖励依赖

标量奖励仍是外部输入

数学任务用规则 verifier;摘要任务用一个 DeBERTa 奖励模型。奖励模型的偏差会被 GVPO 高效拟合推断(依据:Appendix C 只用奖励模型打分与算胜率,未做 reward hacking 的对照实验);论文没有做 reward hacking 的定量分析。

评测范围:主实验是数学(AIME2024、AMC、MATH500、Minerva、OlympiadBench),附录 C 是 Reddit 摘要。代码生成、开放域对话、长文本、多模态、Agent 任务都没有实验。论文的“通用后训练算法”是方法层面的主张,不是跨任务验证过的结论。

对比范围:数学主表包含 GRPO、Dr.GRPO、Remax、Reinforce++,但没有 DPO/IPO 在相同数学设定下的直接对比;DPO 只出现在摘要附录。论文也没有和 PPO 做墙钟时间、显存或样本效率的对比,因此“比 PPO 更高效”只能从“不需要价值模型、不做重要性采样”的算法结构去理解,不能从实验数字直接推出。

超参与规模:β 的消融在 1.5B 上以曲线呈现(0.01–0.5),k 的消融也只给 Figure 3 的曲线;页面不转录图中未标注的精确点。主实验只有 7B,Llama 实验只有 8B;没有 70B、MoE 或更长训练的 scaling 结果。

还有一个边界是“组”的定义:GVPO 的零和性质依赖一次更新中对同一个 prompt 的 k 条回答做中心化。k=1 时 wi=(Ri−R̄)−β(Li−L̄)=0,Σwi=0 仍然成立,但没有梯度信号;若把一个 batch 里不同 prompt 的回答混在一起算组均值,全局 Σwi=0 仍成立,但 Z(x) 是逐 prompt 的,βlogZ(x)Σiwi 不再按 prompt 消掉,Theorem 3.1/3.2 的推导前提被破坏。原文 Algorithm 1 第 4 行是“对每个 prompt x 采样 k 条回答”,Listing 1 的脚注也要求每个输入 batch 对应同一个 prompt 的 k 条回答,并去掉 GRPO 优势里的 std 归一化。