CoRT:用反事实回放做 Token 级 Rubric 引导的策略优化

  • 关联论文:2607.25659
  • 作者:flyP
  • 更新:2026-07-30

一句话结论

CoRT 提出一种「不训打分模型」就能给 rubric-based GRPO 加 token 级信用分配的技巧——通过在带 rubric 与去 rubric 两个 prompt 上对同一条样本做对数似然对比,把对比值映射成 token 级权重,去重分配 GRPO 的 advantage,在指令微调模型上平均比纯 response 级 GRPO 高 4.4 pp。

解决什么真问题

RLHF/RLVR 当前主流是 GRPO 一族:给一条 response 一个标量 reward,再 broadcast 到所有 token 上做 advantage 估计。问题在于: 1. 粒度太粗。Rubric 评估(按若干条标准分别打分)通常给出「哪条标准在哪一段输出上被违反」的细粒度信号,但 GRPO 把它压成一个标量,token 间无法差异化。 2. 依赖辅助模型。已有的 token 级信用方法(process reward model、token-level critic、token-Q value 估计器)都额外训练一个打分网络,工程复杂、稳定性差、容易引入新偏置。 3. 不改 reward 形状。工程上希望保留 GRPO 简洁稳定的 rollout + advantage pipeline,只在 credit 分配层做增强。

CoRT 想回答的是:能不能只利用模型自身的 policy 分布差异,做出一个比「一刀切 advantage」更细、不比「额外打分器」更复杂的 token 级权重?

核心方法

  1. Rubric-conditioned GRPO 的标准管线: - 采样 N 条 response,rubric judge 打一个标量 reward r。 - 组内归一化得到 advantage A(response 级,标量)。 - 按 token broadcast 应用 A 做策略梯度。

  2. CoRT 的反事实回放:对每条采样 response $y$,把它在两个 prompt 下重新前向一次: - 原始 prompt:$p_{\text{full}}$(含 rubric 上下文)。 - 去 rubric prompt:$p_{\text{ctrl}}$(去掉 rubric 条目,保留其它指令)。

计算 token 级对数似然差: $$ \Delta_t(y) = \log \pi_\theta(y_t \mid y_{<t}, p_{\text{full}}) - \log \pi_\theta(y_t \mid y_{<t}, p_{\text{ctrl}}) $$ - $\Delta_t$ 大 ⇒ 该 token 在「看到 rubric」时被显著抬高 ⇒ 它依赖 rubric 上下文。 - $\Delta_t$ 小(或负)⇒ 该 token 主要由模型预训练知识驱动,对 rubric 不敏感。

  1. 权重映射与 advantage 重分配: - 把 $\Delta_t$ 通过一个有界函数(如 softmax、tanh 或 clipped sigmoid)压到 $[w_{\min}, w_{\max}]$。 - 在 response 内做归一化,避免长 response 整体被压低。 - 把 response 级 advantage $A$ 乘上 $w_t$,得到 token 级 advantage $A_t = A \cdot w_t$。 - 优势 $A_t$ 保留正负号(GRPO 中 advantage 是有符号的),只调整绝对强度

  2. 不变项: - 不增加新参数 / 不训打分模型。 - 不修改 response 级 reward $r$。 - rollout 数、KL 约束、group size 与基线 GRPO 完全一致。

伪代码:

for prompt p_full with rubric, sampled response y:
    # 反事实回放:再前向一次
    log_p_full = loglik(y | p_full)        # token-wise
    log_p_ctrl = loglik(y | p_ctrl)        # 去 rubric prompt
    delta_t   = log_p_full - log_p_ctrl    # rubric 依赖度
    w_t       = normalize(softmax(delta_t)) # bounded in [0, 1]
    A         = group_advantage(r)          # 与基线 GRPO 同
    A_t       = A * w_t                    # token 级 advantage
    policy_gradient(token_loss, A_t)       # 不变其它项

