GTPO / GRPO-S
LLM-RL · 信用分配 · arXiv 2025

GTPO / GRPO-S:不再给一条回答里所有 token 同一个奖励

GRPO 在组内把末端奖励归一化后,平均贴到一条回答的每个 token;一条长度到 4,096 token 的正确回答里,关键决策 token 和普通连接词拿到同样的优势。GTPO / GRPO-S 用策略熵重新分配奖励:成功序列里高熵 token 拿更多正奖励,失败序列里低熵 token 拿更重的惩罚。Qwen2.5-7B 的 AIME 2024 Pass@32 从 DAPO 的 35.51 提到 GTPO 的 64.89,32B 上则是 59.02 到 68.91。

Hongze Tan、Zihan Wang、Jianfei Pan、Jinghao Lin、Hao Wang 等 · ByteDance / HKUST / Northeastern / CityUHK / SUSTech / BUPT 原文 v6 ↗
TL;DR · 30 秒抓住核心

论文把「信用分配」拆成一个奖励设计问题:GRPO/DAPO 的优化器可以不同,但同一条序列里所有 token 共享一个优势 Âi;GTPO 则给每个 token 单独的 r̃i,t,再用批内归一化得到 token 级优势。权重来自同一步不同成功序列之间的相对熵:Hi,t / ΣkHk,t。GRPO-S 把同样的权重换成序列平均熵 Ĥi,计算更省,论文称其长 CoT 稳定性更好。

实验只在数学推理上做:AIME 2024、AIME 2025、MATH500,模型是 Qwen2.5-7B 与 32B,基线是 GRPO、DAPO、DAPO w/ Forking Tokens。Table 1 的 14 个「模型 × 指标」单元格里,GTPO 与 GRPO-S 都高于三个基线;两者之间 GTPO 赢 9 格、GRPO-S 赢 5 格,绝对差多在 0.1–3.7 分。MATH500 上提升很小(+1.45 到 +1.63),真正的差距集中在 AIME。

边界也要一起看:所有结论只覆盖数学基准与 Qwen2.5-7B/32B;Table 1 是单次结果,没有随机种子、方差或置信区间;GTPO 的 token 级熵计算与 GRPO-S 的序列级开销差异也没有量化。页面把「表格能复算的数字」与「作者的稳定性观察」分开标注。

64.89
Qwen2.5-7B · AIME 2024 Pass@32 · GTPO;GRPO 46.01,DAPO 35.51
+29.4pp
GTPO 相对 DAPO 的 APG(64.89−35.51);32B 同口径只有 +9.9
18.33
Qwen2.5-7B · AIME 2025 Mean@32 · GRPO-S;GRPO 15.00
01

一条回答一个奖励:GRPO 的「大锅饭」与长度偏置

读完这节你应该知道:为什么「末端 0/1 + 组内归一化」在长链推理里不够用。

GRPO 对同一个 prompt 采样 G 条回答,每条拿一个末端奖励 ri ∈ {0,1},然后把这个奖励在组内标准化,得到一个标量优势 Âi,再贴到该序列的每个 token 上。对一条 4,096 token 的回答,第 1 个 token 和第 2,000 个 token 的优势完全相同;如果答案错了,整条序列一起被惩罚,哪怕中间大部分推理是对的。

论文进一步指出一个统计问题:当各条回答长度不等时,组内平均奖励有两种算法——按序列平均 R̂1 = (1/G)Σri,或按 token 平均 R̂2 = Σ|oi|ri / Σ|oi|。附录 B.1 证明 token 级平均的方差更小,而 GRPO 用的是序列级平均;这会让正确回答里的每个 token 都拿到同样的正优势,序列越长,累积的正奖励质量越大——论文把它概括为「the longer, the better」的隐含偏置。GTPO 的出发点就是把奖励信号从「每条序列一个数」改成「每个 token 一个数」。

粒度

序列级优势

同一条回答内所有 token 共享 Âi,无法区分关键决策与普通连接词。§2.1

长度

越长的正确回答,累积奖励质量越大

序列级平均让长回答的每个 token 拿到同样的正优势,累积奖励质量随长度增长,论文据此论证 token 级基线的方差更小。§2.1

信号

错误回答里也有信息

低熵 token 往往是「自信地算错」的位置;整条序列同罚,无法把惩罚集中到这些位置。§2.2

02

已有方案在改「损失怎么加」,这篇在改「奖励是什么」

读完这节你应该知道:PPO、GRPO、DAPO、DAPO w/ Forking Tokens 与 GTPO 的差别分别在哪一层。

