GRPO 的"平均主义"问题,被一个反事实重放解决了

你有没有想过一个问题:GRPO 训练的时候,模型生成了一整段回答,奖励模型给了一个高分——但这段回答里,到底哪些 token 是真正"功臣",哪些只是搭便车的?

答案是:GRPO 不知道,也不关心。 它把整个回答当作一个整体,算出一个 response-level advantage,然后均匀广播到每一个 token 上。不管你是那个精准命中约束的关键词,还是一句无关紧要的废话,拿到的更新信号完全一样。

这就像期末考试全班平均分 80 分,老师给每个人都加 5 分——考 95 分的和考 60 分的,待遇没区别。

这篇论文(arXiv:2607.25659)提出的方法叫 CoRT(Counterfactual Replay for Token-level credit weighting),核心思路出奇地简洁:把同一段回答,分别在"有评分标准"和"无评分标准"的提示下跑一遍前向传播,对比每个 token 的对数概率变化,变化大的 token 就是对标准更敏感的,应该分到更多信用。

不需要额外训练任何判别器或奖励模型,只需要多一次前向传播。


核心摘要

痛点:基于 Rubric(评分标准)的强化学习在 GRPO 流水线中,结构化的多维判断(正确性、格式、安全性等)被压缩成一个标量奖励,再以 response-level advantage 均匀广播到所有 token。标准中蕴含的细粒度归因信息完全浪费了。

方案:CoRT 用反事实重放(Counterfactual Replay)暴露策略内部信号——固定已采样的响应不变,分别在含标准的完整提示和无标准提示下计算每个 token 的对数概率,其差值作为该 token 对标准依赖程度的代理。通过有界映射和响应归一化,将原始 GRPO 优势按 token 重新分配。

效果:在 Qwen3-4B、Qwen2.5-7B、Qwen3-14B 上,CoRT 在绝大多数对比中优于响应级 GRPO,平均提升 4.4 个百分点;与需要单独训练判别器的 RTT 方法竞争且常更强,同时省去了相关性学习阶段。与 DAPO/GSPO 等优化目标兼容。

判断:这是一篇工程直觉很漂亮的工作——它没有发明新的损失函数或架构,而是敏锐地抓住了 GRPO 信用分配粒度太粗这个实际问题,用一个几乎零额外开销的反事实技巧解决了。方法简单到让人怀疑"这真的能 work 吗",但实验数据确实站得住脚。


论文信息

项目 内容
标题 CoRT: Counterfactual Replay for Token-Level Rubric-Guided Policy Optimization
作者 Bo-Wen Zhang, Junwei He, Wen Wang, Song-Lin Lv, Wentao Ma, Rongyi Lin, Shuhan Zhong, Lan-Zhe Guo
提交日期 2026 年 7 月 28 日
链接 arXiv:2607.25659
领域 AI / 强化学习 / 大语言模型对齐

问题动机:GRPO 的"大锅饭"

说到 GRPO(Group Relative Policy Optimization),这已经是 DeepSeek-R1 之后 RL 训练的事实标准了。它的设计哲学很优雅:干掉 PPO 那个难训练的价值模型(critic),用组内相对排名代替绝对分数估计。同一个 prompt 采样 G 个回答,比组内均值高的就强化,低的就抑制——就像考试不看你考了多少分,只看你在班里排第几。

但这个优雅的设计有一个盲区:信用分配(credit assignment)停留在响应级别。

具体来说,当使用基于 Rubric 的奖励时——比如同时评估"是否提到强化学习"、"是否解释群相对优势"、"回答控制在 80 字以内"这三条标准——验证器会给出结构化的多维判断。但在 GRPO 流水线里,这些信息先被聚合成一个标量奖励,再变成一个 response-level advantage,最后均匀广播到所有生成的 token