关键实验与数据

  • 平均提升:在指令微调模型 × 多种 reward 粒度下,CoRT 比同配置的 response 级 GRPO 在「绝大多数」对比里胜出,平均+4.4 pp
  • 不输 token 级 baseline:与「需要单独训练 token 级信用打分器」的基线(如 token reward model / process reward model)相比,CoRT 在持平甚至更优的同时,省掉一个完整训练阶段。
  • 跨模型稳定:摘要未给具体模型名清单,提到「across instruction-tuned models and reward granularities」——意味着不止一个 backbone、不止一种 rubric 结构都能拿到提升(具体清单见原文)。
  • 稳定性保留:因为 rollout 和 advantage 计算路径与基线 GRPO 完全一致,方差来源没新增,原文称「retains the simplicity and stability of GRPO」。

亮点与局限

亮点: - 「policy-internal counterfactual likelihood contrast」是一个非常优雅的信号源——不引入外部打分器,只复用一个已训练好的 policy。 - 行为可解释:$w_t$ 直接是「该 token 依赖 rubric 的强度」,可以做 token 级可视化 debug。 - 改动极小,落地 GRPO 流水线只需插入一次额外前向,工程成本可控。

局限: - 额外一次前向 = 计算量翻倍(在同一 batch 上),长 response / 大模型场景下吞吐成本需评估。 - 对「rubric 内容对模型的边际影响」依赖较强:rubric 本身若与预训练知识无差异(例如 rubric 是常识),$\Delta_t$ 全接近 0,权重退化为均匀,等同于普通 GRPO。 - 反事实 prompt 的构造(如何「去掉 rubric 而保留其它」)是关键工程细节,原文未明确具体模板,原文未明确。 - 摘要未给出方差/置信区间和「对比频率」(vasty majority 是多少 case),稳健性判断需要看正文表格。

对工程落地的启发

  1. GRPO 流水线无痛升级:如果团队已经在跑 GRPO / DPO / RLOO 加 rubric,加一次 p_ctrl 前向即可获得 token 级信用,几乎不引入新基础设施。
  2. Rubric 设计的反馈回路:把训练后的 $w_t$ 可视化,能发现「rubric 写了但模型根本不看」的条款,进而回写到 rubric 设计——比纯看 reward 曲线更可解释。
  3. 避免再训 PRM:很多团队为提升粒度去训 process reward model,CoRT 提供了一条「先用零工程量方案占位」的路径,决定是否值得训 PRM 时可作 baseline。

与同方向工作的关系

  • 与 GRPO(DeepSeekMath 等)的关系:保留标量 advantage 主干,把 credit 分配作为可插拔增强。
  • 与 PRM / Process Reward Model(Math-Shepherd、rStar-Math)的关系:同样追求 token/process 级信用,但 PRM 需训单独网络;CoRT 用 policy 自身差值近似,省掉训练。
  • 与 DPO / IPO / KTO 的关系:都属于「不需要明显额外奖励模型」的偏好优化家族,CoRT 专注于 rubric-based 训练信号下的粒度问题。
  • 与 Token-level RL(Token-DPO、RLOO with per-token loss)的关系:直接面向 token loss 设计,CoRT 给出了一种新的权重来源。

适合谁读

  • 正在或即将做 GRPO / RLOO 训练 LLM 的 RL 工程师。
  • 负责 rubric / 评分 prompt 设计与迭代的算法工程师,特别是想理解「rubric 究竟影响了哪些 token」的人。
  • LLM 训练 infra 团队,关心「如何以最小改动做 token 级信用」落地。
  • 研究偏好学习 / RLHF 的研究生,可作为「policy-internal contrast」信号的新基线。

