Think-with-Rubrics: From External Evaluator to Internal Reasoning Guidance

Paper: arXiv:2605.07461

1. Motivation (研究动机)

现有 LLM post-training 中,RL 在可验证任务上已经很强,因为 reward 可以直接由标准答案给出;但在 instruction-following、开放问答、长文本写作这类 unverifiable/open-ended 任务上,reward 往往只能依赖单个 scalar score 或 monolithic reward model。问题在于,这类监督太粗糙,无法细分“是否满足长度限制”“是否用指定语言”“是否覆盖要求的语义点”“是否保持整体表达质量”等多个维度,因此模型即使拿到高层奖励,也很难知道到底应该修正哪一类行为。

Rubric-as-Reward 这一路线试图把开放任务分解成多个 criterion,让 reward 来自“满足了多少 rubric 条目”。这比单一分数可解释,也更稳定,但已有框架把 rubric 仅仅当作 response 生成完成之后的外部 evaluator。也就是说,rubric 参与打分,但不参与生成过程本身。作者认为这导致两个问题:一是 success criteria 没有进入模型的推理过程,模型在作答时并不会显式围绕这些约束组织思考;二是 evaluator rubric 与 generator 内部推理脱节,优化的是“事后被 rubric 评价为好”,而不是“先形成 rubric-aware 的 reasoning scaffold 再作答”。

这篇论文要解决的具体问题是:能否把 rubric 从外部奖惩信号,变成模型内部 reasoning guidance 的一部分,让模型先为当前任务生成一份自我 rubric,再依据它完成回答,并用 golden rubric 与 self-generated rubric 的双重一致性联合训练?如果这件事成立,那么 RL 在开放 instruction-following 任务上就不再只是在结果空间里做粗粒度打分,而是能把“规则意识”内化为 generation policy 的一部分,这对更可控、更可解释、也更 scalable 的 alignment 很重要。

2. Idea (核心思想)

核心 insight 很具体:与其让 rubric 只在回答结束后充当外部 judge,不如把“先生成 rubric,再根据 rubric 生成 answer”当成完整 policy trajectory。这样 rubric 不再只是 reward 的分解器,而成为 answer generation 前的显式认知脚手架。作者将 response factorize 成两步:先采样 self-generated rubric ,再在原始指令 和该 rubric 条件下生成最终答案

与已有 Rubric-as-Reward 方法相比,根本差异不是“reward 里多加了一项”,而是把 rubric 生成直接并入 policy 本身,让训练目标同时塑造“怎么定义成功标准”和“怎么根据成功标准作答”。与简单的 “with think” baseline 相比,本文的不同点也很明确。普通 CoT 只是让模型自由地想一想,但没有把 reasoning 拆成结构化的 Hard Rules 与 Principles;Think-with-Rubrics 则把思考形式限定为一组明确的 criterion,因此它不是泛化的 free-form thinking,而是面向 instruction following 的专用 reasoning schema。

3. Method (方法)

3.1 Overall framework

Figure 1 解读:这张总览图对应作者的完整训练流程。第一阶段是 SFT warm-up,核心目标不是直接把模型训练成更强的 evaluator,而是把输出格式稳定到 <rubric> ... </rubric><answer> ... </answer> 的双段式结构,并通过蒸馏 Gemini-2.5-Flash 的 rubric-answer pair 让模型学会“先列规则、再写答案”的行为模板。第二阶段是 RL,输入仍然是 instruction,但 policy 现在会先生成 self rubric,再生成 answer;reward 由 golden rubric consistency、self-generated rubric consistency 和 format reward 共同组成。它们分别约束“回答是否符合外部金标准”“回答是否与自己生成的 rubric 一致”“生成出来的 rubric/answer 是否可解析且 rubric 数量合理”。

作者的直觉是,如果模型总是先显式写出一套 task-specific success criteria,它在生成 answer 时就不再只是对 instruction 进行一次模糊解码,而是在一个更结构化、更具自监督意义的中间表示上继续推理。这个中间表示既可以被 golden rubric 间接拉向高质量标准,也可以在 RL 中成为 self-consistency supervision 的锚点。

3.2 Problem formulation: response as rubric-plus-answer trajectory

作者把一次完整输出写成 trajectory ,其中 是模型生成的 rubric, 是在该 rubric 条件下生成的最终答案。联合概率分解为: 这一步很重要,因为它把 rubric generation 从“辅助文本”变成了有明确概率语义的 policy 子步骤。传统 Rubric-as-Reward 只优化 answer token;这里优化对象扩展到了 rubric token 和 answer token 组成的整条轨迹。

