Rubric-Grounded Reinforcement Learning: Structured Judge Rewards for Generalizable Reasoning in Language Models
Paper: arXiv:2605.08061 Code: 代码搜索未找到开源实现
1. Motivation
这篇论文瞄准的是一个很具体但长期存在的问题:LLM 的 RL reward 往往把“好答案”压缩成一个单标量,例如 preference reward、pairwise comparison,或者 binary verifier。这样的信号在 math / coding 这类可验证任务上经常够用,但在 scientific QA、technical explanation、code review 这类开放式任务中,答案质量天然是可分解的。一个好答案不仅要“结论对”,还要术语精确、证据链完整、限制条件说清楚、方法学 caveat 不遗漏。把这些维度压成一个整体分数,会让优化目标变得欠约束。
作者要解决的具体问题是:能不能把这种多维质量结构直接变成 RL 训练信号,而不是仅仅把 rubric 当作评测器放在训练后使用。论文提出的 Rubric-Grounded RL 就是在回答这个问题:policy 只看问题 ,但 frozen LLM judge 在打分时额外看到 grounding passage 和结构化 rubric ,从而给出 criterion-level 的 partial-credit reward,再把它聚合成 GRPO 的训练信号。这个问题值得研究,有三个直接原因。第一,它把 “all-or-nothing” 的 verifier 奖励改成 partial credit,可以在模型还很差的训练早期也提供有效排序。
第二,它允许训练时使用 instance-specific grounding,但推理时不需要 retrieval,把监督信息留在参数更新里而不是 prompt 里。第三,若这种 reward 真能教会模型“更像技术评审或考试阅卷人那样回答”,它应该不只提升 in-domain rubric score,也可能迁移到外部 reasoning benchmark。
2. Idea
核心 insight 是:RL 优化器本身不一定要变,真正该变的是 reward 的生成过程。作者把 reward 写成一个由多个可验证 criterion 组成的结构化测量:judge 先分别给每个 criterion 打分,再按权重聚合成最终标量 reward。这样 policy 仍然吃一个 scalar reward,但这个 scalar 的来源不再是 free-form holistic judgment,而是显式分解后的质量坐标。关键创新有两层。
第一层是 rubric-grounded reward:judge 打分时看到隐藏的 grounding passage、rubric 以及模型回答,因此 reward 不只是“整体像不像好答案”,而是“是否满足了这份带证据约束的评分细则”。第二层是 information asymmetry:policy 在 rollout 时看不到 passage,只能从训练中内化这些 grounded criterion,这使它更像在接受有标准答案依据的闭卷训练,而不是 retrieval-augmented generation。它和现有方法的根本差异也很清楚。
与 standard verifiable RL 相比,这里没有唯一正确答案或 binary checker,而是多 criterion 的 structured judge reward;与 rubric-based evaluation / rubric-as-reward 类工作相比,这篇把 rubric 真正接进 online GRPO loop,而不只是训练后评测;与 process reward model 相比,它不需要人工逐步标注 step-level label,而是依赖书面 rubric 和 grounding passage 来构造可复用的 criterion-level supervision。
3. Method
3.1 Overall Framework