(来源:arXiv 摘要 https://arxiv.org/abs/2607.25659;paper card /shared/research-kb/organized/paper_cards/663-2607-25659.md。具体模型清单、各 reward 粒度细节、表格数据以原文为准;「vast majority」与 +4.4 pp 来自摘要原文,统计区间与方差原文未明确。)

工程落地与核查(Jay)

事实核查

  1. +4.4 pp 的适用范围:原文"average improvement of 4.4 percentage points"——注意这是跨 benchmark 平均,在某些单个任务上提升可能更大或更小,跨任务一致性需查正文表核实。⚠️ 3 分风险:若某任务rubric与预训练知识高度重叠,$\Delta_t$≈0,等同普通GRPO,提升为0。
  2. "不训打分模型"与"计算量翻倍":原文确实不引入新参数,但额外一次 p_ctrl 前向是确定的。解读正文已指出计算量问题——⚠️ 存疑:原文未明确 batch 内是否共享 KV cache,若可共享,实际开销可能低于2x而非严格2x。
  3. "token-wise loglik 对比":需确认是对每条采样 response 的 token 序列做两次完整 forward,而非 sampling 两次。解读描述正确(采样→再前向),但若 rollout 时已做 sampling,再前向时是否用 greedy decode 决定token序列原文未明确。
  4. 伪代码正确性:基本流程(loglik full → loglik ctrl → delta → softmax → normalize → A·w_t)与摘要方法描述一致,但 group_advantage(r) 的具体归一化公式未在解读中展示——这是 GRPO 标准流程,不影响理解。

可读性精修

  • 原文数学格式正确,\Delta_t 定义清晰。
  • ⚠️ 小问题:"vast majority"(原文)与解读中的「绝大多数」对应,但摘要实际写的是「在绝大多数对比中胜出」而非精确数字,引用时建议加"(摘要原文,未给频率)"。
  • 第三局限「原文未明确具体模板」重复出现两次,可删去一处。

工程落地

接入成本评估: - 若已有 GRPO + rubric pipeline,接入 CoRT 只需两步:① 构造 p_ctrl(去掉 rubric 后的 prompt);② 在同 batch 上多做一次 forward。 - p_ctrl 的构造是最大工程坑:不能只删 rubric 段落,要保证「去掉 rubric 但保留其他指令(如输出格式要求、角色设定)」,否则 $\Delta_t$ 会包含"格式遵从"的噪声。建议在 p_ctrl 里显式保留输出格式/长度要求,用 [RUBRIC] 占位符替换 rubric 内容而非简单删除

吞吐与成本: - 对于 7B 模型 + 1K context + batch=8,每条 response 多一次 forward = 显存几乎翻至2x(需要同时存两份 KV cache:full 和 ctrl)。 - 对于 70B 模型,额外一次前向的显存和延迟翻倍是实质瓶颈,建议评估时以 batch=1 为基准测端到端训练速度而非单 forward 延迟。 - 长期解决方案:若 p_ctrl 的 KV cache 可复用(即 ctrl 前向的 prefix 就是 full 前向的 prefix),实际开销可降至 <<2x。

$w_t$ 可视化 debug: - 落地时强烈建议在每个训练 step 吐出 top-5 / bottom-5 的 $\Delta_t$ token,送回 rubric 设计流程。 - 若发现某条 rubric 的 $\Delta_t$ 全程偏低(< 0.1),说明模型根本没在读这条——应立即简化该 rubric 条或改写措辞,而非继续训练。

与 PRM 的关系: - CoRT 不能替代 PRM 在「推理过程」上的信用分配(PRM 可以在生成中途做 early-stop),CoRT 只做事后(post-hoc)token 重加权。 - 若业务场景需要「生成时 early stopping」(如 math step-by-step),PRM 仍有必要;CoRT 适合「一次性生成整个 response」的 instruction-following 场景。 - DecoEvo(同批另一篇解读)与 CoRT 存在互补:DecoEvo 进化 rubric,CoRT 精细化 credit assignment,二者可以串接。

踩坑清单: 1. p_ctrl 构造不一致会导致 $\Delta_t$ 包含格式遵从噪声 → 提前做 prompt ablation 2. 长 context(>16K)下 ctrl 前向的 KV cache 显存翻倍 → 评估时测 GPU 显存峰值 3. rubric 与预训练知识无差异时 CoRT 退化为普通 GRPO → 上线前在 validation set 上测 $\Delta_t$ 分布 4. 「vast majority」是主观词,不宜引用为精确数据 → 用「多数对比中胜出(摘要原文)」代替