3.3 SFT warm-up

SFT 阶段的目标是把模型初始化到 Think-with-Rubrics 所要求的输出结构与基本能力上。论文给出的做法是 distill Gemini-2.5-Flash 生成的 rubric-answer demonstrations,让模型学会:

  1. 先分析用户请求。
  2. 把要求拆成 Hard RulePrinciple
  3. 严格按 <rubric><answer> 标签输出。

SFT loss 本质上是对 teacher trajectory 的标准监督学习。虽然作者在正文中没有把 token-level CE 完整展开成复杂形式,但它的功能非常明确:先解决格式、分段和基本 rubric-writing 能力,再进入 RL。没有这个阶段,后面的 RL 很容易因为 parse failure 或 rubric 质量过低而不稳定。

3.4 Rubric verifier and weighted compliance score

RL 阶段需要一个 verifier 判断 answer 是否满足 rubric 中的各条 criterion。作者采用 implicit aggregation 的方式,让 verifier 在一次前向中联合评估全部 rubric item,并输出 weighted compliance score: 这里 Hard Rules 是必须满足的约束,Principles 是质量导向的软性规范。这个设计的作用不只是“加权平均”,而是显式允许系统把 instruction compliance 和 response quality 区分处理。后面的权重消融也表明,Hard Rules 的权重更高时效果更好。

3.5 Three-part reward system

RL 总 reward 为: 其中三项分别承担不同角色。

3.5.1 Golden rubric consistency reward

golden reward 定义为: 这里 来自 Openrubrics 中的 golden rubric。它直接告诉模型“最终 answer 是否符合外部标准”。如果只保留这一项,方法会退化为更强版本的 Rubric-as-Reward,但 rubric 本身仍然不一定真正成为模型内部的 reasoning scaffold。

3.5.2 Self-generated rubric consistency reward

self reward 定义为: 这项奖励看的是 answer 是否符合模型自己写出来的 rubric。表面上看,这似乎有 reward hacking 风险,因为模型可以写一堆很容易满足的 trivial criteria。但作者想利用的恰恰是这种“answer-rubric 自一致性”信号,把它变成 internal reasoning guidance 的强化来源。

更微妙的是,作者并不直接监督 rubric 自身质量,而是假设当一个 answer 同时满足 self rubric 和 golden rubric 时,self rubric 会被隐式拉向 golden standard: 这个假设是本文机制分析的核心。也就是说,golden reward 不是只奖励最终 answer,它还会通过 joint optimization 间接提升 self-generated rubric 的质量。

3.5.3 Format reward

为了防止模型通过“只生成几条非常空泛、非常容易满足的 rubric”来 hack R_self,作者加入 format reward: $ R_{\text{fmt}}

\mathbb{I}[\texttt{parseable}] \cdot \max\left(0, 1-\frac{|n(\hat{r})-10|}{5}\right) n(\hat r)$ 是 rubric criterion 数量。作者统计 Openrubrics 后发现 99.61% 样本的 criterion 数位于 5 到 15 之间,均值 8.66,众数 10,所以把 10 设为最优点,并在 5 和 15 两端线性衰减到 0。这个设计很有针对性:它不是一般性的 entropy regularization,而是直接约束 rubric 结构不能太短也不能太冗长。

3.6 RL optimization

最终 policy 用 DAPO、且不加 KL loss 优化: $ \mathcal{L}_{\text{RL}}

-\mathbb{E}{\tau\sim\pi\theta} \left[ A(\tau)\log \pi_\theta(\tau\mid x) \right] A(\tau)$ 是根据上面组合 reward 计算出的 DAPO advantage。作者刻意拿掉 KL,意味着他们更相信 rubric-based structured reward 足以稳定优化,而不需要再靠 reference policy 约束更新幅度。

3.7 Prompt format as part of the method

Figure 2 解读:这张案例图展示了 Think-with-Rubrics 与普通 Rubric-as-Reward 的根本区别。在同一条 IFEval 指令下,baseline 直接输出 reflective essay 建议,虽然内容大体相关,但没有严格满足 “英语”“全大写”“控制长度” 等硬约束;而 Think-with-Rubrics 先生成了包含这些硬规则与一般性写作原则的 rubric,再据此写 answer,最终显著提升了 instruction adherence。这个例子最能说明作者的 claim:rubric 不是后验 judge,而是前向生成时的控制接口。

论文附录还给出了两种 inference prompt。baseline with think 只要求模型先 step by step 思考,然后在 <answer> 里输出最终答案;Think-with-Rubrics 则明确要求:

  1. Define Rubric:把请求拆成 Hard RulesPrinciples
  2. Generate Answer:按 rubric 生成答案。
  3. 输出格式严格是 <rubric> ... </rubric> 再接 <answer> ... </answer>