Figure 1 解读:整条 pipeline 分成 offline 和 online 两段。offline 侧先从 OSTI scientific / technical documents 中抽文档片段,合成三元组 (question, grounding passage, weighted rubric);online 侧 policy 只接收 question 并为每个 prompt 采样多个 candidate responses。随后 frozen LLM judge 读取同一个 question、隐藏的 grounding passage、待评分 response 以及 rubric,为每个 criterion 给出分数,再聚合成标准化 reward。图里最关键的设计不是“用 LLM 当 judge”,而是 judge 有额外证据、policy 没有。这让 reward 能惩罚 unsupported claim、遗漏事实和术语不精确等问题,但不会把系统直接退化成 retrieval inference。
整个方法可以概括成:
- 离线构建 document-grounded rubric 数据集。
- 在线对每个 prompt 采样 个回答。
- 用 frozen judge 对每个回答做 criterion-level 打分。
- 把 criterion score 聚合成归一化 scalar reward。
- 用 group-relative advantage 和 PPO-style clipped surrogate 更新 policy。
3.2 Multi-Criterion Judge Reward
给定问题 、grounding passage 、rubric 和模型回答 ,judge 先产生逐 criterion 分数 其中 是第 个 criterion 的权重。原始 reward 为 为了让不同 rubric 之间可比,作者再按总权重 做归一化: 实现层面还有几条非常关键的 judge interface 细节:
- judge prompt 是严格结构化的,包含 system instruction、截断后的 grounding passage、question、response、按编号展开的 rubric,以及 JSON output schema;
- rubric 中每个 criterion 不只是名字和权重,还包括
description、required_elements、scoring_guide、verification_method、expected_keywords、expected_concepts; - judge 解码温度固定为 ,目的是降低 reward variance;
- parse failure 或 schema error 不会被“修补”,而是给 conservative zero reward;
- 解析后的 reward 在实现里再 clip 到 ,避免数值边界问题。
这一步的直觉很重要:作者不是相信 judge 一次 holistic 打分一定可靠,而是希望把“答案好坏”拆成多个相对更可检查的子问题。即使最终仍回到一个 scalar reward,这个 scalar 已经带着多轴度量之后的结构。
3.3 Rubric-Grounded Policy Optimization
训练目标沿用 PPO / GRPO 体系,只是把普通 reward 换成了 rubric-grounded reward: $ \max_\theta ; \mathbb{E}{x \sim \mathcal{D},, y \sim \pi\theta(\cdot \mid x)}[r(x,y)]
- \beta , \mathbb{E}{x \sim \mathcal{D}}[\mathrm{KL}(\pi\theta ,|, \pi_{\mathrm{ref}})]. x_iG{y_i^{(g)}}{g=1}^Gp_iR_i{R_i^{(g)}}{g=1}^G b_i^{(g)} = \frac{1}{G-1} \sum_{g’ \neq g} R_i^{(g’)}, \qquad \sigma_i = \mathrm{std}!\left({R_i^{(g’)}}_{g’=1}^G\right), A_i^{(g)} = \begin{cases} \dfrac{R_i^{(g)} - b_i^{(g)}}{\sigma_i + \delta}, & \sigma_i > 0, \ 0, & \text{otherwise}. \end{cases} $ 这里的核心不是单个回答拿了多少绝对分,而是 在同一道题、同一份 rubric、同一段 grounding 下,这个回答比同组其它回答好多少。这比跨 prompt 比较原始分数更稳定,因为每组内部面对的是固定评估上下文。
作者随后使用 PPO-style clipped surrogate。令每个 response token 的 ratio 为 则 clipped policy term 为 $ \ell_t^{\mathrm{clip}}
-\min\Big( r_t A_t,; \mathrm{clip}(r_t, 1-\epsilon_{\mathrm{clip}}, 1+\epsilon_{\mathrm{clip}})A_t \Big). k_3 c_t^{\mathrm{KL}}
e^{u_t} - 1 - u_t, \qquad u_t = \log \pi_{\mathrm{ref}} - \log \pi_\theta. L(\theta)
\frac{1}{\sum_{i,g} T_{ig}} \sum_{i,g,t} m_t^{(ig)}\big[ \ell_t^{\mathrm{clip}} + \beta c_t^{\mathrm{KL}} \big], m_t^{(ig)}\pi_{\mathrm{gen}} \leftarrow \pi_\theta\log \pi_\theta / \log \pi_{\mathrm{ref}}$,最后做梯度更新。
3.4 Why Partial Credit Helps
这篇论文最值得记住的不是某个训练 trick,而是它对 partial credit 的形式化。作者先定义归一化 criterion score 于是最终 reward 可写成 这说明 RL 实际优化的是一个先分解、再投影的 reward。binary verifier 最多只暴露两个 reward level;而 rubric 在投影前先暴露一个乘积空间 直观地说,回答可以从“全错”变成“术语对了但证据没说全”,再变成“证据和 caveat 都齐了”。这些中间状态都能产生有效梯度排序,而不是只有“完全满足 / 完全失败”两档。
另一个重要直觉是 localization。对于两个回答 与 , $ r(y^a) - r(y^b)
\sum_{j=1}^M \alpha_j \big(z_j(y^a) - z_j(y^b)\big). $ 因此即使优化器收到的仍是 scalar advantage,哪个 criterion 失败会通过权重精确影响 reward 差值。作者认为 localization 并不来自新 optimizer,而是来自更高分辨率的 measurement。
论文还给出一个 judge-noise heuristic。若 criterion noise 独立且方差相同为 ,则聚合后 reward noise 方差为 $ \mathrm{Var}(r)
\tau^2 \frac{\sum_j w_j^2}{W^2}
\frac{\tau^2}{M_{\mathrm{eff}}}, \qquad M_{\mathrm{eff}} = \frac{W^2}{\sum_j w_j^2}. $ 这不是 reliability guarantee,但说明多 criterion 分解在 noise 部分独立时,确实有机会比单次 holistic 打分更稳。
3.5 Document-Derived Rubric Pipeline
作者用 roughly 100,000 篇 OSTI scientific / technical documents 实例化这个框架。选择这类语料的理由很现实:文档规模大、天然带 grounding、而且不需要对每个 criterion 手工标注。
离线数据构建分三步:
- Semantic analysis:先把文档转成结构化表示 ,包括 genre、primary contribution、central concepts、technical depth、dominant reasoning mode。
- Joint question-rubric synthesis:条件于 和文档本身,LLM 生成 个三元组 。作者要求问题和 rubric 必须脱离原文也能自洽,问题要测深层理解而非表层 recall,rubric 必须包含定义好的字段集合,criterion 权重要反映其对整体质量的贡献。
- Rubric enrichment:后处理再给每个 criterion 补充 expected terminology、core concepts 和 verification patterns,提升 inter-rater consistency。
筛选阶段还有一组 hard filters:minimum criteria per rubric、minimum total weight、non-empty question、所有 criterion 字段齐全、权重非负。失败样本直接丢弃。附录 E 给出的 schema 也很有复现价值,核心字段包括:
questionpassagecriteria[]question_rationaledocument_analysis.{genre, contribution, concepts, depth, reasoning_mode}doc_hash
这说明作者不是简单“让模型写题目再写答案”,而是把数据管线本身设计成一个可审计、可恢复、可并发生成的结构化系统。
3.6 Pseudocode
由于论文没有公开 release code,下面的 pseudocode 基于正文公式、Algorithm 1、Appendix D 和 Appendix E,而不是某个具体仓库实现。
def synthesize_rubric_examples(document, generator, min_criteria=5):
analysis = generator.semantic_analyze(document)
raw_examples = generator.generate_question_passage_rubric_pairs(
document=document,
analysis=analysis,
)
keep = []
for ex in raw_examples:
criteria = ex["criteria"]
total_weight = sum(c["weight"] for c in criteria)
if not ex["question"].strip():
continue
if len(criteria) < min_criteria:
continue
if total_weight <= 0:
continue
if any(c["weight"] < 0 for c in criteria):
continue
if any(not c.get("required_elements") for c in criteria):
continue
enriched = generator.enrich_rubric(
ex,
add_expected_keywords=True,
add_expected_concepts=True,
add_verification_patterns=True,
)
keep.append(enriched)
return keepdef judge_reward(question, passage, response, rubric, judge_client):
prompt = {
"system": (
"You are a strict, objective academic evaluator. "
"Return ONLY a valid JSON object."
),
"source_passage": passage,
"question": question,
"response": response,
"criteria": rubric["criteria"],
}
result = judge_client.generate(prompt, temperature=0.1)
parsed = safe_parse_json(result)
if parsed is None:
return 0.0, {}
scores = {}
max_total = sum(c["weight"] for c in rubric["criteria"])
for c in rubric["criteria"]:
raw_score = parsed["scores"].get(c["id"], 0.0)
scores[c["id"]] = max(0.0, min(raw_score, c["weight"]))
total = sum(scores.values())
reward = max(0.0, min(total / max_total, 1.0))
return reward, scoresdef rubric_grounded_grpo_step(policy, ref_policy, batch, judge_client,
group_size=32, eps_clip=0.2,
beta=0.01, delta=1e-8):
rollouts = []
for example in batch:
question = example["question"]
passage = example["passage"]
rubric = example["criteria"]
responses, logp_gen = policy.sample_group(question, group_size)
rewards = []
for y in responses:
reward, _ = judge_reward(question, passage, y, {"criteria": rubric}, judge_client)
rewards.append(reward)
sigma = torch.tensor(rewards).std().item()
for g, (y, lp_gen, r) in enumerate(zip(responses, logp_gen, rewards)):
loo = (sum(rewards) - r) / (group_size - 1)
advantage = (r - loo) / (sigma + delta) if sigma > 0 else 0.0
rollouts.append((question, y, lp_gen, advantage))
loss_terms = []
for question, response, lp_gen, advantage in rollouts:
lp_theta = policy.logprob(question, response)
lp_ref = ref_policy.logprob(question, response)
ratio = torch.exp(lp_theta - lp_gen)
clipped = torch.clamp(ratio, 1 - eps_clip, 1 + eps_clip)
policy_loss = -torch.minimum(ratio * advantage, clipped * advantage)
u = lp_ref - lp_theta
kl_k3 = torch.exp(u) - 1 - u
loss_terms.append(policy_loss + beta * kl_k3)
loss = torch.stack([x.mean() for x in loss_terms]).mean()
loss.backward()
return loss.item()3.7 Reference Mapping
Reference: 代码搜索未找到开源实现;下表给出正文与附录中的实现锚点,便于后续自行复现。
| Paper Concept | Paper Anchor | 复现时应实现的对象 |
|---|---|---|
| Multi-criterion judge reward | §3.1, Eq. (1)–(2) | criterion 打分、总权重归一化、reward clipping |
| Group-relative advantage | §3.2, Eq. (4)–(6) | leave-one-out baseline、group std、 stabilizer |
| PPO-style GRPO loss | §3.2, Eq. (7)–(9), Algorithm 1 | ratio、clipped surrogate、 KL、token mask |
| Structured credit assignment | §3.3, Eq. (10)–(15) | criterion normalization、weighted projection、noise heuristic |
| Document-derived rubric pipeline | §3.4, Appendix E | semantic analysis、question-rubric synthesis、schema validation |
| Judge interface | Appendix D | strict evaluator prompt、JSON schema、low-temperature decoding |
论文公式与 released code 实现差异:由于未找到开源实现,当前无法做 paper-vs-code discrepancy audit。
4. Experimental Setup
4.1 Datasets
训练数据来自 roughly 100,000 篇 OSTI scientific / technical documents 构造出的 document-grounded QA 环境。论文把它表述为 approximately 100K document-grounded questions;每个样本都包含:
- 一个
question - 一段
grounding passage - 一份含 5–10 个 weighted criteria 的 structured rubric
数据集按 70% / 15% / 15% 划分为 training / validation / test。training split 用于 online RL reward computation,validation split 用于 checkpoint selection 与调参,test split 用于 held-out rubric evaluation。
4.2 Baselines and Evaluation
比较对象有三类:
- Base:
Llama-3.1-8B-Instruct,不做额外训练。 - SFT: 在同一 document-derived corpus 的 question-answer pairs 上做 supervised warm-start;只用于 in-domain rubric evaluation 对比。
- Ours: 同一个 base model 经 rubric-grounded GRPO 后的结果。
评测分两组:
- In-domain held-out rubric reward:在 held-out question-rubric test split 上,用同一个 judge
GPT-OSS-20B打分。 - OOD reasoning benchmarks:
GSM8K、MATH、GPQA Main、GPQA Diamond。
其中GSM8K/MATH用 final-answer exact match,GPQA Main/GPQA Diamond用 standard multiple-choice accuracy。论文强调这些 benchmark 都不来自训练 corpus,因此更像 transfer test 而非 recall test。
4.3 Models and Infrastructure
- Policy / Reference model:
Llama-3.1-8B-Instruct - Question-rubric generation model:
GPT-OSS-120B - Judge model:
GPT-OSS-20B - Training framework:
NeMo-RL 2
作者明确把 policy generation 和 judge evaluation 拆成两类 worker:前者更 GPU-bound,后者更 latency-bound 且需要大量远程 judge 调用。这是因为每个 GRPO step 需要 次 judge calls,实际 wall-clock bottleneck 主要在 judge 侧。
4.4 Hyperparameters
- 主实验每个 optimization step 使用 个 prompts。
- 每个 prompt 采样 个 responses。
- effective batch size 为 。
- rollout 限制为 single-turn。
- 启用 leave-one-out baseline 和 reward normalization。
- KL 采用 approximation。
- optimizer 为 AdamW,learning rate ,weight decay
0.01,max grad norm1.0。 - warmup 为
13steps,之后 constant learning-rate schedule。 - judge 侧使用
N = 32workers,temperature ,token budget16,000,maximum passage length50,000characters,worker batch size4。
需要特别注意的是:论文主文没有给出 GPU 型号、GPU 数量以及总训练步数 / epoch 数,因此这些信息不能从文中精确恢复;如果后续要复现,必须自己补实验预算。
5. Experimental Results
5.1 In-Domain Held-out Rubric Evaluation
论文最核心的结果是 held-out rubric reward:
| Method | Held-out Rubric Reward |
|---|---|
| Base | 26.1% |
| SFT tuned | 41.8% |
| Ours (GRPO) | 71.7% |
这组数字说明两件事。第一,单纯做 SFT 已经能把 rubric reward 从 26.1% 拉到 41.8%,说明 document-derived QA 环境本身是有监督价值的。第二,rubric-grounded GRPO 在同一 base initialization 上进一步把 reward 拉到 71.7%,提升幅度远大于 SFT over Base 的提升,说明 partial-credit judge reward 并不只是 noisy evaluator,而是足够强的优化信号。

