1 从两个角度看原始PPO
PPO-clip的PPO loss
PPO-Clip 理论上的核心作用其实有两个:
- Token-Masking: 将 current policy 中 prob 偏离 old policy 太远的 token mask 掉,确保每次更新不会“迈太大的步子”,从而避免训练崩溃。
- Importance-Sampling: 消除采样策略(old policy)和当前策略的分布差异,保证回报期望计算的准确性,以使模型可以在同一份采样数据上进行多轮优化更新,提高采样数据的使用效率。
1. Token-Masking
PPO-Clip 是对哪些 token 进行 mask 的,
在这里我们只可视化展示下最终的 mask 效果,PPO loss 的公式的具体分析过程可以参考 HTTPS://huggingface.co/blog/deep-rl-ppo。
如下图所示:
图片摘自前段时间的一个工作 https://arxiv.org/abs/2507.15778
PPO裁剪区域的可视化。
x轴显示在生成过程中特定标记𝜋𝜃old的采样概率,y轴显示在当前策略𝜋𝜃下该标记的概率。
区域A表示原始GRPO的优化区域。区域B和C分别表示低于和高于裁剪阈值的区域。区域D是双裁剪区域(Ye等人,2020)。
(a) 当优势 > 0时,Archer优化区域E。(b) 当优势 < 0时,Archer优化区域F
坐标系中的每个点表示 f(x, y)=y/x,即公式中的重要性比率 r 值。
被 mask 的 token 可以分为两种情况:
- 当 Adv > 0 时,会将 r > 1.2 (1 + clip_range_high) 的 token mask 掉,即左图中的蓝色区域 C(直接去掉梯度,不参与训练),其他两个色的区域绿 A 和红色的区域 B 内的 token 不做任何处理,保留梯度、重要性比率也不变。
因为当 Adv > 0,我们将沿着左图中箭头的方向移动所有 token 的概率,但如果这些 token 的 prob 本身相对 old policy 已经高出很多(蓝色区域 C),我们还继续提升这些 token 的概率的话,新训练得到的 policy 就很可能偏离 old policy 过多,造成训练的不稳定。- 当 Adv < 0 时,会将 r < 0.8(1 - clip_range_low) 的 token mask 掉,即右图中的红色区域 B。
因为当 Adv < 0,我们将沿着右图中的箭头方向打压这些 token 的概率。同理,如果当前策略的 prob 已经比 old policy 的 prob 低很多,那继续打压这些 token 的话,训练更新后的 policy 也很可能偏离 old policy 很多,同样会造成训练的不稳定。- 此外,当 Adv < 0 时,因为我们只 mask 掉的是图中的下半区间,即红色区域 B,但是在蓝色区域 C 的最左侧部分,当 x 值很小且 y 值很大时,y/x 的值就会变得非常大,巨大的权重会主导整个估计,导致方差爆炸,同样会影响训练的稳定性。
为了处理这种情况,通常我们会在 Adv < 0 时,额外加入一个 dual-clip,将紫色区域 D 里的 token 也 mask 掉,上文代码中的 pg_losses3 部分就是为了实现该操作。(其实这里的实现感觉有点问题,文章后面我们再进行解释)。最终参与训练的 token 为:左图(adv>0)中的绿色区域 A+红色区域 B,以及右图(adv<0)中的绿色区域 A+蓝色区域 C。综上,我们可以总结一个 PPO-Clip 设计的核心原则 —— 为了确保训练的稳定性,对于在更新方向上已经获得较大优势的 token,不参与本次训练的更新。
2 Importance-Sampling
重要性采样的原理 —— 当难以从目标概率分布 p(x) 直接采样时,先从一个容易采样的替代分布 q(x) 中抽取样本,然后通过计算一个称为“Importance weight”的比率 p(x)/q(x) 来调整这些样本,最终估算 p(x) 下的函数 f(x) 的期望值。
在 RL 训练里,引入重要性采样的初衷其实是为了提高样本的使用效率
在标准的策略梯度方法中,每个数据样本只进行一次梯度更新不同,PPO 与其不同,是在得到一批采样数据后,进行多次的优化更新,这样固然可以提高样本的利用率,但是同时也带来了采样策略和当前策略分布差异的问题,“重要性权重” 的引入就是为了解决这种偏差。
在 llm 的场景下,这个重要性权重的作用到底有多大?
- 在 llm 的 rl 训练中,采样的策略和当前策略通常间隔的 step 数量通常很少,而且 RL 训练的学习率一般都很小,尤其还是加上 kl 约束和 clip 约束的情况下,采样策略和当前策略的参数差别一般不会偏移太多,也就是它们在生成分布上差异很小。
- 如果没用的话,这个重要性权重的比率会不会带来其他的问题呢?毕竟这个权重的引入,除了调整策略分布上的差异以外,还有另外一层显而易见却往往被忽略的作用 —— token 训练的 权重
2从两个角度看原始GRPO之后的XXPO系列
这些 GRPO 类算法与 PPO 最核心的区别在于 Advantage 的计算方式。
PPO 采用 Token-Level 的 Advantage,即每个 token 都会经由价值模型和奖励模型分别计算,赋予独立的 Advantage 值。
而 GRPO 类算法则采用 Response-Level 的 Advantage:对同一提示(prompt)采样多个响应(response),再通过以下公式计算该组响应内的标准化得分,并将其作为该响应中所有 token 的统一 Advantage。
也就是说,GRPO 中同一响应内的所有 token 共享相同的 Advantage,不存在区分性:
2.1 Token-Masking 相关的改进
PPO-Clip 中引入的 token mask 机制对训练稳定性的贡献毋庸置疑。正如前文所述,该机制通过限制那些在更新方向上已获得较大优势的 token 参与训练,避免更新后的策略偏离旧策略过远,从而有效保障了训练的稳定性。在经过大量实验验证后,逐渐认识到这一机制对维持强化学习训练的稳定性极为关键,其设计简洁而高效,确实是一个伟大的设计!!!
按其修改方式,可大致分为以下几类:
2.1.1 修改 Clip 的范围
- Clip-Higher
DAPO 提出的 clip-higher 策略。DAPO 的研究者指出,原有的上限截断阈值在一定程度上限制了低概率 token 的概率提升,从而可能抑制模型生成的多样性。通过增大 clip 的上限(即代码中的cliprange_high变量),该方法为低概率 token 的概率提升释放了更多空间。需要注意的是,cliprange_high 仅对正样本(即优势值为正的 token)生效。也就是说,clip-higher 策略实际上扩展了正样本的截断范围,而负样本的 clip 区间保持不变。
DAPO的clip_higer策略对mask token范围的影响
然而,“限制低概率 token 提升”这一问题的根源实际在于 token 本身,且不仅限于正样本。
事实上,正、负样本中都可能存在低概率 token。
该改进方法未考虑负样本中低概率 token 的情况,同时也扩大了正样本中高概率 token 的提升空间,这可能会加速策略熵的下降,并增大模型偏离基线的风险。尽管现在来看,clip-higher 仍是一个不够完善的改进策略,但它首次明确指出了 PPO-Clip 中 clip 范围设定的局限性,并提出了有针对性的调整,启发意义很大,点赞。
- Dual-Token-Clip
低概率 token 统一使用较大的 clip 区间,而高概率 token 则使用较小的 clip 区间。这种方法避免了高概率 token 对整体更新范围的干扰,因此可以将 clip 区间设置得更大。
例如,在 DAPO 中 clip higher 通常设置为 0.28,而在 Dual-Token-Clip 策略中可以放宽至 0.4 甚至更高。
实验结果表明,该策略在训练稳定性与最终效果上均优于 clip-higher 方法。
此外,如前面图所示,Dual-Token-Clip 策略在正、负 advantage 区域中分别对应两个不同的调整区间(E 和 F),这两个区域各自对训练的影响程度和作用机制,待作者补充下相关实验分析。
- Dynamic-Clip
继做完 Dual-Token-Clip 的工作上,我们在其基础上进一步思考:既然可以将 token 分为两种类型分别施加约束,是否还能更进一步,对 clip 范围做更精细化的调整?为每一个 token 分配独立的 clip 范围,实现 token-level 的动态裁剪。目前作者说该项工作已在推进中,初步实验也观察到了正向效果,但当前设计在机制上还不够简洁和优雅,没有达到心中的理想状态,仍需进一步优化,所以先不 share 了,希望可以放到后续正式的技术报告中。DCPO: Dynamic Clipping Policy Optimization,也提出了类似的优化思路,都是指向动态调整 clip 机制的方向,但具体设计上有所不同。
2.1.2 Soft Clip 策略
在 Token Clip 的过程中保留梯度、仅限制重要性权重(importance weight)的大小,
这类方法以 Minimax 提出的 CISPO 为代表。其损失函数定义如下:
=
与 PPO-Clip 相比,CISPO 主要有两点不同:
首先,CISPO 不再采用 PPO 中的单边裁剪机制,而是无论 advantage 的正负,同时对上下边界进行裁剪;
其次,CISPO 在裁剪后并不直接屏蔽 token,而是保留其梯度、使其继续参与训练,仅将超出范围的重要性权重统一裁剪至预设的上下界(通常上界为 1.2,下界为 0.8)。
我们将这种机制称为Soft Clip 策略。
CISPO 刚发表时,受其启发,曾考虑是否可以将这种 Soft Clip 机制直接应用于 PPO-Clip 的单边裁剪中。具体来说,对 advantage > 0 时高于上界的区域和 advantage < 0 时低于下界的 token,不进行屏蔽,而是保留梯度参与更新,仅将其重要性权重设为 1.2 或 0.8。但深入思考后,发现这种做法存在两个问题:
- 违背 PPO-Clip 的设计初衷:
PPO-Clip 原本希望通过屏蔽那些在更新方向上已具备显著优势的 token,避免策略更新过大,确保训练稳定性。
若采用 Soft Clip 机制,这些 token 仍参与更新,极易导致训练崩溃。
1.5B 模型上进行了对比实验:在较大 off-policy 设置下(ppo_epochs=3,batch_size / mini_batch_size = 4),PPO-Clip 仍能保持稳定,而使用 Soft Clip 后训练到约 100 steps 就崩了。- 重要性权重错配:
裁剪后 token 的重要性权重被统一设为 0.8 或 1.2,改变了原有重要性采样比例。
当然这一点只是理论上的错配,实际影响可能并不大。两个问题,在标准的CISPO算法中同样存在。因此,我们认为将 Soft Clip 直接应用于 PPO-Clip 的裁剪机制并不可取。不过,这一策略仍可应用于其他场景,具体将在后文展开讨论。和 DAPO 一样,尽管存在上述问题,作为首个在 PPO-Clip 中引入 Soft Clip 机制的工作,还是要给 MINIMAX 的同学点赞的。
2.1.3 Response-level Clip
实际上,目前仅有 GSPO 采用了这种裁剪策略。
与其他方法中的 token-level 裁剪不同,GSPO 对整个 response 进行裁剪:
首先计算该 response 中所有 token 的重要性权重均值,作为整个 response 的代表权重。
若该均值偏离预设范围较大,则整个 response 都会被舍弃。
在常规的 token-level 裁剪策略中,被裁剪的 token 比例通常很低。
以1.5B 模型上的实验为例,裁剪比例普遍低于 0.001。
也就是说,在一个包含约 2 万个 token 的 response 中,通常只有约 20 个 token 因偏离幅度较大(正样本中大于 1.2,负样本中小于 0.8)而被裁剪,绝大多数 token 仍处于合理区间。
而 GSPO 所采用的 response-level 裁剪策略,可能存在以下问题:
- 首先,若以整个 response 的重要性权重均值作为裁剪依据,则少数极端值很容易拉高或拉低均值,导致整个 response 被误弃。在很多情况下,只需裁剪少量异常 token 即可修复该响应,但 GSPO 的做法却直接丢弃全部信息,导致采样数据的利用率降低,造成数据浪费。
- 其次,即使在那些极端值不多、整体权重较为平缓的 response 中,GSPO 仍保留所有 token 参与训练。
这显然违背了 PPO-Clip 中引入 token mask 的初衷——即屏蔽那些在advantage更新方向上已显著偏离原始策略的 token。若继续使用这些 token,反而可能干扰模型训练的稳定性。- 此外,论文中还提到,GSPO 的裁剪 token 数量约为 GRPO 的 100 倍。
这一点并不意外:原本 token-level 的裁剪比例极低(约0.1%),而在 response-level 方法中,只要一个 group 中有一个 response 被整体丢弃,clip ratio 就会急剧上升。
具体来说,若一个 prompt 对应 G 个 response,则 clip ratio 将扩大约 1k / G 倍。
经过上述分析,我们认为 GSPO 所采用的这种粗粒度的 Response-level Clip 机制并不合理。
至于 GSPO 的另一项改动——将重要性采样权度的计算也改为 response 级别,以与奖励信号的粒度对齐。
这里我们暂不讨论其合理性,若假设该机制有效,相比原论文中标准的 GSPO,一种更合理的改进方案应为:
- 保持 token-level 的裁剪机制,以精细化控制策略更新;
- 采用 response-level 的重要性权重计算,但仅基于裁剪后剩余的 token 计算平均权重。
2.2. Importance-Sampling 的改进
目前对 Importance-Sampling 进行修改的工作似乎仅有 GSPO。
该论文首先指出了 GRPO 算法的一个“根本性问题”(fundamental issue),即奖励信号的粒度与重要性采样的粒度不匹配。
正如前文所述,GRPO 类算法的 advantage 是在 response 级别计算的,即同一 response 中的所有 token 共享同一个 advantage 值;
然而,其重要性采样却是在 token 级别进行的,对每个 token 分别乘以其对应的重要性权重以进行分布校正。
GSPO 的作者认为,这种 token-level 的重要性采样会引入误差,并且该误差会随生成长度逐渐累积,最终导致训练不稳定甚至模型崩溃。原文表述如下:
The failure of the token-level importance weight points to a core principle:
the unit of optimization objective should match the unit of reward.
Since the reward is granted to the entire sequence, appllying off-policy correction at the token
level appears problematic. This motivates us to forego the token-level objctive and explore utilizing
importance weights and performing optimization directly at the sequence lével.因此,GSPO 对 GRPO 的重要性采样机制进行了改造,将其调整为与 reward 相同的 response 级别。具体而言,它对同一 response 中所有 token 的重要性权重取平均,从而得到代表整个 response 的权重。改进后的 GSPO 损失函数定义如下:
将重要性权重改为 response-level 是否合理呢?
我们暂且不急于下定论,留待后续章节再深入分析。此处我们首先从实验效果出发进行比较。
为更清晰地比较 response-level 权重带来的影响
我们在对比实验中保持 token-masking 部分都沿用原始 PPO-Clip 的 token-level 裁剪策略
并设置两组实验:一组使用 GRPO 的 token-level 重要性权重,另一组采用 GSPO 的 response-level 权重,其余实验设置完全一致。
两个实验在训练过程中的多数指标上表现相近,只有在熵值上略有差异 ——使用 GSPO 权重的模型下降速度稍快,实验结果如下:
从结果中可以看出,采用 GSPO 的 response-level 重要性权重后,模型收敛速度确实更快,测试集上的性能上升也更迅速,与论文报告一致。
然而,GSPO 在快速达到性能峰值后,也更早出现了下降,最终收敛结果与 GRPO 基本持平。就峰值性能而言,GSPO 并未显示出显著优势。事实上,GSPO 论文中所展示的实验结果也仅体现出训练速度的提升,并未证明其最终效果优于 GRPO。
尝试分析 response-level 权重加快学习速度的可能原因:
在这种机制下,同一 response 中所有 token 不仅 advantage 值相同,其重要性权重也完全一致。
也就是说,token 在更新时的权重完全取决于其自身概率的大小——低概率的 token 梯度更大,在优化中占据主导地位。这实际上赋予低概率(高熵)token 更高的优化权重。
已有不少研究表明,RL 训练过程主要优化的是高熵 token,因此 GSPO 的这一机制可能确实通过聚焦高熵 token 而加速了模型的学习。
然而,这种加速并不一定能带来最终性能的提升,收敛结果未必优于原始的 GRPO 方法。
2.2.2 实验设计
为探究重要性采样权重的实际影响,我们设计了两个对比实验。两个实验均采用相同的token mask策略,但对advantage施加了不同的权重:
实验一:使用原始的重要性采样权重,即标准的PPO-Clip;
实验二:不使用重要性采样调整,将所有 token 的权重固定为 1.0。
为更清晰地观察 PPO-Clip 的作用,实验设置了较高的 off-policy 程度:ppo_epochs=3,batch_size / mini_batch_size=4。后续实验均在此配置下进行。实验过程中各项指标的变化如下图所示:
从实验结果可以看出,虽然在测试集上(a) 两组实验的整体表现差异不大,但在训练指标(如熵、重复率、截断率、KL散度)上,实验二的变化明显比实验一更为平缓些,尤其在训练后期这一差异更加显著。
其实细致观察的话,还可以发现,在实验后期,两个实验测试集上的指标表现也有所差异。
实验一较早达到最高点后开始下降,而实验二收敛过程更为平稳,最终维持在最高点附近,未出现下降趋势(从图中看虽然实验一的最高点略高于实验二,但实际上只高出0.4个点,对于LLM的训练/评测,这种零点几的差异基本可以认为在随机波动的范围了)。
接下来,我们来分析下这种差异出现的原因:
首先,这里再介绍几个GRPO训练中一般规律:
- 在使用GRPO类的算法训练LLM时,response的重要性采样权重的平均值通常是要比1.0略大一点点的。例如在我的1.5B模型实验中,通常在 1.0005 左右。
- 而且正样本的权重平均值略高于负样本一点点,如上图所示。
千万不要小看这点轻微的差异,但这是在数万个token上平均的结果,实际能量是很大的。
正是这种正负样本间的权重差异,使 GRPO 训练更倾向于拟合正样本,而非抑制负样本。
并且随着训练的进行,这一差距会逐渐扩大,对正样本拟合加速,熵的下降速度也逐渐加快(这涉及到 GRPO 算法或者更大点 PPO-Clip 设计上的一个固有缺陷,我们将在下一篇文章中详细讨论)。如果对第二点中提到的熵加速下降的原因不理解,这里再补充一个知识点:
熵与正负样本的关系——在GRPO训练中,采样到越多负样本(prompt问题难度较大时)或手动提高负样本权重,熵下降越慢,甚至可能上升(但模型在测试集上的效果通常无变化,有时反而变差);反之,增加正样本权重会加速熵下降(训练得到的模型效果通常略差)。
再结合之前上海 ai lab 那篇熵机制研究的文章,我们可以进一步得出结论 —— 在GRPO的训练过程中,我们所观察到的训练熵的变化可能主要是受低熵token的影响,这个熵未必能准确反映模型在高熵token上的探索性。
至于为什么正样本的平均权重比负样本的更高?这其实是符合模型学习的预期的:经过几轮学习后,当前策略在正样本上的生成概率高于旧策略,clip ratio分布偏向左上区间;负样本则低于旧策略,clip ratio偏向右下区间,说明模型在向正确的方向学习,逐渐能够将正负样本的预测概率有效区分开来。
现在回到对比实验:
在实验二中,所有权重被设为1.0。这一方面使权重低于标准GRPO,另一方面消除了正负样本间的差异。虽然这两点使得实验二的学习速度慢于标准GRPO,但最终效果并未变差。
综合上述分析,我们可以得出以下结论:
- 在模型效果方面,去掉重要性采样、将权重固定为1.0并不影响最终性能,反而在训练后期表现更稳定(使用重要性采样的GRPO实验在后期常出现下降)。
- 对于训练过程中各种训练指标的变化差异,我们对变化原因进行了详细的分析,但是整个分析从头到尾都没有从“分布调整”的角度去理解重要性权重,反而都指向了另一个方向 —— token的训练权重。
至此基本可以断言:在 GRPO 类算法应用于 LLM 时,PPO-Clip 起关键作用的是 token-masking 机制,而重要性采样的权重调整几乎无实际作用。
调整RL off-policy程度通常有两个参数:
- rain_prompt_bsz / train_prompt_mini_bsz 的比值,即一次采样的数据分多少批训练;
- ppo_epochs,即一份采样数据重复训练的轮数。
一般情况下,off-policy程度越高(即ppo_epochs越大,train_prompt_bsz / train_prompt_mini_bsz比值越高),模型在RL训练中收敛越快,熵、clip_ratio、重复率、KL loss等指标变化越迅速,测试集指标上升的也越快,但最终达到的最高点往往不如off-policy程度较低的配置。
3 PPO-Clip 正样本 token 权重的错配
3.1 基于 Token 权重的新视角
首先回顾 PPO-Clip 的设计原则:
为了确保训练稳定性,对已在更新方向(即优势方向)上取得较大优势的 token,不参与本次参数更新,以避免模型更新幅度过大、偏离旧策略(old policy)太远。
理想的权重分配应该是这样的:
在 advantage 的更新方向上(图中箭头方向),若某个 token 对应的概率相较于旧策略越低,则应赋予其学习权重的越大,反之,则越小。
理由有二:
- 第一,正因为该 token 当前落后较多,更新后偏离旧策略的风险较低,不用担心更新太大导致偏离;
- 第二,较高权重可加快其学习速度。换言之,落后越多,权重应越大。相反,对于那些在更新方向上落后不多或略微领先的 token,则应分配较小的权重。
如下图所示,
左图中越靠近右下区域的 token,其权重应该越大;越靠近左上的 token,权重应越小。
右图则相反,左上区域的 token 应具有较大权重,右下则应较小。
3.1.2. PPO-Clip 对正样本 token 的权重错配问题
在实际应用中,PPO-Clip
对于优势函数 Adv < 0 的负样本,权重分布是符合预期的:从图中的左上至右下,权重呈递减趋势。然而,对于 Adv > 0 的正样本,其权重分配却与我们先前的设想是完全相反的!
在左上方区域,当前策略概率已经显著高于旧策略的 token 反而被赋予了更大的权重;而在右下方区域,那些当前策略概率偏低的 token 却被分配了极小的权重。
那么这种权重错配会带来哪些问题呢?
- 第一,对于右下方那些相较于旧策略明显落后的 token,由于被赋予的权重过小,其学习速度会受到严重抑制。例如,若旧策略概率为 0.9,当前策略概率仅为 0.1,则权重只有 1/9,更新信号极其微弱,学习动力不足。
- 更严重的是第二点:左上方那些已经具备显著优势的 token 反而获得较高权重(例如旧策略概率 0.1,当前策略 0.9,权重为 9)。这会导致两个后果:
模型更容易偏离旧策略,破坏训练稳定性;
模型在正样本上过度拟合——某些 token 优势越大,权重就越高,更新后其概率进一步被放大,然后下一轮更新时权重会变得更大,形成自我强化的循环。此前观察到的熵塌陷、输出重复率上升等现象,根源正在于此。
在RL的训练中,健康收敛的训练过程通常表现为:
- 熵从较高初始值开始缓慢且平稳下降,最终稳定在一个较低的正值,代表策略在确定性中仍保留适度随机性;
- 奖励曲线稳定上升,并最终维持在高位平稳阶段;
- Clip 比例和 KL 损失后期也保持稳定不再剧烈变动。
相反,若训练陷入局部最优,系统会进入一种“策略-数据分布”的自我固化状态,具体表现为:
- 熵急剧下降并接近零;
- 奖励曲线停滞不前;
- Clip 比例持续偏高却无法带来策略改进。
不知道读者们自己在跑GRPO实验的时候是否遇到过这种现象:训练后期熵值加速下降最后变的非常低(熵坍塌),重复率急速上升,Clip 比例也随之暴涨,最终模型崩溃,在测试集上的表型也开始下降。
通常,在RL训练早期,熵下降和 Clip 比例上升属于正常现象,若同时伴随奖励上升,说明策略正在有效学习。但像GRPO实验后期出现的熵值骤降、奖励停滞、Clip 比例高却无进展的情况,明显训练已经陷入了局部最优。究其根本原因,正是 PPO-Clip 在正样本 token 上的权重错配,导致模型持续在某些正向 token 上过拟合。
3.1.3. 实验验证
为验证上述分析是否正确,对比实验,与标准 GRPO(标准PPO-Clip) 的效果进行比较。
在实验组中,将正负样本的权重分开处理:负样本仍采用标准 PPO-Clip 的权重计算方式,而正样本的权重则使用response-level 的均值。
若前述分析成立,则该设置应能在一定程度上缓解权重错配问题,熵的下降速度、重复率与截断率的上升趋势都应较标准 GRPO 更为平缓。
训练过程中各项指标的变化如下图所示:
首先,可以明显看出,正样本权重改为response-level 后,各项指标的变化显著放缓:熵下降速度减缓(图 c),重复率(图 d)、Clip 比例(图 e)和 KL 散度损失(图 f)的上升幅度也明显降低,且变化趋势平稳,未出现 GRPO 中逐渐加速的现象,完美验证了我们之前的分析!!!
然后,在测试集上(图 a),实验组的性能提升速度与 GRPO 基本一致,即以更小的熵下降代价达到了相当的模型效果。训练至后期,GRPO 多项指标已呈现退化趋势,而实验组仍保持稳定,显示出进一步优化的潜力。
最后,还有一个意外收获,在 pass@8 指标上(图 b),实验组在训练后期也展现出明显优势。这表明缓解正样本过拟合有助于避免模型陷入局部最优,从而让模型拥有了更强的探索能力。
3.1.4 结论
综上所诉,PPO-Clip 的设计存在对正样本token权重错配的问题,这种错配导致模型在训练过程中过度拟合正样本中的 token,进而引发熵值塌陷、输出重复、 token Clip比例急剧升高等现象,最终使模型收敛至局部最优解,难以持续训练,从而严重限制了强化学习对模型能力进一步提升的潜力。
3.2 重新设计 PPO-Clip
那么我们应如何修正这种权重错配问题?
一种直观的(简单而有效)方法是将正样本的权重进行翻转,从而使其与负样本在更新行为上保持一致——即在 advantage 所指的更新方向上(下图中箭头方向),若某个 token 在当前策略中的概率低于旧策略,则应赋予其更高的学习权重;反之则降低权重。
3.2.1 将正样本的权重进行翻转
具体实现上分为两步:
Token-Masking 阶段:仍沿用原始 PPO-Clip 的裁剪机制;
权重赋值阶段:对于 advantage < 0 的 token,仍使用原始的重要性权重;而对于 advantage > 0 的 token,则使用其倒数:
此外,我们还需引入另一项调整。
如本系列第一篇文章中所述,我们通常会在PPO-Clip 中引入 dual-clip ,目的是应对 advantage < 0 时,若 old 极小而 当前极大,会导致权重爆炸,进而影响训练稳定。
原先在 advantage > 0 的区域中,该问题被 mask 机制自然规避;
但现在由于我们对正样本权重进行了翻转,极端值情况会转移至 advantage > 0 区域中的右侧部分(图中区域B)。因此,正样本 token 也需要施加 dual-clip。但需特别说明的是:被 dual-clip 裁剪的 token 与第一步中被 mask 的 token 有本质区别。
后者是因在更新方向上已具备足够优势而被屏蔽,而前者则是显著落后于旧策略、却因权重计算异常而需限制幅度的 token。
我们仍希望这类 token 能参与训练,因此这里可借鉴 CISPO 提出的 Soft Clip 机制:对这些 token 仅裁剪权重幅度,而保留其梯度更新。
✅ 操作总结:
对 dual-clip 区域使用 Soft Clip,限制权重但保留梯度;
对原始 mask 区域仍使用 Hard Clip,完全屏蔽更新。
我们将这一设计称为非对称双裁剪策略(Asymmetric Dual-Clipping, ADC),其主要创新包括:
- 对正/负样本区别处理,对正样本使用重要性权重的倒数;
- 同时使用 Hard Clip 与 Soft Clip:第一步 Mask 使用 Hard Clip,Dual-Clip 阶段使用 Soft Clip;
结合我们先前提出的 Dual-Token Clip 策略(后续或进一步扩展为 Dynamic Clip),共同构成当前 Archer 2.0 训练框架的核心。
为验证该设计的有效性,我们进行了对比实验。由于新方法能够避免模型过早陷入局部最优,模型需更长的训练时间才能充分收敛——以往使用8张 H800 约3天即可训练完毕,而现在需至少一周。尽管耗时有所增加,但收敛性能的提升让我们相信这一方向的价值。
跑得实在太慢了,我都想麻烦神父给加个速了。
与 GRPO 相比,采用 Asymmetric Dual-Clipping 策略后,各实验指标的变化趋势与上一组对比实验的结论基本一致,但改善效果更为显著。
具体表现为:熵下降速度更为平缓(图 c),输出重复率(图 d)与 token 截断率(图 e)增长更慢,且最终均趋于稳定,符合健康收敛的各种特征。
更重要的是,由于熵值下降缓慢并持续维持在较高水平,模型能够持续训练而不崩溃。
随着训练推进,模型性能不断提升,最终在 LiveCodeBench pass@1 上从 27.5 提升至 31.4,显著超越此前 GRPO 训练的最佳结果。
需要注意的是,使用 Asymmetric Dual-Clipping 策略的实验在训练初期在测试集(图 a)上的增长略慢于其他两个实验。这是由于正样本权重翻转后,整体权重均值要比之前低些,导致正样本拟合速度稍缓。但随着训练进行,其性能逐渐赶上并最终反超另外两组实验。
Archer2.0 系列的实验目前只跑了一版代码模型实验,这版实验在数据和参数上还有进一步优化的空间,另外数学实验等后面有机器了也会跑下,训练好了会一起放出来。
3.3. 理想的 RL4LLM 范式设想与未来工作
自今年年初到现在的大半年中,RL on LLM 的研究工作大多集中在 GRPO 这一类方法上,即对每个 prompt 采样一组 response,并基于 response 级别的奖励进行训练。然而,在实际研究与实验中,越来越感觉这种训练模式存在明显的局限性。
3.3.1 当前 GRPO 范式的局限
- 搜索采样分布有限:每次从零开始为每个 prompt 采样若干 response,导致学习路径被限制在基座模型的浅层能力上,难以探索更丰富、更多样的语义和逻辑空间。改进生成/搜索空间的质量,是目前 GRPO 类算法亟需推进的一个方向,但目前相关研究仍非常有限。探索(exploration)的重要性似乎被现在的RL4LLM的研究社区忽视了。
- 学习效率低下:GRPO 类的算法本质上很像对比学习——通过比较同一 prompt 下不同 response 的优劣,对“好”的结果给予正向奖励,“坏”的施以惩罚。尽管没有显式使用 pair-wise 或 list-wise 损失,但其 advantage 是通过组内比较得到的。模型通过比较识别同一个 prompt 下对/错 response 的 diff 来间接隐式地学习哪些片段是对的,哪些片段是错的。这种学习方式过于间接,效率有限。如果能提供更明确、更细粒度的奖励信号,指明具体错误或正确的位置,肯定将极大提升学习效率和效果。说白了就是现在 GRPO 的 reward 粒度太粗糙了。如果能做的更细致(前提是准确)肯定更有利于模型的学习。(这里插一句题外话,之前看到某些方法主张在 batch 层面进行标准化,一直认为这种做法是不合理的:不同 prompt 间的 response 进行比较没有实际意义。)
3.3.2 重新思考 RL 范式的设计
目前的 GRPO 类算法并非理想的 RL4LLM 范式。近期许多研究也表明,RL 训练后的模型能力并未比突破基座模型的浅层搜索。但我觉得这并不是 RL 的问题,而是 GRPO 这类算法的固有局限所致。我们应当努力探索更适配 LLM 训练特点的强化学习范式。
当然我也不觉得 PPO 就是一个 RL for LLM 训练的好范式。PPO 那种 token 级别的奖励对于 LLM 来说过于密集了——对于 LLM 生成任务来说,几个 token 通常并不具备完整的语义,难以判断正误。对于现在的推理大模型,一个更合理的奖励粒度应介于 token-level 和 response-level 二者之间——例如以推理片段(reasoning segment)为单位,其粒度大于句子但远小于完整响应。同时,我们还需设计出一个能够触及基座模型深层知识结构的搜索机制。否则以现在 GRPO 的训练方式,只能提高模型的采样效率,让其更容易采到正确路径,其能力上限永远被锁死在基座模型的浅层能力中。
3.4.总结
在“重新思考PPO-Clip”系列文章中,我们系统地回顾、批判与改进了这一经典算法在大语言模型强化学习训练中的应用,主要完成以下几方面工作:
- 1.首先梳理了PPO-Clip中两个核心机制——Token-Masking 与 Importance-Sampling——的作用与设计初衷;
- 2.然后从以上两个角度出发,审视了近半年来各类针对 PPO-Clip 的改进工作,分析其合理性及有效性;
- 3.接下来通过实验证明在 GRPO 类算法应用于 LLM 训练时,重要性采样的分布调整机制并不重要,相反,这个重要性权重更可能是通过 token训练权重的机制对训练产生影响的。
- 进一步的,我们从token 权重的角度出发,指出原始 PPO-Clip 在正样本上存在权重错配的问题,该问题会导致模型对正样本过拟合而陷入局部最优,并通过实验验证了我们的分析。
- 为了解决上述的正样本权重错配问题,我们对PPO-Clip进行了重新设计。并实验证明了应用新的设计后,实验表明,新设计有效解决了 GRPO 训练中的熵崩溃与重复生成等问题,使模型能够持续训练而不陷入局部最优,在代码生成任务上显著提升性能,当前已在1.5B模型上达到 SOTA 效果;
- 分析了当前主流GRPO 范式的局限性——搜索空间受限和奖励粒度粗糙,导致模型难以突破基座能力的浅层边界。未来的研究可能需要跳出当前GRPO和PPO的框架,从奖励设计(更适配LLM的奖励粒度)和探索机制层面(引入深层知识搜索策略)实现更高效、更深层的强化学习训练。
- 局限性:目前实验的结论,可能只适用于GRPO类的算法 for LLM 的场景,对于PPO for LLM 这种token-level的算法来说,重要性采样是否依然也不重要,还需要进一步实验。而对于游戏类等非LLM的场景,可能就是另一回事了。
ASPO: Asymmetric Importance Sampling Policy Optimization
PaperScope.ai 解读:
https://paperscope.ai/hf/2510.06062
PPO-Clip正样本权重错配与重构


=
从结果中可以看出,采用 GSPO 的 response-level 重要性权重后,模型收敛速度确实更快,测试集上的性能上升也更迅速,与论文报告一致。




77

被折叠的 条评论
为什么被折叠?



