谈到 GRPO,我们不由自主会想到它的“抛光”特点——在 Base 的基础上做进一步锐化,我们之前在不少文章中都提到过,比如《RL究竟能不能突破Base边界——关于推理能力外推、稳定性与训练条件的系统分析 | 长琴[1]》。为了保持模型的探索性,常见的基本做法就是控制熵,这个方向有一大堆论文研究,我们也写过一点,比如《GRPO“第一背锅侠”Token Level X2:GTPO双“T”傍地走 | 长琴[2]》、《GRPO优化在继续——CISPO和熵 | 长琴[3]》。
今天介绍一个新的思路和方向,比训练中控制更前一步,直接优化 Pass@k,而不是 Pass@1——《2508 Pass@k Training for Adaptively Balancing Exploration and Exploitation of Large Reasoning Models[4]》,来自字节 seed × 人大。至于为什么会突然关注到这个方向,那自然是工作中遇到需要保持多样性的优化问题了。发现这个新方向后感觉还挺有意思,就拿来了解一下。
要想了解 Pass@k training,得先看 Pass@1 training 有啥问题。在目前主流的 ORM 下,答案正确是第一优先级,哪怕过程错了也能获得正向奖励,反过来,过程正确答案错误就没有奖励,这就导致这类探索“不被鼓励”,可能会让 policy 放弃探索并收敛到局部最优。
一种解决方法自然是能够对错误结果有更高的容忍度,Pass@k 本来是 eval 指标,文章将其拿来用作训练,做法很符合直觉——要想提高 Pass@k,policy 会倾向于生成 k 个不一样的候选解,而不是 k 个非常相似的。这天然就是“探索”的。结果也可以,在测试集上 Pass@k 更高,同时 Pass@1 基本不变。我们后面会详细介绍,先来看看怎么做的。
Pass@k as reward
因为 Pass@k 能够反映大模型的探索能力,文章直接将其作为 reward。首先定义 Pass@k:
很简单,就是最大的那个 reward。训练过程比较简单,首先是 个 rollout,然后分组:
向下取整,多的 rollout 直接不要,每组 个 response,用公式 1 得到的 reward 计算 advantage 就是这 个 response 的 advantage。Naive 的方案就是很 naive ;)实验结果显示,在 RLVR 训练中使用 Pass@k 作为奖励函数,可以在几乎不损害模型 Pass@1 性能(约掉 2 个点)的情况下,有效提升模型在下游任务上的 Pass@k 性能(接近 20 个点)。
Bootstrap Sampling
Naive 方法 rollout 数量要比较多(默认 k 倍),能否有更高效的方法?这不来了吗,采样数量不变,还是 ,每次从里面采样 个作为一组,重复 次,方法很简单,不增加 rollout 的数量。不过采样多次的话就一定有 rollout 会出现在多个 group 中,所以当然不能简单地用 naive 方法了,那会有冲突,而且本身也很奇怪。这里用的方法其实也很 naive:
对于每个 response,将其所属所有组别的 advantage 相加来计算其最终 advantage。比较简单就不举例子了。实际运行时,论文选择让 group 数等于 rollout 数。结果显示,相比 naive 的 full sampling,bootstrap sampling 能够在相同 rollout 数量下取得更好的效果。而且,即使把 full sampling 的 rollout 数扩大至 4 倍,bootstrap sampling 也只是微弱劣势。
Analytical Solution
Bootstrap 可能有采样误差,论文进一步推导出了 advantage 的解析解。注意,这里给出的是二元结果的推导。
如果一个 group 包含至少一个正确 response,那该组的奖励定义为 ,其他组(全错)则被定义为 ,组内奖励就是简单加权平均:
定义正确 response 的数量为 ,错误的数量为 ,。
总组数为:
因为 neg group 不包含正确的 response,很自然有:
显然,pos group 的数量为:
以上三个 N 代入式 4,可得:
根据方差定义 ,可得:
根据式 8,有:
group 的 advantage 需要转为 response 的,这里需要考虑每个 response 所属组的正确性,并按比例计算。
对于正确 response,advantage 也比较简单:
错误 response 稍微有点麻烦。
假设我们现在固定住某一条特定的错误样本,要包含这条特定的样本,需从剩下的 条回答中再挑选 条,因此,包含该负样本的 group 有:
只有当挑选的另外 条也全是负样本时,这个 group 才是 neg 的(奖励为 0)。从剩下的 条负样本中选 条有:
包含该负样本的 group 中,只要另外 条里有正样本,该组就是 pos group(奖励为 1)有:
对该条错误 response,advantage 为:
其实就是公式 4 的加权。化简后得到:
这里的直觉是:哪怕这条回答本身是错的,但只要当前的总体探索中存在正确的回答,这条负样本就有机会和正样本凑在同一个组里“蹭到”正奖励,从而减小了对错误回答的惩罚程度,给了模型更高的探索容错率。
看式 16、11 和 8,只要知道 、 和 ,rollout 中每条 response 的 advantage 就可以直接算出来,简直不要太省事。用解析推导的 Pass@k 训练不仅避免了 naive 方法大量 rollouts 带来的计算开销,还消除了 bootstrap sampling 中采样引入的方差。最最重要的是——效果比前两者都好!