这说明了什么?说明:

  • 那个精准命中"reinforcement learning"关键词的 token,和一句凑字数的过渡句,拿到的是完全相同的梯度信号
  • 格式正确的 bullet point 和一段离题的废话,被一视同仁地强化或抑制
  • 不同标准可能对应回答中的不同片段(有的管内容,有的管格式),但这些对应关系完全丢失了

论文用 Figure 1 给出了一个真实的例子,非常直观:

Figure 1:真实响应示例——同一回答在有无标准提示下的 token 对数概率对比

图 1:同一采样回答在"有标准"(蓝点)和"无标准重放"(橙菱)两种提示下的 token 对数概率。右侧 Δt 是两者的差值——橙色带斜线的 token 是受 rubric 直接控制的 cue token,它们的概率下降明显更大。通用内容 token(如 "balanced"、"diet"、"athletes")变化很小。

这张图的信息量很大。注意看右边的 Drop Δt 柱状图:那些直接受 rubric 控制的 token(橙色高亮),移除标准后对数概率骤降 15-25 个点;而通用内容的 token 几乎不动。这个信号是策略自己暴露出来的,不需要外部标注者告诉模型哪个 token 重要——模型自己在说:"这些 token 我是在看了标准之后才这样生成的"。

这就是 CoRT 的核心观察:固定响应重放可以暴露 token 对 rubric 的依赖程度,而这个信号一直就在那里,只是没人用它。


方法核心:四步完成 Token 级信用分配

整体流程

Figure 2:CoRT 方法总览

图 2:CoRT 完整流程。上半部分展示传统 Response-Level RL 的局限——Rubric 多维判断被压缩为标量奖励后均匀广播。下半部分是 CoRT 的 Counterfactual Replay 流程:同一回答分别用完整提示和无标准提示评分 → 对比得到 token 级差值 → 映射为权重 → 重分配 GRPO 优势。右上角给出了一个 Token Credit Example 示例。

Figure 2 把整个方法讲得很清楚。我拆开来讲每一步。

第一步:反事实评分(Counterfactual Scoring)

对每条采样到的响应 \(y_i\),做两次前向传播:

  1. 正常评分:用包含 rubric 标准的完整提示 \(x_i^+\),得到每个 token 的对数概率: $\(\ell^{+}_{i,t} = \log \pi_{\bar{\theta}}(y_{i,t}\mid x_i^+, y_{i,<t})\)$

  2. 反事实重放:用去掉所有评分标准后的"裸提示" \(x_i^-\)重放完全相同的响应 token,得到: $\(\ell^{-}_{i,t} = \log \pi_{\bar{\theta}}(y_{i,t}\mid x_i^-, y_{i,<t})\)$

这里的 \(\bar{\theta}\) 是当前 batch 冻结的评分策略(即 reference model)。关键点在于:响应 token 完全不变,变的只有 prompt 里有没有 rubric 标准。

两者之差就是 token 级的"标准依赖度": $\(\Delta_{i,t} = \ell^{+}_{i,t} - \ell^{-}_{i,t}\)$

\(\Delta\) 为正说明这个 token 在有标准时概率更高——它更依赖 rubric 上下文。从 Figure 1 可以看到,rubric cue token 的 \(\Delta\) 可以达到 +20 以上,而通用内容 token 接近 0。

第二步:对比到权重映射(Contrast-to-Weight Mapping)

原始的 \(\Delta\) 值范围很大且不均匀,不能直接当权重用。CoRT 用一个 sigmoid 做有界映射:

\[s_{i,t} = \text{sigmoid}(\tau(\Delta_{i,t} - b)) - \frac{1}{2}\]

值域被限制在 \((-\frac{1}{2}, \frac{1}{2})\) 内。默认参数:温度 \(\tau=1\)、偏置 \(b=0\)。当 \(\Delta=0\)\(s=0\),表示该 token 不依赖标准。

临时权重则在此基础上加一个强度系数: $\(\tilde{w}_{i,t} = 1 + \eta \lambda_k s_{i,t}\)$