路线 A

PPO → GRPO → DAPO:优化器与损失归一化

PPO 需要 critic 估计基线;GRPO 用组内奖励均值/方差代替 critic§2.1;DAPO 在损失层把 token 平均改为批次级单次平均Appendix A.3,并把错误答案的奖励从 0 改为 −1§2.4。三者都没有改变「同一条序列内所有 token 共享同一个优势」这一设定。

§2.1

路线 B

DAPO w/ Forking Tokens:二值掩码

Forking Tokens 直接丢弃低熵 token,只在高熵位置保留梯度。这是「保留/丢弃」的二值选择;论文认为它会丢掉分布中其余部分的学习信号,而 GTPO 用连续的熵权重重新分配奖励。

§3.2

论文还引用了「熵作为探索正则」的一类工作:把熵加进损失,鼓励策略保持随机性。GTPO 的不同点是把熵放进奖励本身——熵项不参与梯度回传,只改变奖励地形,因此它塑造的是「哪些 token 值得奖励」,而不是「让策略整体更随机」。§1

03

核心机制:成功序列奖励高熵 token,失败序列惩罚低熵 token

读完这节你应该知道:GTPO 与 GRPO-S 的奖励公式、优势归一化,以及论文声称的理论性质。

3.1 GTPO:token 级奖励

对成功序列 oi ∈ O+ 中的 token oi,t,奖励定义为:

r̃+i,t = α1ri + α2 · Hi,t / Σk=1nHk,t · dt

Hi,t 是该 token 在旧策略下的生成熵,分母是同一时间步所有成功序列的熵之和;dt 是长度至少到 t 的成功序列数,用来抵消「越往后活跃路径越少」的缩放。若某条成功序列长度小于 t,它的 Hk,t 按 0 计。失败序列的 token 则用逆熵:

r̃−j,t = α1(−1) + α2 · (1/Hj,t) / Σk=1m(1/Hn+k,t) · ht · (−1)

式中 ht 是长度至少到 t 的失败序列数;失败序列长度小于 t 时,其 1/Hj,t 按 0 计。直觉是:失败序列里熵越低(越自信)的 token,惩罚越重;成功序列里熵越高(越犹豫/探索)的 token,奖励越多。两组 token 分别做批内标准化,得到 Ã+i,t 和 Ã−j,t,再进入 PPO 式裁剪损失§2.2。熵本身不回传梯度,只作为奖励权重§2.4(Remark 2.5)。

交互 · 奖励计算器 拖动滑块,观察 Eq.3 中 α₂ 项如何随 H/ΣH 变化;d_t 固定为演示值 8。

真实训练里 H 是 ΣH 的一项,所以 H/ΣH ≤ 1;这里两个滑块独立取值,只为观察公式的线性关系。

手算对照 两组参数,逐位对齐上面的读数

参数 A:H = 0.8,ΣH = 2.4

  • H/ΣH = 0.8 / 2.4 = 1/3 = 0.333333…
  • α₂ × (H/ΣH) × d_t = 0.1 × (1/3) × 8 = 0.266666…
  • r̃ = 1 + 0.266666… = 1.266666…,按三位小数显示为 1.267。
  • 页面读数:H/ΣH 显示 0.333(未舍入 0.333333),r̃ 显示 1.267。

参数 B:H = 1.2,ΣH = 3.0

  • H/ΣH = 1.2 / 3.0 = 0.4 = 0.400000
  • α₂ × (H/ΣH) × d_t = 0.1 × 0.400000 × 8 = 0.320000
  • r̃ = 1 + 0.320000 = 1.320000,页面显示 1.320。
  • 页面读数:H/ΣH 显示 0.400(未舍入 0.400000),r̃ 显示 1.320。

脚本先用未舍入的比值算 r̃,再按三位小数显示;两组的显示值都与上式逐位对齐。

3.2 GRPO-S:序列级版本

GRPO-S 先算一条序列的平均熵 Ĥi = (1/|oi|)ΣHi,t,再用同样的相对权重给整条序列一个奖励:成功序列 r̂+i = β1ri + β2·Ĥi/ΣĤk·n,失败序列用平均逆熵惩罚。优势仍在序列级归一化,损失结构与 GRPO 相同,只是奖励换成了「熵加权后的序列奖励」。论文称它计算更省§2.3,并在长 CoT 上更稳定Abstract。

3.3 理论保证的两个前提