Figure 2 解读:这是与 Table 1 同一 rubric-judge protocol 下的可视化比较。论文正文只给出了 verbal summary:GRPO-tuned Llama-3.1-8B 从 base model 大约 2.6/10 的 judge score 提升到大约 7.1/10,接近图中展示的 GPT-OSS-120B,并超过若干更大模型。这个图强调的不是“打赢某个特定 baseline”,而是 rubric-grounded reward 把一个 8B policy 推到了接近强 judge / 大模型的 rubric-scored 行为区域。
5.2 Transfer to External Reasoning Benchmarks
外部 benchmark 的精确数字如下:
| Method | GSM8K | MATH | GPQA Main | GPQA Diamond | Avg. Δ |
|---|---|---|---|---|---|
| Base | 84.53 | 50.06 | 25.22 | 24.24 | - |
| Ours | 85.44 | 52.88 | 33.93 | 32.32 | +5.13 |
对应的单项增益是:
GSM8K:+0.91MATH:+2.82GPQA Main:+8.71GPQA Diamond:+8.08
最有意思的现象不是“全线都升”,而是 GPQA 两项的增益显著大于 math benchmark。作者的解释很合理:训练时 reward 鼓励的是 scientific / technical answer 中的事实协调、证据连接、术语精确和不确定性表达,这和 GPQA 所需的科学推理形态更接近;而 GSM8K / MATH 更依赖显式计算流程,和 document-grounded technical QA 的 reward geometry 只部分重叠。
5.3 Training Dynamics and Safeguards

