用两版prompt给同一回答重打分,CoRT把奖励信用摊到token级

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

cs.AI

2026-07-28

rubric式GRPO把奖励均匀摊给每个token。CoRT让同一回答在两种prompt下重算似然,据对比给token分配信用,平均比标准GRPO高4.4个点。

这篇在解决什么

rubric式强化学习用一张明确的评分标准(rubric)来评估模型输出,比标量奖励信息量大。但接到GRPO这类pipeline里就被拍扁了:整条回答对照rubric算出的判断,被压缩成一个标量的response-level reward,再变成一个response-level advantage,均匀广播给这条回答里的每一个token。问题在于,rubric里的不同条标准往往锚定在不同的片段、格式或语义选择上,「这一段对不对」和「那一段对不对」本来该分开算信用,均匀分配等于把信号又抹平了。

方法

CoRT(Counterfactual Replay for token-level credit)要做的,是在不动response-level reward的前提下,把那条均匀的advantage按token重新分配。它不额外训一个token打分模型,改用反事实重放。

做法是:对同一条采样出来的回答,分别在两种prompt下重新算每个token的对数似然。一种是原来的、带rubric标准的prompt;另一种是matched的、去掉标准的prompt。两者在每个token上的似然差Δ,就是这个token「有多依赖rubric上下文」的代理:一个token如果在有标准时似然明显更高,说明它正是因为那条标准才生成的,理应分到更多信用。

这些对比值经过一个sigmoid映射变成有界的replay-margin分数,再用一个SmoothStep调度做response内归一化(让一条回答里的权重平均为1),最后乘到带符号的GRPO advantage上,完成token级的重分配。整个流程不引入辅助打分器,不改response-level reward,保留GRPO的简洁和稳定。

结果

跨Qwen3-4B-Instruct、Qwen2.5-7B-Instruct、Qwen3-14B三个模型,以及IFBench、IFEval、MultiDimIF、AdvancedIF四个指令遵循benchmark,CoRT在绝大多数配比上超过对应的response-level GRPO,平均高4.4个百分点。分项看,MultiDimIF上+6.10,Rubric上+3.16,IFBench Instruction上+2.81。它和那种额外学一个token级相关性的baseline表现相当,但省掉了单独的相关性学习阶段。另外它能挂到DAPO、GSPO上,说明这是个即插即用的信用分配模块,不绑死GRPO。

为什么重要

对做指令遵循RL的人,这是「在不动reward定义的前提下,把粗粒度信号往细处摊」的一条省事路子:不用训辅助模型,只用模型自己已经能算的似然做对比。它解决的是rubric信号在GRPO里被浪费的那一段。

局限与存疑

作者承认这个方法的天花板取决于信号强度:当某条标准本来对token似然影响就小、和原prompt信息冗余、或者response-level reward本身噪声大时,反事实对比能提供的信号就弱,改进也小。只测了指令遵循这类有明确rubric的任务。未来方向他们也点到了更细粒度的干预、按标准分别分配、以及更长程的信用。读下来一个隐忧是,同一份回答要重算两遍似然,训练步的计算开销明显上升,论文没把这笔反事实重放的额外算力成本量化清楚。

术语

原文与代码

社区讨论

相关论文

全部论文解读