其中 \(\eta=0.5\) 是权重强度,\(\lambda_k \in [0,1]\) 是调度系数(后面会说)。默认配置下,活跃 token 的乘数范围在 \((0.75, 1.25)\) 之间——不会出现极端的权重放大或缩小。

第三步:响应归一化 + SmoothStep 调度

这一步是工程上最精巧的设计,也是让 CoRT 能稳定训练的关键。

问题在哪? 如果直接用上面的 \(\tilde{w}\) 去乘 GRPO advantage,会出现两个风险: 1. 不同响应之间的权重尺度不一致,导致 batch 内梯度方差增大 2. 训练早期策略还没学好,\(\Delta\) 信号噪声大,过早引入反而干扰训练

CoRT 用两招解决:

响应归一化(Response Normalization):对每条响应内的权重做归一化,保证均值为 1: $\(\bar{w}_i = \frac{1}{T_i}\sum_{t=1}^{T_i}\tilde{w}_{i,t}, \quad w_{i,t} = \tilde{w}_{i,t}/\bar{w}_i\)$ 满足 \(\frac{1}{T_i}\sum w_{i,t} = 1\)。换句话说,CoRT 只改变响应内的信用分配比例,不改变响应级的总奖励幅度。

SmoothStep 调度:用立方 Hermite 插值的 SmoothStep 函数控制 \(\lambda_k\) 从 0 平滑增长到 1: $\(\lambda_k = 3u_k^2 - 2u_k^3\)$ 其中 \(u_k = \text{clip}((k-k_0)/K, 0, 1)\) 是预热后的训练进度。端点处导数为 0,保证了平滑启停。论文用了 100 步的 ramp 长度。

这两者的配合效果在消融实验里看得非常清楚——后面会展开。

第四步:Token 级策略更新

最终,CoRT advantage 就是加权后的 GRPO advantage: $\(\widehat{A}_{i,t} = \text{sg}(w_{i,t}) \cdot A_i\)$

其中 sg 表示停梯度(stop-gradient),防止权重本身的梯度干扰优化方向。损失函数沿用 GRPO 的 clipped 目标: $\(\mathcal{L}_{\text{CoRT}} = -\mathbb{E}_{i,t}[\min(\rho_{i,t}\widehat{A}_{i,t}, \bar{\rho}_{i,t}\widehat{A}_{i,t})]\)$

计算开销:相比标准 GRPO,CoRT 仅增加一次"无标准提示"的前向评分。不需要额外生成、不需要额外验证、不需要额外标注。在 rollout 已经做了 G 次采样的前提下,多一次前向的开销几乎可以忽略。


实验结果:4.4 个点的平均增益

主实验设置

项目 配置
基础模型 Qwen3-4B-Instruct、Qwen2.5-7B-Instruct(主矩阵);Qwen3-14B(扩展)
训练数据 HIR-16k(每例含指令列表及对应列表)
奖励类型 CSR(Constraint Satisfaction Rate,约束满足率)、AON(All-or-Nothing)
评估基准 IFEval、IFBench、MultiDimIF、AdvancedIF
基线方法 Instruct、SFT、DPO、GRPO、+RTT(Rubrics-to-Tokens 判别器)
优化配置 batch 64,每提示采样 8 响应,lr \(10^{-6}\),clip 0.2/0.27

Qwen3-4B 主结果

Method IFEval-P IFEval-I IFBench-P IFBench-I MultiDimIF AdvIF
Instruct 83.40 88.13 30.95 32.83 56.08 79.17
SFT 83.73 88.85 29.59 31.64 56.50 79.23
DPO 82.62 87.77 29.93 32.84 55.83 79.33
GRPO 84.29 89.21 32.31 33.43 74.38 79.81
+RTT 85.03 90.17 34.01 36.12 76.33 80.77
+CoRT 86.06 90.48 34.49 36.24 80.48 81.14
CoRT 提升 +1.77 +1.27 +2.18 +2.81 +6.10 +1.33

表 1:Qwen3-4B CSR 奖励下的主要结果。CoRT 在所有指标上超越 GRPO,MultiDimIF 提升最大达 6.10 个点。

