Paper Note · RL Credit Assignment

CoRT 深读:把 rubric 对回答的影响变成 token 级信用分配

CoRT 研究一个很具体的错位:rubric 可以告诉我们回答满足了哪些条件,但 GRPO 仍把同一个 response-level advantage 广播给整条回答。作者用同一条回答在“带 rubric”和“去掉 rubric”两种上下文下的 token log-probability 差,构造无需额外 relevance model 的信用权重,再把原有 advantage 重新分配到 token 上。

阅读顺序

核心判断

论文的主张可以压缩成一句话:不改变 response-level reward,只改变同一条回答内部各 token 得到多少更新信号。 CoRT 的“counterfactual”不是重新生成一条反事实回答,而是固定已经采样出的 token 序列,只改变输入上下文,然后观察模型对这条既定轨迹的逐 token 似然发生了什么变化。

不改 reward

仍然用原来的 verifier、CSR/AON 标量奖励和组内相对 advantage。

不训 scorer

不额外训练 token relevance discriminator,相关性信号来自 policy 自身。

只重分配

把成功或失败的 signed advantage 更多地放到 rubric 依赖较强的 token 上。

先把它放回 RL 流程

普通 GRPO 解决的是“这条回答整体好不好”;CoRT 试图补上“这条回答里哪些 token 更值得因这个好/坏结果被强化或抑制”。它不是新的 reward model,也不是持久记忆,而是 policy optimization 中间的 credit allocator。

问题背景:rubric 很细,GRPO 的更新却很粗

开放式指令往往同时包含多个约束:内容要正确、格式要满足、必须出现某个关键词、不能超过字数、还要遵守安全或风格要求。rubric 可以逐条判断这些条件,但传统 rubric-based RL 常把它们汇总成一个 response-level 分数。

设输入为 \(x\),rubric criteria 为 \(c\),完整提示为 \(x^+=(x,c)\)。模型从旧策略中采样一组回答 \(y_i\),每条回答得到标量奖励 \(r_i\)。GRPO 的组内 advantage 通常写成:

\[ A_i = \frac{r_i-\mu}{\sigma+\epsilon_r}. \]

这里 \(\mu\) 和 \(\sigma\) 是同一 prompt 组内的奖励均值和标准差。关键问题在于,虽然策略损失按 token 计算,\(A_i\) 却对回答 \(y_i\) 的每个 token 都一样。于是,开头的普通过渡词、真正实现约束的关键词、无关的填充句子,都会收到相同方向和大小的系数。

响应级监督

优点是简单、稳定、易扩展;缺点是把多个条件和多个行为混成一个结果,无法解释 credit 应该落在哪里。

token 级监督

更接近真正被训练的行为;但如果依靠额外标注或 relevance model,就会增加数据构造、训练阶段和系统集成成本。

CoRT 的问题设定因此不是“如何设计更好的 reward”,而是:既然 rubric 已经在 prompt 中,能不能直接利用 policy 对 rubric 的敏感性来做 token credit?

机制拆解:同一回答,两个上下文,一次信用重分配

1. 正常 rollout用 \(x^+\) 采样 \(y_i\),得到 verifier reward \(r_i\) 和 full-prompt log-probability。
2. 固定回答不重新生成,不修改 \(y_i\) 的任何 token。
3. 去 rubric replay用 criteria-free prompt \(x^-=x\) 重新评分同一序列。
4. 似然对比计算每个位置的 \(\Delta_{i,t}=\ell^+_{i,t}-\ell^-_{i,t}\)。
5. 更新重加权把有界、归一化的 \(w_{i,t}\) 乘到原始 \(A_i\) 上。

2.1 反事实 replay 到底测什么

对固定的 response token \(y_{i,t}\),论文分别计算:

\[ \ell^+_{i,t}=\log \pi_{\bar\theta}(y_{i,t}\mid x^+_i,y_{i,

再取差:

\[ \Delta_{i,t}=\ell^+_{i,t}-\ell^-_{i,t}. \]

\(\Delta\) 大,表示在这个 prefix 和目标 token 固定时,rubric 上下文让模型更愿意给这个 token 概率;\(\Delta\) 小或为负,表示它对 rubric 的依赖弱,或者去掉 rubric 后反而更容易出现。作者把它称为 rubric dependence 的 proxy,并明确说它不是经过校准的 token importance。

2.2 从似然差到 token 权重

直接使用 \(\Delta\) 会遇到长尾和模型尺度差异,所以 CoRT 先把它压到有界区间:

\[ s_{i,t}=\operatorname{sigmoid}\!\left(\tau(\Delta_{i,t}-b)\right)-\frac12, \qquad \widetilde w_{i,t}=1+\eta\lambda_k s_{i,t}. \]

\(b\) 是中心,\(\tau\) 控制斜率,\(\eta\) 控制强度,\(\lambda_k\) 是随训练步数逐渐打开的 SmoothStep ramp。论文默认 \(b=0,\tau=1,\eta=0.5\),因此在 response normalization 之前,active multiplier 位于 \((0.75,1.25)\)。

随后对每条回答单独做均值归一化:

\[ \bar w_i=\frac1{T_i}\sum_{t=1}^{T_i}\widetilde w_{i,t}, \qquad w_{i,t}=\frac{\widetilde w_{i,t}}{\bar w_i}, \qquad \frac1{T_i}\sum_{t=1}^{T_i}w_{i,t}=1. \]

这一步的意图是让 CoRT 重新分配回答内部的 credit,却不让整条回答的平均系数因为 replay 信号而整体放大或缩小。注意:它保持的是平均系数,不是经过 PPO clipping、长度效应和优化器动力学后的实际更新范数。

2.3 signed advantage 决定最终方向

CoRT 不让 \(\Delta\) 自己决定“强化还是抑制”,而是把它与原始 signed GRPO advantage 相乘:

\[ \widehat A_{i,t}=\operatorname{sg}(w_{i,t})A_i, \qquad \mathcal L_{\mathrm{CoRT}} =-\mathbb E_{i,t}\left[\min\left(\rho_{i,t}\widehat A_{i,t}, \bar\rho_{i,t}\widehat A_{i,t}\right)\right]. \]

\(\operatorname{sg}\) 表示 stop-gradient:replay 权重是本 batch 的固定系数,不通过 loss 反向训练出另一个 scorer。正 advantage 的回答会更强地强化 rubric-dependent token;负 advantage 的回答会更强地抑制这些 token。于是 CoRT 更准确的定位是“用 policy 内部敏感性做 credit 分配”,不是“用敏感性直接当 reward”。

2.4 成本与训练稳定性

作者称每个 sampled response 只增加一次 criteria-free forward scoring pass:不再生成、不再调用 verifier、不做 rejection sampling,也不训练 relevance label。但这仍然是对最长可达 4096 response 的一次额外逐 token 评分,论文没有给出 wall-clock 或 GPU-hour 增量,所以“轻量”应理解为相对 RTT 的独立 relevance-learning stage,而不是零成本。

训练初期通过 cubic Hermite SmoothStep 打开权重:

\[ u_k=\operatorname{clip}\!\left(\frac{k-k_0}{K},0,1\right), \qquad \lambda_k=3u_k^2-2u_k^3. \]

这让早期更新接近普通 GRPO,等 rollout 和 reward 统计稳定后再引入 token-level redistribution。作者的消融显示,去掉 normalization 会造成平均权重漂移、length clipping 和梯度/熵上升;去掉 ramp 则会让 token weighting 突然生效并带来后期尖峰。

实验与证据:主结果有效,但提升高度依赖任务与协议

3.1 实验设置

训练数据是 HIR-16k。每条样本包含不带 instruction list 的原始 prompt 与对应约束列表;训练时把约束列表追加到 prompt 后形成 \(x^+\),只在 CoRT replay 中使用不带列表的 \(x^-\)。奖励有两种:

\[ r_{\mathrm{CSR}}=\frac1M\sum_{j=1}^{M}z_j, \qquad r_{\mathrm{AON}}=\mathbf 1\!\left[\sum_{j=1}^{M}z_j=M\right]. \]

CSR 是满足约束的比例,AON 是全部满足才得 1。主矩阵使用 Qwen3-4B-Instruct 与 Qwen2.5-7B-Instruct,在两种 reward 下各训练一组;另有 Qwen3-14B、DAPO/GSPO 兼容性测试。rollout batch size 为 64,每个 prompt 采样 8 条回答;最大 prompt/response 长度为 2048/4096,训练温度 1.0,\(p=0.99\),top-k=100。评估每个 prompt 采样 5 条,温度 0.7,\(p=0.8\),top-k=20。

3.2 主表:CoRT 对 matched GRPO 的提升

以下列出论文 Table 1 的关键增益,单位为百分点;主表对 IFEval、IFBench、MultiDimIF 取前 500 trainer steps 内的最佳验证 checkpoint,AdvancedIF 则只在 step 500 评估。

模型 / rewardIFEval Prompt / InstructionIFBench Prompt / InstructionMultiDimIFAdvancedIF Overall / Rubric
Qwen3-4B / CSR+1.77 / +1.27+2.18 / +2.81+6.10+3.16 / +1.33
Qwen3-4B / AON+1.67 / +0.89+2.11 / +1.85+7.35+0.74 / +0.41
Qwen2.5-7B / CSR+3.36 / +3.10+6.40 / +6.45+11.85+3.27 / +1.28
Qwen2.5-7B / AON+2.33 / +2.23−2.31 / −1.91+10.22+1.65 / +1.24

作者的“绝大多数比较提升”在主表上是成立的:28 个 CoRT−GRPO 数字中 26 个为正,比例约 92.9%。Qwen3-14B 的 CSR 五项全部提升;AON 下 IFEval 下降,但 IFBench 和 MultiDimIF 提升。把 CoRT 接到 DAPO 后五项都提升,接到 GSPO 后五项中四项提升,MultiDimIF 小幅下降。

3.3 一般能力与稳定性

Math500、GPQA-Diamond、MMLU-Pro 的 mean@5 检查显示,Qwen3-4B 的 CSR 平均值从 71.47 到 71.74,AON 从 71.47 到 71.44;Qwen2.5-7B 的 CSR 从 53.12 到 52.50,AON 从 53.12 到 53.04。也就是说,论文能支持“主要指令遵循能力提升且一般能力大体保留”,不能支持“通用能力同步增强”。

稳定性消融的因果链比较清楚:完整 CoRT 的平均 token weight 保持在 1 附近,length clip ratio、actor gradient norm 和 entropy 相对稳定;去掉 response normalization 后末期平均权重接近 1.04,并伴随 clipping 与梯度上升;去掉 ramp 后更新突然引入,后期也出现不稳定。另一个只使用 replay perturbation、没有标准 GRPO advantage 路径的变体,训练 reward 下滑且 length clipping 增大,说明 replay contrast 更适合做“已有 reward 方向上的分配器”,不适合单独充当训练方向。

3.4 附录案例:局部约束很容易被定位,全局约束不然

在 balanced-diet 和 pandemic 两个 HIR response 上,格式标记、数字、关键词、section label 等 token 的 \(\Delta\) 明显高于普通 token。匹配上下文控制也保留了这个差异:

控制上下文cue token 平均 \(\Delta\)其他 token 平均 \(\Delta\)
Criteria-free prompt6.111.02
等长度 neutral filler6.671.20
打乱的其他 HIR criteria5.760.97

逐条移除 criterion 的结果更能说明边界:移除“exactly two bullets”时 cue/other 为 2.29/0.37,移除 highlighted spans 时为 4.67/0.37,移除 two section labels 时为 3.85/0.27;但移除“至少五句话”时为 0.07/0.11,移除“英语”时为 −0.01/−0.00。这个附录并没有证明所有 rubric 都能被 token 化,反而显示 CoRT 更擅长捕捉能在输出中留下局部、可见、离散痕迹的约束。

术语解释:读懂这篇论文只需先对齐五个词

GRPO

Group Relative Policy Optimization。对同一 prompt 采样一组回答,用组内 reward 的均值/标准差构造 advantage,不单独训练 value model。

Rubric

把“回答好不好”拆成可检查的 criteria,例如关键词、格式、事实、长度、安全和风格。

CSR / AON

CSR 是满足条件的比例;AON 是全部满足才得正奖励。前者信号较密,后者更稀疏。

RTT

Rubrics to Tokens。CoRT 的最近基线,用额外训练的 Token-Level Relevance Discriminator 把 rubric 结果映射到 token。

HIR-16k

Hindsight Instruction Replay 数据。每条训练样本保留原始 prompt 与可拆解约束列表,正好提供 CoRT 所需的 \(x^+\) 和 \(x^-\)。

Credit assignment

把最终成功/失败归因给序列中的局部动作。LLM 中通常就是决定哪些 token、步骤或工具调用该被强化。

证据审计:论文证明了什么,尚未证明什么

4.1 论文自己明确承认的限制

4.2 独立核验得到的四个边界

第一,4.4 个百分点不是主表可直接复算的数字

摘要报告平均提升 4.4 个百分点,但正文没有给出聚合公式。按 Table 1 的 28 个 delta 直接求均值是 +2.96 个百分点,中位数约 +2.15,26/28 为正。4.4 可能采用了未说明的子集或加权方式;因此最稳妥的复述是“主表绝大多数比较提升”,而不是把 4.4 当成已被表格复现的全局平均。

第二,主表不是完全独立重跑的公平矩阵

论文明确写明 Instruct、SFT、DPO、GRPO 和 RTT 行来自 RTT 论文,CoRT 行是本论文自己的运行结果。即使使用相同评估协议,不同实现、随机种子、训练环境和 checkpoint 选择仍可能影响比较;论文没有提供多 seed 方差或置信区间。

第三,“最佳 500 步 checkpoint”会放大上界叙事

IFEval、IFBench、MultiDimIF 取前 500 步内的最佳验证点,step-500 表只补充 CoRT,不同时给出 GRPO 的固定 step-500 对照。因此主表适合说明 CoRT 的可达验证上界,不足以说明在一个预先固定的训练预算点上必然领先。

第四,似然依赖不等于对 reward 的因果贡献

CoRT 固定 response,只改变 prompt 上下文;\(\Delta\) 测量的是 policy sensitivity,而不是“删除这个 token 会让 reward 下降多少”。格式标记和关键词有天然局部痕迹,所以案例很好看;全局语义条件没有同样的局部痕迹,正是附录中的失败边界。

4.3 它与 RTT 的真实 trade-off

RTT 训练 relevance discriminator,代价是额外的标注/合成数据和独立训练阶段,但它有机会学习“哪个 token 与哪条 criterion 对应”。CoRT 不需要这个阶段,工程链更短,却把归因质量交给当前 policy 的上下文敏感性。主表显示 CoRT 与 RTT 整体竞争力强,但并非每个模型、reward 和 benchmark 都胜出;Qwen2.5-7B 的 AON 尤其出现 IFBench 两项下降。

因此,CoRT 的真实贡献不是证明“外部 relevance model 不再需要”,而是证明在一类可拆解指令任务上,一个便宜的 policy-internal contrast 可以成为足够好的 credit proxy。是否值得牺牲归因精度换取系统简单,取决于任务的约束是否具有局部输出痕迹。

独立 insight:CoRT 更像“上下文敏感性 shaping”,不是完整的因果 credit assignment

5.1 真正新的是信号来源与使用位置

“给 token 分配不同权重”本身并不新,process reward、token-level discriminator、self-distillation 都在做细粒度监督。CoRT 的新意在于把一个已有的 policy evaluation 信号——同一 token 在两个上下文下的 log-probability 对比——放到 GRPO 的 advantage 与 policy loss 之间。这样它不需要改 verifier,也不需要建立一个长期维护的 relevance model。

这是一种很有价值的系统设计模式:用 policy 对输入干预的敏感性,作为低成本的 credit prior;再用真实 outcome reward 决定方向。它把“谁值得获得更多梯度”与“这条回答最终是否成功”分开,避免让解释性 proxy 独自决定优化方向。

5.2 为什么局部约束强、全局约束弱

局部约束通常会在输出中留下离散痕迹:一个星号、一个固定短语、一个数字、一个 section 标题。模型在完整 rubric 下会显著提高这些位置的概率,去掉 rubric 后差值自然很大。全局语义约束则分散在许多 token 上,例如“用英语”“至少五句话”“保持有帮助”;它可能改变整个生成分布,却不对应某个显著的单一 token。

这意味着 CoRT 很可能首先强化“可见的遵循行为”,而不是自动解决最难的语义满足。工程上若把它用于 agent 或开放式偏好任务,应先测一个 cue localization profile:把 rubric 分成局部、全局、存在性、缺失性、语义性几类,分别计算 cue/other contrast 和训练增益。若高增益只集中在格式/关键词,不能把它解释成通用 credit assignment。

5.3 我会如何使用这篇论文

适合先试

约束可拆解、输出痕迹明显、已有可靠 verifier,且不想维护额外 relevance model 的 instruction-following 任务。

必须加的实验

多 seed、固定 step 对照、真实 wall-clock/GPU 成本、局部/全局 criterion 分层消融,以及对语义失败案例的人工审计。

不能直接外推

不要仅凭这组单轮 benchmark 结果,推断它已经解决多轮 agent、工具调用、长轨迹或主观偏好中的 credit assignment。

最终判断

CoRT 是一个聪明而克制的 GRPO 插件:它用一次额外评分 pass 把 rubric 的“存在感”转成 token 权重,并在多个指令遵循设置中带来真实提升。它最值得记住的不是“counterfactual”这个名字,而是这条边界:policy 对 rubric 的敏感性可以帮助分配已有 reward,但敏感性本身不等于行为对 reward 的因果贡献。

证据边界与资料索引

本文以 CoRT arXiv v1(2026-07-28,12 页)正文、图表、附录和 TeX 源文件为主材料;数字复核以论文 Table 1–10 为准,并独立计算了 Table 1 的 delta 均值。X 主帖是论文公告,不是包含额外方法细节的长 thread。CoRT 的 arXiv 页面和源文件未列出官方代码仓库;可核验的公开 HIR 代码是其训练数据来源的项目,不等同于 CoRT 实现。