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,让模型学会:
- 先分析用户请求。
- 把要求拆成
Hard Rule与Principle。 - 严格按
<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 则明确要求:
Define Rubric:把请求拆成Hard Rules和Principles。Generate Answer:按 rubric 生成答案。- 输出格式严格是
<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, answerdef 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 Concept | Source File | Key Class/Function |
|---|---|---|
| Joint trajectory factorization | 论文正文 neurips_2026.tex | eq: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。
| Method | IFEval Prompt | IFEval Instr. | IFBench Prompt | IFBench Instr. | InfoBench | Average |
|---|---|---|---|---|---|---|
| Qwen3-8B-Base | 50.28 | 59.83 | 16.32 | 19.40 | 72.09 | 46.23 |
| Rubric-as-Reward SFT Warm-up (Direct answer) | 57.30 | 67.51 | 18.03 | 18.51 | 78.27 | 51.20 |
| + DAPO (Golden rubric reward) | 58.96 | 68.82 | 20.41 | 20.60 | 82.44 | 53.94 |
| Rubric-as-Reward SFT Warm-up (With think) | 52.68 | 62.35 | 24.83 | 28.91 | 78.40 | 51.97 |
| + DAPO (Golden rubric reward) | 59.70 | 68.35 | 22.11 | 23.88 | 80.22 | 54.01 |
| Think-with-Rubrics SFT Warm-up | 61.00 | 70.02 | 19.05 | 19.40 | 79.60 | 53.22 |
| + DAPO (Golden rubrics reward only) | 64.87 | 73.14 | 23.13 | 26.87 | 82.44 | 56.81 |
| + DAPO (Self-generated reward only) | 64.69 | 72.30 | 25.85 | 27.76 | 80.98 | 57.17 |
| + DAPO (Mixed reward) | 65.61 | 73.02 | 24.83 | 26.27 | 83.20 | 57.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 Model | Fact. | Focus | Safety | Math | Precise IF | Avg. |
|---|---|---|---|---|---|---|
| Qwen3-8B-Base | 65.26 | 87.47 | 59.33 | 79.23 | 65.00 | 71.26 |
| SFT Warm-up | 72.42 | 90.51 | 66.22 | 72.68 | 56.88 | 71.74 |
| + DAPO (Golden rubrics reward only) | 75.37 | 90.71 | 59.33 | 79.23 | 68.12 | 74.55 |
| + DAPO (Self-generated reward only) | 65.05 | 82.63 | 58.44 | 77.05 | 57.50 | 68.13 |
| + DAPO (Mixed reward) | 74.32 | 89.90 | 61.11 | 80.33 | 62.50 | 73.63 |
这里的关键信号是:golden reward only 和 mixed 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 是否一致:
| Model | IFEval | IFBench |
|---|---|---|
| SFT Warm-up | 58.91 | 60.15 |
| + DAPO (Golden rubrics reward only) | 68.70 | 75.12 |
| + DAPO (Self-generated reward only) | 69.00 | 75.45 |
| + DAPO (Mixed reward) | 69.38 | 77.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 的相对权重:
| IFEval | IFBench | InfoBench | Avg. | |
|---|---|---|---|---|
| 5 : 3 | 65.06 | 23.13 | 83.11 | 57.10 |
| 1 : 1 | 64.69 | 23.13 | 83.56 | 57.13 |
| 3 : 5 | 65.61 | 24.83 | 83.20 | 57.88 |
作者最终采用 3:5,说明在这套框架下,self-generated reward 比 golden reward 更需要被强调,才能把 rubric truly internalize 到 answer generation 中。
hard rule / principle 权重消融(Table 5)比较 :
| IFEval | IFBench | Avg. | |
|---|---|---|---|
| 2 : 1 | 65.61 | 24.83 | 45.22 |
| 1 : 1 | 64.70 | 24.49 | 44.60 |
这说明 instruction-following 任务里,Hard Rules 比 Principles 更值得被放大。也符合直觉:如果硬性长度/格式/语言约束没满足,再高质量的风格与内容都无法通过严格评测。
5.5 4B model results
论文还把实验迁移到 Qwen3-4B-Base(Table 6),结论仍然一致,但呈现出更明显的小模型特征:
| Method | IFEval | IFBench | Avg. |
|---|---|---|---|
| Qwen3-4B-Base | 36.97 | 21.43 | 29.20 |
| Rubric-as-Reward SFT Warm-up (Direct answer) | 48.80 | 21.43 | 35.12 |
| + DAPO (Golden rubric reward) | 56.38 | 19.05 | 37.72 |
| Rubric-as-Reward SFT Warm-up (With think) | 48.98 | 23.88 | 36.34 |
| + DAPO (Golden rubric reward) | 58.04 | 20.07 | 39.05 |
| Think-with-Rubrics SFT Warm-up | 55.45 | 22.79 | 39.12 |
| + DAPO (Golden rubric only) | 61.74 | 17.35 | 39.55 |
| + DAPO (Self-gen rubric only) | 63.96 | 22.45 | 43.21 |
| + DAPO (Mixed rubric reward) | 61.18 | 21.77 | 41.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
这篇论文最强的证据链不是单看主结果分数,而是三件事同时成立:
Think-with-Rubrics在主 benchmark 上优于标准 Rubric-as-Reward。Self-generated reward显著提升 answer-rubric internal consistency。Golden reward又能反过来提高 self-generated rubric 的外部质量。
因此作者想证明的并不只是“rubric reward 很有用”,而是“rubric 可以从外部 evaluator 转化为模型内部 reasoning guidance”。从实验上看,这个论点是成立的,而且 mixed reward 给出了最平衡的实现方式。
代码搜索未找到开源实现。