几个值得关注的点:

MultiDimIF 的 6.10 个点提升是最亮眼的。 这个基准测试的是多维度指令遵循能力,恰好是 rubric-based RL 最想优化的方向。CoRT 在这里的大幅提升说明 token 级信用分配确实帮到了"对的 token"。

与 RTT 的对比很有意思。 RTT(Rubrics-to-Tokens)需要额外训练一个判别器来学习 token 与标准之间的关联关系,而 CoRT 不需要。但 CoRT 在多数指标上不仅追平还超过了 RTT——这说明反事实重放捕捉到的信号质量不输给专门学出来的判别器。

Qwen2.5-7B 结果:更大的增益空间

Method IFEval-P IFEval-I IFBench-P IFBench-I MultiDimIF AdvIF
GRPO 78.56 84.41 28.23 29.85 66.67 72.00
+RTT 81.15 86.33 32.31 34.63 69.67 73.72
+CoRT 81.92 87.51 34.63 36.30 78.52 73.28
CoRT 提升 +3.36 +3.10 +6.40 +6.45 +11.85 +1.28

表 2:Qwen2.5-7B CSR 奖励结果。7B 模型上 CoRT 的增益更大,MultiDimIF 跑出了惊人的 +11.85 个点。

说实话看到 MultiDimIF 的 +11.85 我愣了一下。这个数字太大了,大到让我怀疑是不是有什么特殊原因。仔细想想,可能的解释是:7B 模型的 GRPO baseline 本身在这个任务上还有较大提升空间(66.67%),token 级信用分配带来的"精准打击"效果在小模型上更明显。大模型(Qwen3-4B 的 GRPO baseline 已经 74.38%)边际收益自然小一些。

AON 奖励下的表现

AON(All-or-Nothing)是一种更严格的奖励——必须所有约束全部满足才给满分,否则 0 分。这种奖励信号更稀疏、噪声更大。

Model Reward IFEval-P Δ IFBench-P Δ MultiDimIF Δ
Qwen3-4B AON +1.67 +2.11 +7.35
Qwen2.5-7B AON +2.33 -2.31 +10.22

AON 奖励下 CoRT 相对于 GRPO 的提升。MultiDimIF 依然是大赢家,但 Qwen2.5-7B 的 IFBench 出现了负增益(-2.31),说明 AON 的稀疏性在某些场景下确实会伤害 CoRT 的信号质量。

扩展实验:14B 模型 & DAPO/GSPO 兼容性

Setting Method IFEval-P IFEval-I IFBench-P MultiDimIF
Qwen3-14B CSR GRPO 87.87 92.34 39.93 82.59
+CoRT 89.17 93.28 40.68 83.48
Qwen3-4B CSR DAPO 87.10 88.90 40.27 83.41
DAPO+CoRT 87.95 90.20 41.30 84.06
GSPO 86.14 91.10 35.97 82.26
GSPO+CoRT 86.54 91.20 36.11 81.96

表 3:扩展实验。14B 模型上 CoRT 全指标提升;与 DAPO 结合效果最好(IFEval-I +1.30),GSPO 仅 MultiDimIF 微降。

这里有个很实用的发现:CoRT 和其他优化目标是正交的。 不管底层用的是标准 GRPO、DAPO 还是 GSPO,加上 CoRT 都能带来额外收益(GSPO 的 MultiDimIF 微降可能是方差问题)。这对工程落地很友好——你不需要为了用 CoRT 而重构现有的训练框架。


消融实验:两个稳定组件缺一不可

这是我认为整篇论文工程含量最高的部分。CoRT 引入了一个新的信号源(反事实重放的 \(\Delta\) 值),新信号就带来新风险——如果这个信号不稳定或者尺度不对,很容易把训练搞崩。

论文设计了两组消融:去掉响应归一化(w/o response norm)、去掉 SmoothStep 调度(w/o ramp)、以及两者都去掉(w/o both)。