命题 2.2 说:当 α1+α2=1 时,每个时间步成功序列的正奖励总量保持不变——熵权重只是在成功路径之间重新分配,不改变总奖励质量。命题 2.3 说:在「熵合并条件」下(训练后期不同成功序列在同一位置的熵趋于相同),GTPO 与 GRPO 的梯度差渐近为零;定理 2.4 由此推出 GTPO 与 DAPO 共享同一个全局最优。论文自己也注明:实验里 α1+α2 只是接近 1,并未严格相等;理论结论依赖渐近条件。§2.4

04

工程账:64 张 GPU、batch 128、group 16、α₂=0.1

读完这节你应该知道:这套奖励塑形需要哪些超参,以及哪些设置论文没有交代。

数据与指标

3 个数学基准,Pass@k 为主

AIME 2024、AIME 2025、MATH500;主指标是 Pass@k(k ∈ {2,4,8,16,32})与 Mean@32。论文用 APG(绝对提升)和 RPG(相对提升)描述增益;所有实验在 Qwen2.5-7B 与 Qwen2.5-32B 上做。§3.1

训练设置

64 GPU / batch 128 / group 16

全局 batch 128,组大小 16,学习率 1×10−6;生成 temperature 1.0、top-p 1.0;prompt 最大长度 2,048,response 最大长度 4,096。奖励塑形超参 α1=β1=1、α2=β2=0.1,熵裁剪到 [0.2, 0.28];另加 Appendix D 的 Group Relative Overlong Punishment 控制长度。§3.1

论文只报告在 210 步内基本收敛,未给总训练步数、GPU 小时、显存占用或每次迭代的额外开销§3.3;硬件只说「64 GPUs」§3.1。这一点对复现很关键:GTPO 需要为每个 token 计算并存储熵,GRPO-S 只需要序列平均熵,两者的实际成本差异没有量化。附录 C 讨论了几何平均版本的替代定义Appendix C,附录 D 给出长度惩罚的完整分段函数Appendix D,两者都没有进入主实验的超参表。

05

一轮训练:采样 → 末端奖励 → 熵加权 → 优势归一化 → PPO 更新

读完这节你应该知道:GTPO 与 GRPO-S 在流程中的分叉点,以及熵在哪一步被用到。

Prompt q 数学题 采样 G=16 πθold 末端奖励 ri ∈ {0, 1} 划分 O+ / O− 成功集 n / 失败集 m 计算熵 H(i,t) 成功序列:按同位置归一化 失败序列:用 1/H 加权 奖励塑形 GTPO:Eq.3 / Eq.5 GRPO-S:Eq.8 / Eq.9 优势 + PPO 更新 Eq.6 / Eq.7,clip 熵不回传梯度 α1 + α2 = 1 时,正奖励总量在成功序列之间守恒 GTPO 逐 token 归一化;GRPO-S 先取序列平均熵,再按序列归一化
按 §2.1–2.4 与 Algorithm 1 重绘。GTPO 与 GRPO-S 共用采样、末端奖励、优势归一化和 PPO 裁剪;分叉点在「奖励塑形」:前者按 token,后者按序列。
06

效果:14 个单元格全部高于基线,但 MATH500 只多约 1.5 分(1.45–1.63)

读完这节你应该知道:提升集中在哪、GTPO 与 GRPO-S 谁更稳,以及论文「小模型收益更大」的参照系。

6.1 Table 1 完整转录

Table 1(完整转录):Qwen2.5-7B/32B 在 AIME 2024、AIME 2025、MATH500 上的 Pass@k 与 Mean@32;每格是该模型该指标下的原始百分数。
模型 / 方法AIME24 Mean@32AIME24 Pass@4AIME24 Pass@32AIME25 Mean@32AIME25 Pass@4AIME25 Pass@32MATH500 Mean@32
Qwen2.5-7B
GRPO28.3636.1546.0115.0019.0320.0078.62
DAPO21.230.0435.5113.3316.2816.6778.85
DAPO w/ Forking Tokens30.7741.3454.1615.2119.8221.6779.25
GTPO34.2348.0364.8916.6725.5126.6780.16
GRPO-S34.6747.1864.7618.3322.7623.3380.07
Qwen2.5-32B
GRPO29.1737.1846.3017.7125.9528.8584.16
DAPO34.0646.6459.0221.6725.7626.6784.45
DAPO w/ Forking Tokens34.6847.8164.1223.1927.9932.0285.21
GTPO35.2149.4168.9126.8933.4936.6785.72
GRPO-S35.5251.1267.1925.1129.7534.3385.79

底色 = 该模型该列 5 个方法中的最高值;GTPO/GRPO-S 不再整行高亮。