深入分析能力
看起来好像很美好,论文接下来进一步验证了有效性,分析了 Pass@k 训练如何影响其探索能力,改进能否迁移到其他任务,并探索如何把 Pass@k 处的收益转移到 Pass@1 的性能上。这部分的分析还是挺精彩的。
第一个问题,Pass@k 训练与噪声奖励或熵正则化相比如何?

Pass@k 的机制下有些错误 response 也能获得奖励,这就有个问题——这些样本是否贡献了性能?论文把一定比例错误回复的奖励进行翻转(Pass@1,就是正常训练),结果自然是比例越高(噪声大)性能越差,而且越训越差。
那和同样机制的熵正则相比呢?效果自然是更好的,而且熵正则本身也不稳定,引入新的权衡。不过这两个方法本身是正交的。
第二个问题,Pass@k 训练是否真正提升了大模型的探索能力?

第一个指标是答案的多样性。Pass@1 训练过程中负响应的多样性基本保持不变,这是很正常的,因为这是错误响应,模型会相对保守。但是 Pass@k 训练过程中,模型学会在不自信时生成多样性答案,探索性增强,性能也增加。
第二个指标是策略熵分布。Pass@k 保持了策略分布的熵处于相对较高的水平,而 Pass@1 则使熵收敛到较低值。
第三个问题,模型在 Pass@k 训练后的泛化能力如何?

结果显示,Pass@k 展现出比 Pass@1 更强的泛化能力,在领域内及跨领域测试中均较基础模型实现了更大提升。
第四个问题, k 值如何影响 Pass@k 训练?

实验结果显示,无论 k 的值如何,随着训练的进行,训练奖励都能提升到相对较高的水平。这说明 k 值并不是帮助大模型逃离 Pass@1 训练局部最优的关键因子。
另外,较大的 k 会导致较小的 advantage,从而导致较短的优化步长,导致训练效率降低。但增加学习率可以缓解这一问题。
第五个问题,Pass@k 训练的好处能否转化为 Pass@1 的表现?

实验结果显示,Pass@k 训练之后进行 Pass@1 训练能显著提升大模型性能。而且,这一提升不受模型参数规模、模型架构、模型家族以及下游任务的影响。不过,更大的模型效果更不明显。
Pass@1与Pass@k区别
表面看起来是选 1 个和选 k 个,但 Pass@k 能帮 policy 逃离局部最优,为了更清楚地探索背后的原因,论文用优势的绝对值作为指标代理——优势值仅取决于响应的正确性,直接与梯度相乘可视为梯度的缩放因子。优势值绝对值越大,意味着梯度缩放程度越高,对应样本的更新步长也越大,投入的优化努力也越多。由此定义绝对优势之和:
要考察 ,得先知道 和 , 本来就是大于等于 0 的,绝对值不影响; 的分母是大于 0 的,符号看分子,根据公式 8 和 16, 的分子如下式所示:
根据组合数性质 ,有:
当 时为 0(从少于 k-1 个样本无法选出 k-1 个),其他情况小于 0。
在 下,优势函数曲线如下图所示:

这里有三个差异:
- Pass@1 训练方法的 𝜂 最大值远高于 Pass@k 训练方法,最大值并不是使 Pass@k 训练优于 Pass@1 训练的关键因素。其实还能说明 Pass@1 更自信,Pass@k 毕竟混入错误 response。
- 对于 Pass@1 训练,𝜂 的最大值出现在 50% 准确率(rollout 50% 对 50% 错)的位置,而对于 Pass@k,𝜂 的最大值位置则在 25% 准确率(rollout 25% 对 75% 错)处。说明 Pass@k 训练更关注优化较难的问题,而 Pass@1 训练则更关注中等难度的问题。进一步说明,Pass@k 训练倾向于引导模型解决之前未解决或较难的问题,而不是对已掌握的问题产生过拟合。
- 在 Pass@k 训练曲线中,数值先增加至峰值,然后逐渐下降至零。问题相对容易时(比如正确率高于 60%),模型施加的最优化强度(由 𝜂 的值表示)小于对较难问题的优化强度。说明 Pass@k 训练更侧重于优化模型尚未掌握的问题。相比之下,Pass@1 训练过程中,𝜂 曲线在最大值点处对称,表明训练过程对简单和困难问题分配了相等的注意力。
进一步分析发现,
- 过度学习简单样本是导致模型陷入局部最优的关键因子,应适当降低这类问题的优化强度。
- 将简单问题的奖励设为零并不足以有效防止模型在它们上过度优化,仅仅延迟了陷入局部最优的时机。
- 将更大的优化力度分配给难题,可以有效提升训练效率。
进一步推广
这部分主要是考虑如何把 Pass@k 与现有方法融合,达到最佳优化效果,也是我们最关注的部分。
第一个方向, Exceeding Pass@k Training。
假设 𝜂 函数中较早的峰值会带来更好的 Pass@k 训练最优化性能,设计如下变换函数:
它能将 𝜂 函数的峰值向前移动到正确率为 1/32 的位置,预期应该能带来更好的效果。