Figure 3 解读:训练 reward 和 validation reward 在整个 GRPO run 中同步上升,而 zero-reward judge outcomes 单调下降。最重要的信息不是“曲线变高了”,而是 validation-training gap 始终有界,这意味着提升不像是只发生在 sampled training prompts 上。作者因此用 held-out reward 作为 checkpoint selection 的主要依据。
围绕 judge exploitation,论文没有做人类评审或 cross-judge agreement study,但给了四个 interface safeguard:
- low-temperature judging:,降低随机性;
- structured parsing:judge 必须返回 schema-conforming JSON;
- document-grounded scoring:judge 能看 passage,policy 不能;
- held-out validation:持续监控 held-out rubric reward,而不是只盯训练分数。
这些 safeguard 并不能证明 reward hacking 不存在,但说明作者是把 judge interface 当成方法设计的一部分,而不是实现细节。
5.4 Ablation-like Findings, Limitations, and Conclusions
严格来说,这篇论文没有传统意义上的 component ablation table。最接近 ablation 的证据是:
- training dynamics 显示 validation reward 跟随 training reward 一起上升,而不是只在训练样本上刷分;
- transfer 结果显示 gain 主要集中在 GPQA,而不是所有 benchmark 等幅增长;
- Discussion 里明确指出该方法更适合“质量可以自然分解成可检查 criterion,且有 instance-level grounding”的任务,而不适合 genuinely holistic behavior 或 criteria 很难 formalize 的场景。
论文自己承认的限制也很具体:
- 只在一个 model scale(8B)上报告主结果;
- 只使用一个 corpus family(OSTI-derived scientific / technical documents);
- 只使用一个 judge family;
- 只展示单次 GRPO run,没有 confidence interval,也没有多个 random seeds 的方差报告;
- 只验证了 single-turn answering;
- training 与 validation 使用同一 judge family,因此 held-out reward 不能完全排除 judge-specific reward hacking;
- rubric pipeline 会继承 synthesizer LLM 和 OSTI source corpus 的 bias。
整体上,这篇论文的贡献可以概括成一句话:它证明了 structured, document-grounded, criterion-level reward 可以在不改变 GRPO 优化器主体的情况下,给 LLM post-training 提供更高分辨率的 partial-credit 信号,并把这种信号迁移成外部 scientific reasoning 增益。证据还不够宽,但方法论价值很高,因为它把“怎样把复杂质量标准写进 RL reward”这件事讲得很清楚。