6.2 两个模型 × 四个关键指标

GRPO DAPO DAPO w/ Forking GTPO GRPO-S

四行分别是 AIME24 Mean@32、AIME24 Pass@32、AIME25 Mean@32、AIME25 Pass@32;柱高按固定上限 90 满格,数值保留两位小数。

两个方法都赢,但赢法不同。14 个「模型 × 指标」单元格里,GTPO 与 GRPO-S 都高于 GRPO、DAPO、DAPO w/ Forking Tokens。两者互比时 GTPO 赢 9 格、GRPO-S 赢 5 格:GTPO 在 7B 的 AIME24 Pass@4(48.03 vs 47.18)与 AIME25 Pass@4(25.51 vs 22.76)更高,GRPO-S 在 7B 的 AIME25 Mean@32(18.33 vs 16.67)和 32B 的 AIME24 Mean@32(35.52 vs 35.21)略高。差距多数在 1–4 分,没有出现一个方法在全部单元格上压制另一个。

小模型收益更大,但这个结论依赖参照系。论文用 Pass@32 相对 DAPO 的 APG 说:7B 的 +29.4 点远大于 32B 的 +9.9 点。这组数字本身可从 Table 1 复算:64.89 − 35.51 = 29.38、68.91 − 59.02 = 9.89。但若把参照换成 GRPO,方向就反过来:7B 是 64.89 − 46.01 = 18.88,32B 是 68.91 − 46.30 = 22.61,32B 反而更大。推断(依据:Table 1 同一列的三组数值;论文正文只报告了相对 DAPO 的 APG)。

MATH500 接近天花板。7B 上 GTPO 比 GRPO 高 1.54 分(80.16 − 78.62),GRPO-S 高 1.45 分;32B 上 GTPO 高 1.56 分(85.72 − 84.16),GRPO-S 高 1.63 分(85.79 − 84.16)。论文摘要称 MATH500 与 AIME 并列达到「new state-of-the-art」,但从表格看,MATH500 的绝对提升远小于 AIME;真正的差异在 AIME 2024/2025 的 Pass@4 与 Pass@32。

GRPO-S 的稳定性是作者的观察,不是表格结论。7B 的 AIME25 Mean@32:GRPO-S 18.33 高于 GTPO 16.67;32B 的 AIME24 Mean@32:GRPO-S 35.52 高于 GTPO 35.21。论文在 §3.4 说 GRPO-S 在超参扫描中更稳,但 Table 1 只给单次结果,没有方差或置信区间,无法从表格验证「更稳」;页面只把它当作作者的实验观察。

07

边界:数学基准上的奖励塑形,还没有跨域与成本账

读完这节你应该知道:哪些结论有表格支撑,哪些只是作者的解释或尚未验证的推断。

域

只有数学

AIME 2024、AIME 2025、MATH500 都是数学竞赛题;代码、科学推理、长文写作、工具调用都没有测。跨域是否仍成立,论文没有回答。§3.1

模型

只有 Qwen2.5 两档

7B 与 32B 同属一个模型家族;不同架构、不同预训练数据、或更小/更大的模型上没有实验。§3.1

方差

没有种子与误差棒

Table 1 只给单次结果,没有报告随机种子、标准差或置信区间;GTPO 与 GRPO-S 之间 0.1–3.7 分的差距是否稳定,无法从表格判断。推断(依据:全文未检索到 seed / standard deviation / error bar 的实验报告)。

还有三点。第一,熵是「认知不确定性」的代理,但词表多样性也会抬高熵;一个模板化的客套句可能比关键定理选择更高熵,论文在 §4 把「哪种相对熵定义最好」列为开放问题,没有给出判别方法。第二,理论保证依赖 α1+α2=1 与「熵合并条件」;实验只让两者接近 1,且渐近条件在有限步训练里是否成立没有验证。第三,超参敏感性只在 Figure 5 里扫了三组配置(α2=β2 从 0.1 到 0.2 等)Figure 5;论文 §3.4 说 β2 从 0.1 增到 0.2 会让 GRPO-S 整体下降§3.4。这只能说明「熵奖励不能太大」,不足以给出调参指南。

最后是成本:GTPO 要为每个 token 计算并存储熵,GRPO-S 只需序列平均熵;论文没有报告训练时长、显存或吞吐的差异,也没有与 DAPO w/ Forking Tokens 的掩码成本对比。对工程落地来说,「多花多少算力换这约 1–29 分(Table 1 的绝对差区间)」仍是空白。