Figure 3:Qwen2.5-7B CSR 训练诊断——四个消融变体的训练动态

图 3:训练过程中的四个关键指标。Full CoRT(青色)全程稳定;去掉归一化(橙色虚线)后权重漂移至 1.04+,后期 clip ratio 和 entropy 暴涨;去掉 ramp(紫色点线)末期出现尖峰;两者都去掉(灰色)表现介于中间。

逐个子图分析:

Actor gradient norm(左上):Full CoRT 全程保持在 0.5 以下平稳运行。去掉归一化后,500 步附近梯度突然飙升到 1.0 以上——这是因为权重漂移导致某些 token 拿到过大的 advantage,梯度爆炸。

Length clip ratio(右上):这是 PPO/GRPO 里监控训练健康度的核心指标。Full CoRT 几乎为 0,完美。去掉归一化后 clip ratio 在后期飙到 0.2——说明大量更新被裁剪,有效学习率大幅下降。

Mean token weight(左下):Full CoRT 权重始终钉在 1.0 附近(归一化的效果)。去掉归一化后权重缓慢漂移到 1.04,看起来不大?但乘以几百个 token 后累积效应就很可观了。

Actor entropy(右下):Full CoRT 熵值稳定。去掉归一化后熵在后期暴涨到 4+——模型开始退化到接近随机输出,这是典型的训练崩溃前兆。

结论很明确:响应归一化控尺度,SmoothStep 调度控引入节奏,两者缺一不可。

论文还做了 post-500 步的延续实验(继续训练 30 步看各变体是否会崩溃):

Figure 4:Post-500 步延续实验——各消融变体在步骤 500/520/530 的表现

图 4:越过 500 步后各变体的表现。Full CoRT 三步之间指标平稳;w/o norm 在 520 步开始全面崩塌(IFEval 从 76→71,MultiDimIF 从 77→69);w/o ramp 中等程度衰退。

数据很残酷:去掉归一化的变体在 520 步就已经撑不住了,IFEval 跌了将近 5 个点,MultiDimIF 跌了近 8 个点。而 Full CoRT 在 530 步依然稳如老狗。

失败模式诊断:CoRT 不能独立工作

Figure 5:Qwen3-4B CSR 失败模式——CoRT-only perturbation 变体

图 5:只用 CoRT 权重扰动(不用 GRPO advantage 路径)的训练曲线。紫色虚线的 reward 更低、clip ratio 在中期出现异常尖峰,说明 CoRT 必须作为已有 advantage 的分配器,而非独立信号源。

这是一个很重要的负向结果。论文测试了一个"CoRT-only perturbation"变体——完全不用 GRPO 的 advantage,只用 CoRT 权重本身作为训练信号。结果:reward 更低、clip ratio 出现尖峰、训练不稳定。

这说明 CoRT 的定位是"更好的信用分配器",而不是"新的奖励信号"。 它必须在 GRPO(或其他 RL 算法)提供的 response-level advantage 基础上工作,负责把这个 advantage 更聪明地分发到各个 token。这个定位其实挺务实的——不贪心,做好一件事。


通用能力检查:有没有伤害模型的其他技能?

做指令遵循增强最怕的事情之一是把模型"教偏了"——IFEval 分数上去了,但数学推理、问答能力掉下来了。

Model Method Math500 GPQA MMLU-Pro Avg Δ
Qwen3-4B Instruct 86.28 57.98 70.16
CoRT-CSR 86.52 (+0.24) 59.09 (+1.11) 69.62 (-0.54) +0.27
CoRT-AON 86.36 (+0.08) 57.78 (-0.20) 70.18 (+0.02) -0.03
Qwen2.5-7B Instruct 70.64 33.23 55.48
CoRT-CSR 69.32 (-1.32) 33.84 (+0.61) 54.34 (-1.14) -0.62
CoRT-AON 70.20 (-0.44) 33.64 (+0.41) 55.27 (-0.21) -0.08