结果显示,早期训练阶段能有效提升模型的 Pass@k 表现,但由于过于侧重难题,导致在下游任务中 Pass@1 性能的提升较为缓慢。
第二个方向,Combination Training
Pass@k 侧重于优化较难的问题,那就结合一下,设计下面的公式:
当 rollout 的正确性得分较低时,Pass@1 训练的优势值获得更高的权重并主导训练过程。相反,正确性较高时,Pass@k 训练的优势值被赋予更大的权重,避免对已掌握问题过拟合。结果不错,模型性能迅速提升并保持较高的增长率。

第三个方向,Adaptive Training。
简单来说,就是根据熵调整训练策略。具体来说,计算每个 query rollout 的平均熵,然后排序,前 50% 为高探索问题,其余为低探索问题。前者采用 Pass@1 利用先前探索,后者采用 Pass@k 鼓励进一步探索。结果表明,策略分布的熵可以作为模型探索能力的指标,并且与 Pass@k 训练结合。

总之,结合或动态调整不同形式的优势估计方法,有希望同步提升探索与利用能力。
如果reward连续
论文主要针对的是 RLVR 结果可验证场景,但其实对 reward 连续的场景也是可以用的,naive 和 bootstrap sampling 方法是可以直接用的,这里稍微麻烦的是解析解,因为奖励的期望不再是一个简单的组合计数问题,而是变成了顺序统计量。
当然,最简单的方法就是卡一个阈值,二值化,等价于可验证场景,略过不谈。这里可以尝试将其转为排序问题。假设一个 batch 生成了 个回答,它们的连续得分已知,先将其按奖励从小到大排好(我们假设 R 都在 0 和 1 之间):
从 个样本中无放回随机抽取 个样本构成一个 group,该 group 的最大值恰好等于第 个样本得分 的概率为:
group 奖励的期望值为:
下面看单个 response 的闭式解。
设样本 的分数为 ,其在升序排列中的排名为第 位(即 )。在 bootstrap / 无放回抽样中,包含样本 的所有可能 group 共有 种。样本 的期望 advantage ,本质上是它在所有包含它的 group 中产生的组奖励期望,减去总体组均值 (再除以组标准差 )。
包含样本 的一个 group 有两种情况:
- 样本 成为该 group 最大值,此时组奖励为 。概率权重对应的组合数为 。
- Group 中存在比样本 更大的样本,最大值为 (其中 )。此时样本 只是陪衬,组奖励由 决定。满足条件的组合数为 (即 占 1 位,样本 占 1 位,其余 位从比 小且除去样本 的 个样本中选)。
将这两部分加权求和,样本 所在的组期望奖励 的精确定量公式为:
现在离 advantage 就差一个方差了:
后面的项就是式 24,现在看第一项。
因为 ,显然有 。所以,第一项只要把式 24 的 换成平方项即可:
于是,标准差为:
看起来很吓人,其实过程很简单,而且实际算起来也很快。
于是,我们就得到了任一 response 的 advantage:
工程角度
形式上看起来好像更简单甚至优雅一些,不用像 0/1 场景分两种情况,但实际工程上不然。
回顾一下,0/1 场景,我们只需知道 、 和 就能直接算了,而且只要算两个标量常数 和 就够了,所有正样本都是 ,负样本同理,这里的时间空间复杂度都是 。
再看连续场景,首先必须对 个连续得分进行显式排序(得到排名 ),增加了 的开销。然后更麻烦的是每个样本得单独算,因为其包含更高分数的边缘贡献求和项 都不相同。
数值稳定性
另外,从数值稳定性角度看,0/1 场景也极具优势, 组合数的递推性质,可以极其方便地转化为简单乘积,避免大组合数阶乘溢出,并且分子分母截断干净。回顾式 8,第二项组合数之比可以写成如下连乘形式:
这个连乘在概率上非常直观:它就是“连续无放回地抽取 个样本,抽到的全部都是负样本”的概率。
- 第 1 次抽到负样本的概率:
- 第 2 次抽到负样本的概率:
- …
- 第 次抽到负样本的概率:
把这 个概率直接乘起来,就是全负组的概率。所以,计算时不需要真的算组合,一个简单的循环或张量操作即可:
1 | # 假设已知 N_neg, N_rollout 和 k |
相反,连续场景涉及到得分平方的加权求和 与均值平方 的相减,当连续得分 的数值非常接近时,这种相减容易触发浮点数精度截断,导致算出的方差可能变成微小的负数,需要做特殊的数值平滑防护。
训练稳定性
其实,还有一个可能是非常致命的问题——训练稳定性。这里不是刚刚提到的“连续值依靠排名,当分数接近时可能会导致梯度信号失效”的问题,失效只是效率问题,更令人担忧的其实是排名抖动带来的高方差梯度。
比如两个回答差不多,一个得了 0.851,另一个 0.852,在下一个 step 可能正好反过来了,但是位置一颠倒,它们对应的组合数权重 就会直接互换。
在 Pass@ 这种对顶部极度敏感(因为只看 max)的机制下,微小的高频得分噪声会被“顺序统计量/组合数”暴力放大,导致 Advantage 波动剧烈,训练极易不稳定。
但是你如果去分桶,又需要引入新的外部超参,而且一旦分桶,其实就和 0/1 做法类似了。0/1 场景不看样本内部相对排名,只看能不能通过 verification,只要过了就是 positive,没过就是 negative,很好地避免了对 max 敏感的问题。
别急,最后想想
现在,我们“合上书本”,闭上眼想一想 Pass@k 究竟是个啥。直觉上来看,Pass@k 就是给一些错误答案也提供一丝机会,不是错了就往死压,导致模型最后收敛到一个狭窄区域。尤其是 policy 非常会 hack reward,会加速收敛到表面简单特征。
注意,这里的不往死里压并不等于给负样本正奖励,负样本的奖励就是 0,不会变成 1。这里靠的是「根据全局正样本的数量,动态削弱对负样本的惩罚」。相比 Pass@1 的对错题施加大的负向梯度,Pass@k 的惩罚极其微弱。
我们来看一个直观的例子,假设 , ,有:
- 全负组概率:
- 组平均奖励:
- 组标准差:
- 正样本优势:
- 负样本优势:(当 时为 )
有下表的对应关系(表格由 AI 生成,下同):
| 正样本数 Npos | 负样本数 Nneg | 组平均奖励 Rgroup | 组标准差 σgroup | 正样本优势 A^pos | 负样本优势 A^neg | 场景特征说明 |
|---|---|---|---|---|---|---|
| 0 | 32 | 0.0000 | 0.0000 | — | — | 全错:无有效梯度,跳过更新 |
| 1 | 31 | 0.1250 | 0.3307 | +2.6458 | -0.0853 | 极罕见正样本: 极其高,极大程度鼓励探索 |
| 2 | 30 | 0.2379 | 0.4258 | +1.7898 | -0.1193 | 高奖励区分度,正样本优势显著 |
| 4 | 28 | 0.4284 | 0.4949 | +1.1550 | -0.1650 | 探索初期典型场景 |
| 8 | 24 | 0.7028 | 0.4570 | +0.6503 | -0.2168 | 正负样本较为均衡 |
| 16 | 16 | 0.9501 | 0.2178 | +0.2291 | -0.2291 | 正负样本各半 |
| 24 | 8 | 0.9980 | 0.0442 | +0.0443 | -0.1330 | 模型收敛期,正样本占比高, 衰减 |
| 28 | 4 | 0.99997 | 0.0053 | +0.0053 | -0.0371 | 极少错误,仅对微小负样本保持轻微惩罚 |
| 29 | 3 | 1.0000 | 0.0000 | — | 0.0000 | :任意 4 个样本组合必然包含正样本,组奖励恒为 1 |
| 32 | 0 | 1.0000 | 0.0000 | — | — | 全对:无有效梯度,跳过更新 |
注意看,正样本的 advantage 有自适应调节机制:
- 当正样本极少(如 )时, 可以高达 +2.65,给予唯一的正确解极强烈的正向强化;
- 当正样本很多(如 )时, 迅速衰减到 +0.04,避免模型在已掌握的模式上过度拟合(Exploitation 抑制)。
负样本的 advantage 是非线性动态变化的,呈现出 U 形曲线:
- 在正样本很少时,负样本的惩罚并不重(如 时只有 -0.0853),从而容忍早期探索中的错误;
- 当 (低于 )时,根据公式推导, 变为 0,不再对极少数的负样本施加负向惩罚。
这个机制非常有意思:左侧高位,在难题上,即使做错了也不重罚,给模型留足了大胆探索新路子的空间;中间谷底,中等难度题上,此时模型已经有了部分解决能力,需要强力压制错误路线、强化正确路线;右侧高位,在简单题上,停止无意义的惩罚,避免模型在已掌握的领域过度拟合。
另外要注意,表格里的 A 都是单样本的,如果看“全局总 advantage”,还需要乘以样本数,如下所示:
| 正样本数 Npos | 负样本数 Nneg | 单个正 A^pos | 单个负 A^neg | 全局正总和 Atotal_pos | 全局负总和 Atotal_neg | 全局总量(绝对值和 η) |
|---|---|---|---|---|---|---|
| 0 | 32 | — | — | 0.00 | 0.00 | 0.00 |
| 1 | 31 | +2.65 | -0.09 | +2.65 | -2.65 | 5.30 |
| 2 | 30 | +1.79 | -0.12 | +3.58 | -3.58 | 7.16 |
| 4 | 28 | +1.15 | -0.17 | +4.62 | -4.62 | 9.24 |
| 8 | 24 | +0.65 | -0.22 | +5.20 | -5.20 | 10.40 |
| 16 | 16 | +0.23 | -0.23 | +3.66 | -3.66 | 7.32 |
| 24 | 8 | +0.04 | -0.13 | +1.06 | -1.06 | 2.12 |
| 28 | 4 | +0.005 | -0.04 | +0.15 | -0.15 | 0.30 |
| 29 | 3 | — | 0.00 | 0.00 | 0.00 | 0.00 |
| 32 | 0 | — | — | 0.00 | 0.00 | 0.00 |
始终成立。这是因为 advantage 做了标准化,整个 batch 的均值必须保持为 0。最后一列衡量了这一轮采样给模型带来的总学习信号(梯度更新总强度)。
我们再和 Pass@1 放一起对比一下:
| 正样本数 Npos | 负样本数 Nneg | GRPO R | GRPO A^pos | GRPO A^neg | Pass@4 Rgroup | Pass@4 A^pos | Pass@4 A^neg | 差异对比与影响说明 |
|---|---|---|---|---|---|---|---|---|
| 0 | 32 | 0.00 | — | — | 0.00 | — | — | 全错:无有效梯度,跳过更新 |
| 1 | 31 | 0.03 | +5.57 | -0.18 | 0.13 | +2.65 | -0.09 | 核心差异:GRPO 中 31 个负样本产生的负 Advantage 总和高达 -5.57,会强烈拉低错误路径上所有 Token 的概率;Pass@4 的负 Advantage 强度降低超 50%。 |
| 2 | 30 | 0.06 | +3.87 | -0.26 | 0.24 | +1.79 | -0.12 | GRPO 依然保持对正样本的高强度奖励与对负样本的绝对一刀切惩罚。 |
| 4 | 28 | 0.13 | +2.65 | -0.38 | 0.43 | +1.15 | -0.17 | Pass@4 在此时已经有近一半的组可以包含正样本,开始平滑奖励。 |
| 8 | 24 | 0.25 | +1.73 | -0.58 | 0.70 | +0.65 | -0.22 | 两种机制逐渐交汇,但 Pass@4 对正样本的梯度刺激更快开始回落。 |
| 16 | 16 | 0.50 | +1.00 | -1.00 | 0.95 | +0.23 | -0.23 | GRPO 呈现对称的 1:1 奖惩;而 Pass@4 的组奖励已高达 95%,正负样本的单个强度同步衰减。 |
| 24 | 8 | 0.75 | +0.58 | -1.73 | 0.998 | +0.04 | -0.13 | GRPO 对极少数负样本施加高强度惩罚(-1.73);Pass@4 认为组通过率几乎饱和,开始收敛更新。 |
| 28 | 4 | 0.88 | +0.38 | -2.65 | 0.99997 | +0.005 | -0.04 | GRPO 负样本 Advantage 达到 -2.65;Pass@4 逐渐趋于 0。 |
| 29 | 3 | 0.91 | +0.32 | -3.11 | 1.00 | — | 0.00 | 界限打破:Pass@4 此时组成功率达到 100%,错题完全不扣分();而 GRPO 对那 3 个错题施加高达 -3.11 的毁灭性负梯度。 |
| 32 | 0 | 1.00 | — | — | 1.00 | — | — | 全对:无有效梯度,跳过更新 |
简单来说,探索初期,Pass@1 由于要满足均值为 0,31 个负样本会分摊掉极大的“总负梯度量”(累积 -5.57),导致模型把包含大量潜在推理前瞻的错题给“一刀切死”;而 Pass@k 把负样本单个惩罚幅度直接砍半,降低了探索失败的代价,保护了高风险但有潜力的分支。
而探索后期,Pass@1 错题越少,剩下的微小错题拿到的负 advantage 越大,极其激进地逼迫模型摒弃一切变体;而 Pass@k 在负样本数量少于 k 时直接停止惩罚,容许模型维持多元化的表达。
别急,再往前想想
那为啥 Pass@k 可以避免 policy 坍缩呢?这里咱们不能只看正 advantage 的变化,还得同时看负 advantage 的变化。Pass@1 中模型后期走向保守是因为“两极分化的不平等惩罚”;但 Pass@k 的逻辑是,如果这题稳过了(比如 Pass@4=1),就不要再浪费时间了,梯度直接关了,模型没有“避险”压力。换句话说,虽然正 advantage 小了,但是负 advantage 直接没了,那我依然还是正的。
都到这里了,你肯定会想:这不就是动态调整 advantage 吗,我能不能「直接作用于 advantage 函数?」恭喜你,撞上了一大波 paper。这里有点像前面《进一步推广》一节的「隐式奖励设计」,其实不看 paper 我们也能大概想到一些思路。
负样本动态衰减惩罚系数
很简单,直接引入一个基于正样本比例 的动态衰减因子 ,直接对负样本的 advantage 进行缩放。比如直接让 也不是不可以,当正样本比较少时,接近 0,直接抹平对负样本的压制,然后再来个分段截断,当 (极简单题)时,强制负样本 advantage 为 0。当然也可以设计更复杂的函数,比如指数/幂函数等。
最小标准差/advantage截断
Advantage 容易暴涨的核心在于分母的标准差, 在 或 时趋近于 0,导致整体被放大。那干脆直接给它截断,强行指定一个最小值(比如 0.25),或者也可以对 advantage 做 clip,再或者干脆直接把标准差去掉好像也不是不行,DrGRPO[5] 不就是这么干的吗……巧的是,他们当时就是为了解决「问题级归一化导致的难度偏差问题」——标准差较低的问题(例如,太简单或太困难的问题,结果奖励几乎全为 1 或 0)在策略更新时会被赋予更高的权重。
基于策略熵的动态正则化
监控 policy 的熵变化,当熵急速下降(说明模型开始走向保守和单一路径)时,动态将负样本的 advantage 乘以一个小于 1 的衰减系数,强行拉高模型继续尝试新路径的意愿;当模型收敛良好、多样性足够时,再逐步恢复惩罚。
分割线拉开,但是我们刚刚提到 paper 了,随便来看两个类似工作吧。
首先看《2505 AAPO: Enhancing the Reasoning Capabilities of LLMs with Advantage Margin[6]》,它的出发点是解决 advantage 在接近 0 时(组内方差很低)的训练效率低下问题。另外,组内奖励差异显著时,advantage 也可能表现出高方差,进而可能导致不稳定甚至非预期的梯度上升。
我们重点看第一个问题。AAPO 是咋做的呢,看下面的公式:
注意,这里实际是两个值(low 和 high,论文默认取 -0.2 和 0.28,看起来是 DAPO 的配置),简单起见我们写成相反数。 是相对 reference 的 margin 项,在 advantage 趋近于 0 时提供额外信号。它会放大和 ref 奖励不一样的样本,正负都会放大。
值得一提的是,AAPO 是这几个工作里唯一引入外部冻结参考模型作锚的:Pass@k、ProGRPO 都在“组内”做文章,而 AAPO 在组内全对或全错、GRPO advantage 归零时,只要 policy 相对 reference 还有奖励余量,margin 项就仍能续上梯度。代价是要额外维护并评估一个参考模型的奖励。
再来看《2602 Back to Basics: Revisiting Exploration in Reinforcement Learning for LLM Reasoning via Generative Probabilities[7]》,简称为 ProGRPO(ARM),它出发点是解决模式崩溃和多样性受限问题,论文将 prompt 和 response 的置信度纳入 advantage 估计,如下式所示:
这里的 是在低概率(最不确定的约 20%)token 上算的归一化似然,prompt 侧是题目的熟悉度/难度,response 侧是回答的置信度,全错/全对时 advantage 保持不变, 消融最优 0.3。
有点课程学习的思想:难题/训练初期,对于负样本,如果对 prompt 不熟但 response 置信度很高,这种会加大惩罚;简单题/训练后期,如果模型对题目极度熟悉,偏置项为正,错题的惩罚会相对减弱,防止偶然失误陷入保守避险。而且,它还会给“蒙对”的轨迹降权、给“谨慎探索的错”保留惩罚——所以 ProGRPO 是二维的:难度(组内分布)×内在置信(q 与 o 的差),如下表所示:
| 维度 1:组内分布 | 维度 2:模型内在状态 | 标准 GRPO 的病灶 | ProGRPO (ARM) 的真实纠偏动作 |
|---|---|---|---|
| 极难题 () | 盲目自信写错 () | 31 个错题只有 微弱惩罚,无法制止幻觉。 | ,额外追加负偏置,严惩盲目自信的错题。 |
| 极难题 () | 谨慎探索写错 () | 31 个错题给微弱负惩罚。 | ,保持微弱惩罚,保护探索动作。 |
| 简单题 () | 熟练题偶然写错 () | 唯一错题承受 毁灭性重罚,导致策略熵崩溃。 | ,叠加正偏置,强行把 向上拉,缓解暴胀惩罚。 |
| 简单题 () | 瞎蒙做对 () | 31 个对的样本获得 正奖励。 | ,扣减正偏置,不给“蒙对”的轨迹发高分。 |
AAPO 与 ProGRPO 这两个工作和 Pass@k 是类似的,只改 advantage 标量、零侵入 loss 代码。如果把范围放大一点,深入到核心梯度的反向传播阶段,又有很多工作,比如我们之前介绍过的《GRPO优化在继续——CISPO和熵 | 长琴[3]》,这篇文章其实介绍了好几个论文,CISPO 是下到 token 粒度瞄准重要性采样系数,还有一篇关于熵的《2506 Reasoning with Exploration: An Entropy Perspective[8]》,我把它简称为 GRPOEA,直接把经过裁剪并断开梯度的熵项加到 advantage 上。直观上来看,更高的熵会导致更新更强(熵低时其实也会增加幅度,但没那么大)。而且,因为加上去的项永远为正,对于 advantage 绝对值比较小的负样本(group 内大部分都错),它的负惩罚直接被熵奖励给抵消了一部分(机制保证不会翻转为正数);而对于advantage 绝对值比较大的负样本(group 内大部分都对),它负惩罚也会打折扣。总的来说,「鼓励探索」!和我们这篇文章的主题是贴着的。
说到熵,顺便再说一个相关工作,来自《2509 Harnessing Uncertainty: Entropy-Modulated Policy Gradients for Long-Horizon LLM Agents[9]》的 EMPG,它是乘法调节,而且值也不是刚刚那个经过裁剪并断开梯度的熵,它乘的是一个基于熵的自适应的函数 (后面还有一项求和项:未来清晰度奖励,这里先不考虑),对于置信度较高(熵低于 batch 平均值)的步骤,,放大梯度,同时针对正负 advantage;相反,对于不确定的步骤,,衰减梯度,防止高熵噪声带来的更新导致 policy 训练不稳定。总的来说,「注重置信」!对于不确定状态,更新要保持谨慎,减小力度。
再来一条分割线,说回前面那个范围放大,工作其实更多,我们简单介绍两个吧,正好是两个同期工作。
第一个是《2510 BAPO: Stabilizing Off-Policy Reinforcement Learning for LLMs via Balanced Policy Optimization with Adaptive Clipping[10]》,论文发现两个关键洞见:负优势样本在策略梯度中占据主导地位,抑制有用行为,并可能导致梯度爆炸;clip 机制会系统性地阻碍增加策略熵的更新,推动策略走向过度利用。随之提出带自适应裁剪的平衡策略优化——根据每一步训练中正向 token 对 loss 的实际贡献率,自适应放大上限 、调整下限 ,动态调整 advantage,引入更多低概率的正向 token 入队优化以维持策略熵,同时过滤掉过度的负向惩罚,从而平衡探索与利用。
另一个是《2510 When Importance Sampling Misallocates Credit: Asymmetric Ratios for Outcome-Supervised RL[11]》,也就是 ASPO,核心出发点是:一旦一个共享级别的 response advantage 被广播给所有 token,重要性采样系数()的作用实际变成了决定这个结果信号应该如何在不同 token 之间进行分配。结果就是,已经很有把握的 token(当前概率高),给很大的权重强化,尚未掌握但关键的 token(当前概率低),反而得到很小的权重,几乎得不到强化。这是只有下到 token 粒度才能观察到的现象。这和《DAPO:为GRPO的锦上加四点花 | 长琴》[12]中 clip higher 要解决的问题是一致的,但是 DAPO 没解决核心问题:低概率的正向 token 仍然只能获得较弱的更新。我记得当时还是有一些疑惑的,说了一句:“论文中low被设置成0.2,high被设置成0.28。看起来好像也没增加多少;)”ASPO 它翻转了重要性系数导致的 token 权重反向:低概率的正向 token 将获得更强的更新;已经具有较高置信度的 token 降低权重。注意,这里负样本是正常的,给概率高的 token 大权重惩罚,给概率低的 token 小权重很合理。所以,ASPO 只对正样本引入“倒数权重”,“非对称”就是表现在这里。这里还采用了 CISPO[13] 的软截断(传统 clip 是硬截断,梯度会被阻断):只裁剪数值本身,但保留梯度。
好了,其实类似这种动态调整 clip 的工作我们之前就介绍过,可还记得《GRPO“又一背锅侠”:Clip的各种拉扯 | 长琴[14]》?我们当时聊了 DAPO 的 clip higher、GMPO 的 clip wider、动态 clip 的 DCPO(2509 发表的),以及《GRPO优化在继续——CISPO和熵 | 长琴[3]》中的 CISPO 和 GRPOEA。我们还通过 paper《2506 Spurious Rewards: Rethinking Training Signals in RLVR[15]》了解了限制探索的机理,知道确实与 clip 有关。
这些工作其实又都和 token 粒度调整 advantage 有关,我们自然就关联到了再之前的《GRPO“第一背锅侠”Token Level X:DAPO/DrGRPO与GSPO/GMPO的殊途同归 | 长琴[16]》,当时这篇文章的重心是 “token level”,准确来说是重要性采样系数,但其最终影响是落在了 advantage 上。紧随其后的《GRPO“第一背锅侠”Token Level X2:GTPO双“T”傍地走 | 长琴[2]》介绍了两个重名的 GTPO,其中一个出发点就是 advantage——引入冲突感知的梯度校正机制,用于缓解共享 token 上的梯度冲突。另一个虽然是根据熵动态调整 token 奖励,但最后当然还是落到 advantage 上。
这回是真的最后了
看到了吗,我们回来了!我们从 Pass@k reward 出发,分析了一系列做法和能力,从 0/1 reward 自然过渡到连续 reward。进一步分析发现这东西居然和 advantage 优化直接相关——它其实是根据全局正样本的数量,动态、自适应地调整 advantage!
我们终于还是掉到了那个“红海”,这里的工作是如此之多。和 Pass@k 最直接、最相似的就是重塑标量 advantage 的 AAPO 和 ProGRPO;如果放到 token 粒度,从 DAPO、GMPO、CISPO、GRPOEA 的 clip 变种,到 BAPO、ASPO、DCPO 的动态 clip,越做越细;自然也少不了直接动态调整 advantage 的操作,比如 GTPO,和前面的 clip 工作也是有着千丝万缕的联系;最后就是 ratio 统计粒度的 GSPO、GMPO 等工作。可以肯定,这方面的工作不止这些(我这里阅读列表还有几十篇……可以想象其“卷”的程度),囿于篇幅,只能列出一些供大家参考。感兴趣的读者可以自行搜索。
好了,说回 Pass@k,本文最初只是觉得这个方向很有意思,本来还有另一篇 paper《2505 Pass@K Policy Optimization: Solving Harder Reinforcement Learning Problems[17]》想一起写进来的,结果读完发现只写《2508 Pass@k Training for Adaptively Balancing Exploration and Exploitation of Large Reasoning Models[4]》好像也足够篇幅。只是没想到写着写着居然走了这么远,而且大家看这些工作大部分都是 2025 年(二三季度)的,DeepSeek R1 是真的带飞了 GRPO 啊。
Pass@k 这个方向短期内应该不会再写了, Pass@K Policy Optimization 是 DeepMind 的,主要是证明工作,在 0/1 和连续 reward 下,为 pass@k 及其梯度推导出新的、低方差且无偏的估计器。感兴趣的也是这个推导证明过程,留待日后吧。其实最一开始本来是想写多样性的,开头就提到过,“工作中遇到需要保持多样性的优化问题了”,只不过 Pass@k 确实值得单写一篇,是有此文。
Reference
[1] RL究竟能不能突破Base边界——关于推理能力外推、稳定性与训练条件的系统分析 | 长琴: https://yam.gift/2025/12/31/NLP/LLM-Training/2025-12-31-RL-Are-You-OK/
[2] GRPO“第一背锅侠”Token Level X2:GTPO双“T”傍地走 | 长琴: https://yam.gift/2025/08/30/NLP/LLM-Training/2025-08-30-GTPO/
[3] GRPO优化在继续——CISPO和熵 | 长琴: https://yam.gift/2025/06/19/NLP/LLM-Training/2025-06-19-CISPO-and-Entropy/
[4] 2508 Pass@k Training for Adaptively Balancing Exploration and Exploitation of Large Reasoning Models: https://arxiv.org/abs/2508.10751
[5] DrGRPO: https://yam.gift/2025/03/28/NLP/LLM-Training/2025-03-28-LLM-PostTrain-DrGRPO/
[6] 2505 AAPO: Enhancing the Reasoning Capabilities of LLMs with Advantage Margin: https://arxiv.org/abs/2505.14264
[7] 2602 Back to Basics: Revisiting Exploration in Reinforcement Learning for LLM Reasoning via Generative Probabilities: https://arxiv.org/abs/2602.05281
[8] 2506 Reasoning with Exploration: An Entropy Perspective: https://arxiv.org/abs/2506.14758
[9] 2509 Harnessing Uncertainty: Entropy-Modulated Policy Gradients for Long-Horizon LLM Agents: https://arxiv.org/abs/2509.09265
[10] 2510 BAPO: Stabilizing Off-Policy Reinforcement Learning for LLMs via Balanced Policy Optimization with Adaptive Clipping: https://arxiv.org/abs/2510.18927
[11] 2510 When Importance Sampling Misallocates Credit: Asymmetric Ratios for Outcome-Supervised RL: https://arxiv.org/abs/2510.06062
[12] DAPO:为GRPO的锦上加四点花 | 长琴》: https://yam.gift/2025/03/19/NLP/LLM-Training/2025-03-19-LLM-PostTrain-DAPO/
[13] CISPO: https://yam.gift/2025/06/19/NLP/LLM-Training/2025-06-19-CISPO-and-Entropy/
[14] GRPO“又一背锅侠”:Clip的各种拉扯 | 长琴: https://yam.gift/2025/09/12/NLP/LLM-Training/2025-09-12-GRPO-Clip/
[15] 2506 Spurious Rewards: Rethinking Training Signals in RLVR: https://arxiv.org/abs/2506.10947
[16] GRPO“第一背锅侠”Token Level X:DAPO/DrGRPO与GSPO/GMPO的殊途同归 | 长琴: https://yam.gift/2025/08/14/NLP/LLM-Training/2025-08-14-Token-Level-GSPO-GMPO/
[17] 2505 Pass@K Policy Optimization: Solving Harder Reinforcement Learning Problems: https://arxiv.org/abs/2505.15201