这也是本文与 generic CoT 最大的工程差异。作者并不是简单加了“think step by step”几个词,而是把 thinking 的中间表示限定成可验证、可加权、可进入 RL reward 的 rubric structure。

3.8 Pseudocode

论文未提供公开代码;经过 arXiv 页与 GitHub 检索,未找到 released implementation,因此这里的伪代码依据论文公式与 prompt 机制整理,而不是对某个仓库逐文件复现。笔记中明确保留 代码搜索未找到开源实现,因此不提供 github_ref

def generate_rubric_and_answer(policy, instruction: str):
    rubric = policy.generate_rubric(
        instruction,
        schema=["Hard Rule", "Principle"],
        rubric_tag=(" <rubric>", "</rubric> ")
    )
    answer = policy.generate_answer(
        instruction=instruction,
        rubric=rubric,
        answer_tag=(" <answer>", "</answer> ")
    )
    return rubric, answer
def verify_score(answer, rubric, verifier, hard_weight=2.0, principle_weight=1.0):
    hard_rules = [c for c in rubric if c.kind == "Hard Rule"]
    principles = [c for c in rubric if c.kind == "Principle"]
    hard_hits = sum(verifier(answer, c) == "met" for c in hard_rules)
    principle_hits = sum(verifier(answer, c) == "met" for c in principles)
    denom = hard_weight * len(hard_rules) + principle_weight * len(principles)
    return (hard_weight * hard_hits + principle_weight * principle_hits) / max(denom, 1)
def compute_rewards(answer, self_rubric, golden_rubric, parseable, alpha, beta, gamma):
    r_gold = verify_score(answer, golden_rubric)
    r_self = verify_score(answer, self_rubric)
    n = len(self_rubric)
    r_fmt = float(parseable) * max(0.0, 1.0 - abs(n - 10) / 5.0)
    total = alpha * r_gold + beta * r_self + gamma * r_fmt
    return {
        "gold": r_gold,
        "self": r_self,
        "format": r_fmt,
        "total": total,
    }
def rl_step(policy, batch, golden_rubrics, alpha=3.0, beta=5.0, gamma=1.0):
    trajectories = []
    rewards = []
    for instruction, golden_rubric in zip(batch, golden_rubrics):
        self_rubric, answer = generate_rubric_and_answer(policy, instruction)
        parseable = answer is not None and self_rubric is not None
        reward_dict = compute_rewards(
            answer=answer,
            self_rubric=self_rubric,
            golden_rubric=golden_rubric,
            parseable=parseable,
            alpha=alpha,
            beta=beta,
            gamma=gamma,
        )
        trajectories.append((instruction, self_rubric, answer))
        rewards.append(reward_dict["total"])
 
    advantages = dapo_group_advantages(rewards)
    loss = 0.0
    for traj, adv in zip(trajectories, advantages):
        loss = loss - adv * policy.logprob_trajectory(traj)
    return loss / len(trajectories)

Code reference: 代码搜索未找到开源实现

Paper ConceptSource FileKey Class/Function
Joint trajectory factorization 论文正文 neurips_2026.texeq:factorization
SFT warm-up on rubric-answer demonstrations同上SFT Warm Up subsection
Weighted rubric verifier score同上eq:verify_score
Three-part RL reward同上eq:rl_reward, eq:gold_reward, eq:self_reward, eq:format_reward
Implicit alignment hypothesis同上eq:implicit_alignment
DAPO optimization target同上eq:dapo
Inference prompt schema同上fig:prompt-think, fig:prompt-wrapper

4. Experimental Setup (实验设置)

4.1 Datasets and tasks

论文主要在三个 instruction-following benchmark 上评测最终 policy:

  • IFEval:强调 instruction-following,可同时报告 prompt-level 和 instruction-level 严格准确率。
  • IFBench:同样报告 prompt-level 与 instruction-level strict score,但更难,尤其容易暴露 RL 后的 instruction-following 退化。
  • InfoBench:更偏开放式信息遵从与质量评估,论文把它与 IFEval/IFBench 的 prompt-level 分数一起组成平均分。

另外,作者还用 RewardBench-2 评测不同阶段模型生成 rubric 的质量,细分为 Fact., Focus, Safety, Math, Precise IF 五个子集。论文正文没有给出这些 benchmark 的样本总数,因此这里保留“论文未详细说明”。