表 4:通用能力检查(mean@5)。Qwen3-4B 基本持平或微增;Qwen2.5-7B 的 CSR 版本有轻微下降(-0.62),但 AON 版本几乎无损(-0.08)。

坦率地说,Qwen2.5-7B CSR 的 -0.62 让我稍微皱了下眉。虽然幅度不大,而且 MMLU-Pro 这类基准本身的方差就不小,但如果在生产环境中部署,还是建议同时监控通用能力的回归情况。好消息是 AON 版本几乎没有影响,说明问题可能出在 CSR 奖励本身的噪声上,而非 CoRT 方法本身。


我的判断

亮点

1. 直觉漂亮,实现极简。 反事实重放这个想法一旦说出来就觉得"理所当然",但之前确实没有人系统性地用在 GRPO 的 token 级信用分配上。不需要训练额外的模型,不需要标注,多一次前向传播而已——这种"低成本高回报"的改进在工程上最受欢迎。

2. 工程细节扎实。 响应归一化和 SmoothStep 调度这两个组件看起来不起眼,但消融实验证明它们确实是稳定性的命脉。很多论文只管提新方法不管稳定性,这篇的工程成熟度高出一截。

3. 实验覆盖面够广。 三个模型规模(4B/7B/14B)、两种奖励模式(CSR/AON)、多个基线(DPO/GRPO/RTT/DAPO/GSPO)、五个评估基准——该有的对比基本都有了。

局限与疑问

1. 信号质量的边界在哪里? 论文自己也承认,当 rubric 对模型似然的影响较弱、标准冗余、或奖励本身噪声大的时候,CoRT 的 \(\Delta\) 信号会很弱。附录里的"逐标准移除"实验显示,有些标准移除后 \(\Delta\) 接近 0(如"去英文"的 -0.01),说明不是所有标准都能产生有效的反事实信号。在实际应用中如何判断 CoRT 是否适合当前的 rubric 设置,还需要更多经验。

2. 只有指令遵循任务验证了。 论文的实验全部集中在指令遵循类基准(IFEval/IFBench/MultiDimIF),这类任务的 rubric 结构天然清晰。对于数学推理、代码生成等 rubric 不那么显式的任务,CoRT 是否同样有效?我持保留态度。

3. 与同期工作的定位。 CVPR 2026 的 P2T(Process-to-Token)用 Taylor 近似把 PRM 的步级奖励拆到 token 级,ICLR 2025 的 R3HF 用 Shapley value 做信用分配——这些工作和 CoRT 解决的是同一个大问题(token 级信用分配),但切入角度不同。CoRT 的优势是不需要 PRM 或额外训练,劣势是信号来源局限于 rubric 上下文的变化。如果未来能把多种信号源融合,效果可能会更好。

工程启发

如果你在做 GRPO 类的指令遵循训练,尤其是用了 multi-criteria rubric 作为奖励的场景,CoRT 值得一试。集成成本极低(多一次前向传播),而且论文已经把踩过的坑(归一化、调度)都告诉你了。

但要注意两点:一是确保你的 rubric 标准足够"有分量"——如果标准只是摆设,反事实信号会很弱;二是监控通用能力的回归,尤其是在小模型上。


收尾

CoRT 这篇论文给我的感觉是:它解决的是一个真实存在但不那么显眼的问题。 GRPO 的 response-level advantage 均匀广播不是一个 bug,但它确实是一个可以被利用的 inefficiency。CoRT 用一种几乎零成本的方式把这个 inefficiency 变成了 performance gain。

4.4 个点的平均提升,不需要额外训练任何东西——在 2026 年的 RL 训练领域,这种投入产出比已经相当能打了。

当然,token 级信用分配这个问题远没有被彻底解决。跨轮次的信用分配、多信号源的融合、与非 GRPO 算法的结合……都还有很多空间。但 CoRT 至少证明了一件事:有时候最好的信号,就藏在模型自己的行为模式里——你只需要用正确的方式把它问出来。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我