训练所需的 golden rubric 来自 Openrubrics。作者还统计了其 criterion 数分布,用于设置 format reward 的中心点与边界。

4.2 Baselines

主对比对象是 Rubric-as-Reward,并分成两种 prompt 设置:

  • Direct answer:直接回答,不进行中间结构化思考。
  • With think:先做自由形式 step-by-step reasoning,再在 <answer> 标签中输出。

每种 baseline 都做两阶段训练:SFT Warm-up + DAPO (Golden rubric reward)。作者用这个设计来验证:专门的 rubric-thinking 是否优于不带结构的 generic thinking。

4.3 Metrics

  • IFEval Prompt / Instr.:分别衡量整条 prompt 是否满足要求,以及逐 instruction 级别的满足率。
  • IFBench Prompt / Instr.:与 IFEval 同理,但任务更复杂。
  • InfoBench:开放 instruction-following / information quality 指标,论文未展开其定义细节。
  • Average:由 IFEval prompt-level、IFBench prompt-level 和 InfoBench 三项综合得到。
  • RewardBench-2 Macro Accuracy:用不同模型生成的 rubric 去指导 Qwen3-8B judging,并在多个子集上报告宏平均准确率。
  • Consistency Score:根据 verifier 的 计算 self-generated answer 与 self-generated rubric 的一致性。

4.4 Training config

论文没有公开训练代码,因此训练配置只能来自附录表格,而不是 launch script;这里明确说明来源是论文附录 Table 7 / Table 8,并非 repo config。

SFT warm-up

  • 来源: 论文附录 Table 7
  • Framework: LLaMA-Factory
  • Parallelism: DeepSpeed ZeRO-3
  • Hardware: 4 × NVIDIA H20
  • Training epochs: 3
  • Per-device batch size: 1
  • Gradient accumulation steps: 8
  • Effective batch size: 32
  • Learning rate: 1 × 10^-5
  • LR scheduler: Cosine
  • Warmup ratio: 0.05
  • Max sequence length: 8,192
  • Max training samples: 5,000
  • Precision: BF16

RL fine-tuning

  • 来源: 论文附录 Table 8
  • Algorithm: DAPO (no KL)
  • Framework: veRL
  • Hardware: 8 × NVIDIA H20
  • Total training steps: 120
  • Prompts per batch: 32
  • Rollouts per prompt: 8
  • Effective batch size: 256
  • Mini-batch size: 16
  • Learning rate: 1 × 10^-6
  • LR scheduler: Cosine
  • Warmup steps: 10
  • Clip ratio: ,
  • Rollout temperature: 1.0
  • Wall-clock: 每次完整 RL run 约 16 hours

5. Experimental Results (实验结果)

5.1 Main benchmark results

Table 1 的结论非常明确:Think-with-Rubrics 的最佳配置是 Mixed reward,即同时保留 golden rubric reward 与 self-generated rubric reward。

MethodIFEval PromptIFEval Instr.IFBench PromptIFBench Instr.InfoBenchAverage
Qwen3-8B-Base50.2859.8316.3219.4072.0946.23
Rubric-as-Reward SFT Warm-up (Direct answer)57.3067.5118.0318.5178.2751.20
+ DAPO (Golden rubric reward)58.9668.8220.4120.6082.4453.94
Rubric-as-Reward SFT Warm-up (With think)52.6862.3524.8328.9178.4051.97
+ DAPO (Golden rubric reward)59.7068.3522.1123.8880.2254.01
Think-with-Rubrics SFT Warm-up61.0070.0219.0519.4079.6053.22
+ DAPO (Golden rubrics reward only)64.8773.1423.1326.8782.4456.81
+ DAPO (Self-generated reward only)64.6972.3025.8527.7680.9857.17
+ DAPO (Mixed reward)65.6173.0224.8326.2783.2057.88

最值得注意的点有三个。第一,单靠 SFT warm-up,Think-with-Rubrics 就比 baseline 强,说明“结构化 rubric-thinking”本身已经优于直接回答或泛化 CoT。第二,self-generated reward only 在 IFBench prompt-level 上达到 25.85,是全表最高,说明 self-consistency supervision 对 hardest instruction-following 很有帮助。第三,mixed reward 在整体平均分上最佳,说明 golden reward 负责把 rubric 拉回高质量标准,而 self reward 负责把这种标准内化进生成过程,两者不是冗余关系。

5.2 Rubric quality analysis on RewardBench-2

作者不是只看最终 answer 分数,还专门检查模型生成的 rubric 本身是否更好。Table 2 显示:

Rubric Generator ModelFact.FocusSafetyMathPrecise IFAvg.
Qwen3-8B-Base65.2687.4759.3379.2365.0071.26
SFT Warm-up72.4290.5166.2272.6856.8871.74
+ DAPO (Golden rubrics reward only)75.3790.7159.3379.2368.1274.55
+ DAPO (Self-generated reward only)65.0582.6358.4477.0557.5068.13
+ DAPO (Mixed reward)74.3289.9061.1180.3362.5073.63

这里的关键信号是:golden reward onlymixed reward 都显著优于 base/SFT,而 self-generated reward only 反而下降到 68.13。也就是说,自监督不会自动产生更“通用”的高质量 rubric;它更像是为模型自身生成过程优化的 internal cue。作者据此认为:golden reward 的价值之一,是通过 joint optimization 间接提升 self-generated rubric 的质量,从而支撑前文的 implicit alignment 假设。

5.3 Self-consistency analysis

Table 3 直接测量模型自己生成的 rubric 与自己生成的 answer 是否一致:

ModelIFEvalIFBench
SFT Warm-up58.9160.15
+ DAPO (Golden rubrics reward only)68.7075.12
+ DAPO (Self-generated reward only)69.0075.45
+ DAPO (Mixed reward)69.3877.82

这组结果很关键,因为它证明 self-generated reward 的主要作用不是让 rubric 变成更好的外部 evaluator,而是提升 response-rubric 的 internal consistency。论文文字里明确指出,加入 self-generated reward 后,平均一致性提升了 14.07 分。

5.4 Reward mixing ratio and hard/principle weight ablations

reward mixing ratio 消融(Table 4)比较 ,即 golden reward 与 self reward 的相对权重:

IFEvalIFBenchInfoBenchAvg.
5 : 365.0623.1383.1157.10
1 : 164.6923.1383.5657.13
3 : 565.6124.8383.2057.88

作者最终采用 3:5,说明在这套框架下,self-generated reward 比 golden reward 更需要被强调,才能把 rubric truly internalize 到 answer generation 中。

hard rule / principle 权重消融(Table 5)比较

IFEvalIFBenchAvg.
2 : 165.6124.8345.22
1 : 164.7024.4944.60

这说明 instruction-following 任务里,Hard Rules 比 Principles 更值得被放大。也符合直觉:如果硬性长度/格式/语言约束没满足,再高质量的风格与内容都无法通过严格评测。

5.5 4B model results

论文还把实验迁移到 Qwen3-4B-BaseTable 6),结论仍然一致,但呈现出更明显的小模型特征:

MethodIFEvalIFBenchAvg.
Qwen3-4B-Base36.9721.4329.20
Rubric-as-Reward SFT Warm-up (Direct answer)48.8021.4335.12
+ DAPO (Golden rubric reward)56.3819.0537.72
Rubric-as-Reward SFT Warm-up (With think)48.9823.8836.34
+ DAPO (Golden rubric reward)58.0420.0739.05
Think-with-Rubrics SFT Warm-up55.4522.7939.12
+ DAPO (Golden rubric only)61.7417.3539.55
+ DAPO (Self-gen rubric only)63.9622.4543.21
+ DAPO (Mixed rubric reward)61.1821.7741.48

作者的解释也很有意思:对于能力更弱的小模型,self-consistency 缺陷更严重,因此 self-generated rubric supervision 带来的直接收益反而更明显。特别是 Self-gen rubric only 在 4B 上拿到了最高平均分 43.21,而 golden only 明显伤害了 IFBench(17.35),说明更小的模型更依赖“先写清自己的 rubric,再围绕它作答”这种内化支架。

5.6 Limitations

论文在 Limitation 小节中承认两个限制。第一,当前实验主要集中在 instruction-following 场景,虽然作者认为该框架可扩展到更广泛的 open-ended generation,但论文没有直接验证。第二,self-generated reward 会带来 reward hacking 风险,因此必须额外依赖 format reward 和 golden reward 来做约束;这意味着纯自监督自演化并不是无条件稳定的。

5.7 Overall conclusion

这篇论文最强的证据链不是单看主结果分数,而是三件事同时成立:

  1. Think-with-Rubrics 在主 benchmark 上优于标准 Rubric-as-Reward。
  2. Self-generated reward 显著提升 answer-rubric internal consistency。
  3. Golden reward 又能反过来提高 self-generated rubric 的外部质量。

因此作者想证明的并不只是“rubric reward 很有用”,而是“rubric 可以从外部 evaluator 转化为模型内部 reasoning guidance”。从实验上看,这个论点是成立的,而且 mixed reward 给出了最平衡的实现方式。

代码搜索未找到开源实现。