📋 论文概述
这篇论文解决的是 LLM post-training 里一个越来越核心的问题:
在没有标准答案的开放任务里,reward model 到底应该怎么判断一个回答好不好?
比如下面这些任务:
- 创意写作;
- 开放式指令跟随;
- 风格、语气、结构约束;
- 需要同时满足多个软硬标准的回答;
- 两个回答都“看起来不错”,但一个更符合用户真实偏好的场景。
传统 reward model 往往输出一个标量分数,或者直接判断 A/B 哪个更好。这个做法的问题是:开放任务的质量不是单维的。
一个回答可能:
- 事实正确,但没有遵守格式;
- 语气自然,但漏掉关键词;
- 内容更长,但偏离用户真正问的问题;
- 推理更充分,但违反了硬约束。
所以近年的一条路线是 rubric-based reward modeling:先生成一组评价标准,再根据这些标准判断回答优劣。
这篇论文的重点不是“使用 rubric”本身,而是问了一个更进一步的问题:
rubric 应该是人工写好的、prompt 生成后固定不变的,还是应该像 policy 一样被训练出来?
作者提出的答案是 Rubric-ARM:
- 用一个 rubric generator 根据 prompt 生成评价标准;
- 用一个 judge 根据 prompt、两个 response 和 rubric 判断偏好;
- 把 rubric 当成一个 latent action;
- 通过 preference correctness reward 同时训练 rubric generator 和 judge;
- 为了避免两个模块同时变化导致不稳定,采用 alternating reinforcement learning:先固定 rubric generator 训练 judge,再固定 judge 训练 rubric generator。
🎯 研究背景
这篇工作位于三个研究方向的交叉处。
1. Reward Modeling
Reward model 是 RLHF / RLAIF / DPO / GRPO 等 post-training 流程里的评价器。它的作用像一个“指南针”:告诉策略模型哪个回答更接近人类偏好。
早期 reward model 常见形式是:
- 输入 prompt 和 response;
- 输出一个 scalar score;
- 或者输入两个 response,输出哪个更好。
这种形式在可验证任务里相对直接,比如数学题、代码题、选择题,因为答案对错可以验证。但在非可验证任务里,问题就复杂得多。
例如用户要求:
用兴奋的语气,解释 Nextcloud 是什么,正好写两段,并包含
cloud storage和open-source两个关键词。
这个任务的好坏不是一个简单分数能解释的,因为它同时包含:
- 内容覆盖;
- 语气;
- 段落数量;
- 精确关键词;
- 比较对象;
- 逻辑结构。
2. LLM-as-a-Judge
另一条路线是让 LLM 直接当 judge。它可以生成 reasoning,再输出 A/B 偏好。
这比纯标量 reward 更可解释,但也有问题:
- 容易被 response 顺序影响,也就是 position bias;
- 可能被更长、更像“认真回答”的文本欺骗;
- 遇到复杂指令时,可能在推理中漏掉硬约束;
- judge 的 reasoning 不一定真的围绕用户需求展开。
3. Rubric-Based Reward Modeling
Rubric-based 方法试图把评价过程结构化:
- 先列出评价标准;
- 再逐条检查回答是否满足标准;
- 最后做整体判断。
这类方法更像“老师批作文”:
- 不能只说 85 分;
- 要先说明评分维度;
- 再解释为什么扣分或加分。
已有方法的问题是,rubric 往往来自:
- 人工标注;
- frozen LLM prompt;
- SFT 训练出的静态模块;
- 与 judge 分开训练的 pipeline。
这使得 rubric generator 和 judge 很难真正适应同一个 preference distribution。
⚠️ 问题与挑战
论文要解决的问题是:
如何在非可验证任务中,训练一个能够自动生成高质量 rubric,并用这些 rubric 做准确偏好判断的 reward model。
这个问题有几层挑战。
1. 因为非可验证任务没有标准答案,所以 reward 不能只依赖 outcome correctness
数学题可以看最终答案是不是对。代码题可以跑测试。但创意写作、开放式问答、指令跟随往往没有唯一答案。
所以很难设计类似“答对给 1 分,答错给 0 分”的 reward。
这导致训练信号只能来自 pairwise preference:
- 给定 prompt;
- 给定 response A 和 response B;
- 数据集告诉你哪个更被偏好。
但 preference label 只告诉你结果,不告诉你为什么。
2. 因为回答质量是多维的,所以单一标量 judge 容易丢失评价结构
如果 reward model 只输出 A 更好,它可能没有显式区分:
- A 是否满足硬约束;
- A 是否只是更长;
- A 是否覆盖了关键词;
- A 是否语气更符合要求;
- A 是否逻辑更清楚。
这会使 reward signal 变得模糊。下游 policy 如果用这种信号训练,就可能学到错误偏好。
例如,模型可能学到“更长就是更好”,而不是“满足用户的 exact constraints 更好”。
3. 因为 rubric 本身没有监督标签,所以很难直接训练 rubric generator
真实数据里通常只有:
- prompt;
- 两个 responses;
- 哪个 response 更好。
但没有告诉你“最好的 rubric 应该怎么写”。
所以 rubric generator 的训练目标很尴尬:
- 如果只用 LLM 合成 rubric 做 SFT,它学到的是 teacher 的表面风格;
- 如果 rubric generator 和 judge 分开训练,它不知道自己生成的 rubric 是否真的能帮助判断;
- 如果直接同时训练两个模块,judge 和 rubric generator 都在变,学习目标会不断漂移。
4. 因为两个模块相互依赖,所以联合优化天然不稳定
Rubric generator 生成标准,judge 根据标准做判断。
如果 rubric generator 很差,judge 会收到噪声标准; 如果 judge 很差,rubric generator 收到的 reward 也不可靠。
这形成一个因果困境:
因为 rubric 的好坏要通过 judge 的判断正确性来体现,而 judge 的判断又依赖 rubric 的质量,所以两个模块同时更新时,reward 信号会高度非平稳。
这就是论文里 alternating RL 要解决的核心训练难点。
🔍 核心发现 Finding
作者明确声称
作者明确的主张是:
rubric generation 可以被视为一个 latent action,并通过它对 preference prediction correctness 的影响来训练;同时,先稳定 judge、再训练 rubric generator 的交替优化,可以降低梯度方差并提升训练稳定性。
我的理解
我认为这篇论文真正的 Finding 是:
开放任务的 reward modeling 不应该被看成“一个模型给回答打分”,而应该被看成“先生成适配当前 prompt 的评价坐标系,再在这个坐标系里判断回答”的联合决策过程。
这个 finding 和已有方法的差别很关键。
传统 reward model 的世界观是:
- response 质量是一个隐含标量;
- reward model 要学会估计这个标量。
Rubric-based 旧方法的世界观是:
- rubric 是一个有用的解释中间件;
- 但 rubric 可以由固定 prompt 或 SFT 模块生成;
- judge 再利用这个中间件判断。
Rubric-ARM 的世界观则是:
- rubric 不是静态说明书;
- rubric 是会改变 judge 行为的 action;
- 一个 rubric 的好坏,应该由它是否帮助 judge 找回真实 preference 来定义;
- 因此 rubric generator 和 judge 必须通过共同目标 co-evolve。
这就把问题从:
怎么写一个更好的评分 prompt?
改写成:
怎么训练一个能为当前 prompt 生成“最有判别力评价标准”的 policy?
这个视角使得原本没有 rubric 标签的问题变得可解。因为虽然我们不知道标准答案 rubric 是什么,但我们知道最终 preference label。如果某个 rubric 能让 judge 更稳定地选中偏好答案,这个 rubric 就是更好的 latent action。
举个例子:
用户问“thumb war 是否 violent?我关心 physical 和 psychological violence。”
一个差的 rubric 可能泛泛地写:
- 是否解释 war;
- 是否讨论 violence;
- 是否逻辑清楚。
这会让 judge 被 response A 里关于战争的大段解释带偏。
一个好的 rubric 会抓住任务真正的硬约束:
- 必须直接回答 thumb war 是否构成 violence;
- 必须分别讨论 physical violence 和 psychological violence。
Rubric-ARM 的 insight 是:这种“抓住当前 prompt 关键约束”的能力,不应该只靠 prompt engineering,而应该通过 preference correctness 训练出来。
🔬 方法
输入数据
训练数据是 pairwise preference dataset:
- prompt
x; - 两个候选回答
y1和y2; - preference label
o*,表示哪一个回答更好。
注意:数据里没有 ground-truth rubric。
整体框架
Rubric-ARM 有两个模块:
Rubric Generator
pi_r输入 prompt,输出 rubric。Judge
pi_j输入 prompt、两个回答和 rubric,输出 reasoning chain 与偏好判断。
目标是最大化:
- judge 的预测偏好
o与真实 preference labelo*是否一致。
也就是一个二值 correctness reward:
- 预测对了,reward 为 1;
- 预测错了,reward 为 0。
Stage I: SFT Warmup
作者先做监督微调 warmup,让两个模块具备基本能力。
使用的数据来自 OpenRubrics 的 general-domain 部分,以及相关开源数据:
- UltraFeedback;
- SkyWork;
- Magpie;
- Synthetic Instruction Following。
这一阶段的作用不是完成最终优化,而是让模型先会做两件事:
- rubric generator 能生成像样的结构化评价标准;
- judge 能根据 rubric 写出判断过程并给出偏好。
可以把它理解成“先让学生学会考试格式”。
Stage II: Alternating Reinforcement Learning
SFT 之后,作者用 GRPO 做交替 RL。
第一步:固定 rubric generator,训练 judge
流程是:
- 用当前 rubric generator 为每个 prompt 生成 rubric;
- 缓存这些 rubric;
- 固定 rubric generator;
- 训练 judge 在这些 rubric 下更准确地恢复 preference label。
judge 的 reward 包含两部分:
Racc: 偏好预测是否正确;Rfmt: 输出格式是否有效。
Rfmt 很重要,因为 judge 不应该只在最后给 A/B,而应该:
- 逐条检查 rubric criteria;
- 给出每条 criterion 的解释;
- 做整体 justification;
- 最后给出明确判断。
第二步:固定 judge,训练 rubric generator
流程是:
- 固定 judge;
- rubric generator 为 prompt 生成 rubric;
- judge 根据这个 rubric 判断两个回答;
- 如果 judge 选对 preference label,这个 rubric 就得到正向 reward;
- 用 GRPO 更新 rubric generator。
直觉是:
rubric generator 学到的不是“写得像 rubric”,而是“写出能让 judge 判断正确的 rubric”。
为什么先 judge 后 rubric generator
论文的理论分析围绕梯度方差展开。
作者比较两种策略:
- Strategy A: 先固定并复用 rubric,训练 judge;
- Strategy B: 训练 rubric generator,让它探索不同 rubric。
结论是:
- judge 训练阶段的方差主要来自二分类判断的不确定性;
- rubric generator 训练阶段还额外包含 cross-rubric inconsistency;
- 早期 rubric generator 的探索会主导学习动态,使梯度方向更不稳定。
所以作者认为:先把 judge 稳住,再用稳定 judge 给 rubric generator 提供 reward,是更合理的顺序。
和 EM 的关系
作者把这个过程类比成 generalized EM:
- rubric 是 latent variable;
- judge 更新类似 M-step,在给定 rubric 下最大化 preference correctness;
- rubric generator 更新类似 amortized E-step,把概率质量放到更能帮助 judge 预测正确的 rubric 上。
这个类比有助于理解为什么 rubric 不是简单的解释文本,而是隐变量。
用 Rubric-ARM 训练 policy
训练好 Rubric-ARM 后,它可以作为下游 policy 的 reward signal。
作者实验了两种方式:
Offline DPO / IterDPO 对同一个 prompt 采样两个回答,用 Rubric-ARM 判断偏好,然后用 DPO 更新 policy。
Online GRPO 对 prompt 生成 greedy baseline response 和若干 sampled responses,再用 Rubric-ARM 评估 sampled response 是否优于 baseline,并作为 GRPO reward。
为减少 position bias,online RL 中会用同一个 rubric 对 response 顺序进行双向评估。
📊 实验与结论
实验设置
Rubric-ARM 的两个模块都从 Qwen-3-8B fine-tune。
reward model 评测覆盖多个 benchmark:
- RewardBench;
- RM-Bench;
- PPE-IFEval;
- FollowBench;
- InfoBench;
- IFBench;
- RewardBench2;
- WritingPreferenceBench;
- HelpSteer3。
下游 policy 训练用 Qwen2.5-7B-Instruct,评估包括:
- IFEval;
- InfoBench;
- IFBench;
- Arena-Hard;
- AlpacaEval 2;
- WildBench;
- Creative Writing Benchmark v3。
1. Rubric-ARM 作为 reward model 优于同类白盒基线
主表里,Rubric-ARM 在多个 reward modeling benchmark 上取得最强白盒结果。
关键数字:
- Rubric-RM 平均分:70.1;
- Rubric-ARM 平均分:74.8;
- Rubric-ARM-voting@5 平均分:76.2。
这说明相较于 SFT-only 的 rubric generator + judge,交替 RL 确实带来提升。
更重要的是,这个提升不只是“多训练了一下”,而是符合论文的 finding:
- rubric generator 通过 judge correctness 学会生成更有判别力的标准;
- judge 通过固定 rubric 训练获得更稳定的 rubric-conditioned judging 能力。
2. OOD 写作偏好上也有提升
WritingPreferenceBench 是一个偏分布外的写作偏好 benchmark。
结果:
- Rubric-RM: 60.3;
- Rubric-ARM: 63.2;
- RM-R1-Qwen2.5-7B: 59.8。
这很有价值,因为创意写作和开放式文本质量特别难用静态标准覆盖。
作者的解释是:Rubric-ARM 学到的不是某个数据集上的固定评分模板,而是“根据 prompt 生成可迁移评价维度”的能力。
例如在 poetry、promotional writing、non-fiction 等不同类型里,好的 rubric 应该完全不同。一个能自动适配 prompt 的 rubric generator,比固定 judge 更容易泛化。
3. Ablation 证明训练顺序和 format reward 都重要
作者做了两个关键消融。
交换优化顺序会变差
默认顺序:
- 先优化 judge;
- 再优化 rubric generator。
如果改成反过来,平均分从:
- 74.8 降到 72.4;
- voting@5 从 76.2 降到 74.9。
在 RewardBench2-Precise IF 上尤其明显:
- 默认 Rubric-ARM: 41.9;
- switch opt: 24.4。
这和理论分析一致:早期 rubric generator 的探索噪声太大,如果 judge 还没稳定,rubric generator 收到的 reward 会更乱。
去掉 format reward 也会变差
去掉 Rfmt 后:
- 平均分从 74.8 降到 72.6;
- voting@5 从 76.2 降到 75.5。
这说明 judge 的输出格式不是表面问题。对 rubric-based judging 来说,如果 judge 不逐条检查 criteria,就容易退化成普通 LLM judge。
举个例子:
- rubric 里有“必须包含 exact keyword open-source”;
- judge 如果不按 rubric 检查,只凭整体印象判断,可能会把包含 “open” 但不包含 “open-source” 的回答误判为满足要求。
4. 下游 DPO / IterDPO 能从 Rubric-ARM reward 中受益
在 IFEval 和 InfoBench 上,用 Rubric-ARM 训练 policy 效果最好:
- DPO via Rubric-ARM: IFEval 平均 80.4,InfoBench 83.7;
- IterDPO via Rubric-ARM: IFEval 平均 80.8,InfoBench 85.0。
在 IFBench 上:
- RLCF IterDPO: 32.0;
- Rubric-RM IterDPO: 33.7;
- Rubric-ARM IterDPO: 35.4。
这说明 Rubric-ARM 不只是 benchmark judge 分数更高,它产生的 preference label 确实能作为更好的训练信号。
5. 开放偏好和创意写作也有收益
Arena-Hard / AlpacaEval:
- DPO via Rubric-ARM 平均 51.7;
- IterDPO via Rubric-ARM 平均 53.4。
WildBench:
- DPO via Rubric-ARM: 53.7;
- IterDPO via Rubric-ARM: 55.7;
- IterDPO via Rubric-RM: 54.0。
Creative Writing Benchmark v3:
- Rubric-ARM DPO: 39.0;
- Rubric-ARM IterDPO: 39.3;
- Rubric-RM DPO: 38.3;
- Rubric-RM IterDPO: 38.8。
这个结果和论文主题很一致:越是非可验证、主观、多维的任务,rubric 这种显式评价结构越有用。
6. Online GRPO 中也能当 reward signal
在线 RL 实验中,作者用 Rubric-ARM 给 GRPO 提供 reward。
平均结果:
- Qwen2.5-7B-Instruct base: 46.8;
- GRPO with RM-R1: 52.3;
- GRPO with Rubric-ARM: 55.4。
这说明 Rubric-ARM 不只是适合离线 DPO 标注偏好对,也能在在线采样、在线优化中作为 reward model。
7. Case study 显示 Rubric-ARM 更擅长抓硬约束
论文中的 thumb war 例子很有代表性。
Prompt 问的是:
Wars involve armed conflicts… Is a thumb war violent? I care about both physical and psychological violence.
错误模型容易被 “war” 这个词带偏,选择讨论战争暴力的长回答。
Rubric-ARM 生成的 rubric 把重点拉回:
- 必须直接回答 thumb war 是否 violent;
- 必须考虑 physical violence;
- 必须考虑 psychological violence。
因此它能选中更短但真正回答问题的 response。
这个 case 的意义是:Rubric-ARM 不只是让 judge 更会解释,而是让评价标准先对准 prompt 的关键约束,再开始判断。
8. 效率也不错
虽然 Rubric-ARM 有两个 Qwen-3-8B 模块,但推理并不慢。
在 100 个 RewardBench2 prompts 上:
- Rubric-ARM-8B: 33.50 秒;
- Rubric-RM-8B: 105.12 秒;
- RM-R1-7B 等 reasoning-based baselines 更慢。
作者认为原因是:Rubric-ARM 用较短的 rubric + lightweight judging 替代了长链式推理。
结论
作者可以合理得出的结论是:
- Rubric generation 可以作为 latent action 训练,而不只是 prompt engineering。
- Rubric generator 和 judge 联合优化比独立 SFT 更有效。
- 先 judge 后 rubric generator 的交替顺序能缓解训练不稳定。
- Rubric-ARM 作为 reward model,不仅自身 benchmark 表现强,还能提升下游 offline DPO 和 online GRPO。
- 这个方法尤其适合非可验证、多约束、主观性强的开放任务。
我的保留意见:
- 论文主要依赖已有 preference label,因此不是完全无监督 reward learning;
- rubric generator 和 judge 都基于 Qwen-3-8B,系统成本仍高于单模型 reward;
- correctness reward 仍由 benchmark preference 决定,如果 preference 数据本身有偏,rubric 也会学习这种偏;
- 论文强调稳定性,但对 rubric 质量本身的人工可解释性评价还可以更深入。
🧩 关键术语
Rubric(评价规约): 一组结构化评价标准,用来说明回答应该满足哪些要求。例子:对于“写两段并包含 open-source”的 prompt,rubric 会包含“必须正好两段”和“必须包含 exact keyword open-source”。
Rubric Generator(评价规约生成器): 根据 prompt 自动生成 rubric 的模型。例子:看到用户要求比较 Nextcloud 和其他云存储,它应该生成关于定义、使用原因、比较维度、语气和关键词的标准。
Judge(裁判模型): 根据 prompt、两个 candidate responses 和 rubric 判断哪个回答更好。例子:如果 response A 满足所有 hard rules,而 response B 漏掉关键词,judge 应该选择 A。
Non-Verifiable Domain(非可验证领域): 没有唯一标准答案、无法简单用规则验证对错的任务。例子:创意写作、开放式问答、语气控制、复杂指令跟随。
Preference Correctness Reward(偏好正确性奖励): 判断模型预测的偏好是否等于数据集中的偏好标签。例子:数据标注 A 优于 B,judge 也选 A,则 reward 为 1。
Latent Action(潜在动作): 不直接被监督、但会影响最终结果的中间决策。在这篇论文里,rubric 就是 latent action,因为数据集没有告诉模型正确 rubric 是什么,但 rubric 会影响 judge 能否选对。
Alternating Reinforcement Learning(交替强化学习): 不同时更新两个模块,而是在每轮中先固定一个、训练另一个。例子:先固定 rubric generator 训练 judge,再固定 judge 训练 rubric generator。
GRPO, Group Relative Policy Optimization(组相对策略优化): 一种不依赖 value model 的 RL 优化方法,通过同一 prompt 下多个生成结果的相对表现更新模型。例子:Rubric-ARM 用 GRPO 更新 judge 和 rubric generator。
Format Reward(格式奖励): 鼓励 judge 按指定结构输出的奖励。例子:要求 judge 逐条检查 rubric、给 per-criterion explanation、写整体 justification、最后输出 A/B。
Position Bias(位置偏置): judge 对 response 顺序敏感,而不是只根据内容判断。例子:同样两个回答,A/B 交换顺序后,模型偏好也改变。
DPO, Direct Preference Optimization(直接偏好优化): 用偏好对直接优化 policy 的方法。例子:Rubric-ARM 标注哪个 response 更好,然后用这些偏好对训练 Qwen2.5-7B-Instruct。
IterDPO, Iterative DPO(迭代式直接偏好优化): 多轮重复采样、标注偏好、DPO 更新的流程。例子:Rubric-ARM 的 IterDPO 在 IFEval、InfoBench、WildBench 上进一步超过单轮 DPO。
Online RL(在线强化学习): policy 在训练过程中不断采样新回答,并用 reward model 实时打分更新。例子:作者用 Rubric-ARM 作为 reward model,对 Qwen2.5-7B-Instruct 做 GRPO。
Rubric-Conditioned Judging(基于评价规约的判断): judge 的判断明确依赖 rubric,而不是直接凭整体印象投票。例子:先检查“是否正好两段”,再检查“是否包含 exact keyword”,最后决定哪个 response 更好。
💡 个人评价
这篇论文的价值在于把 rubric 从“解释性辅助文本”提升成了“可优化的中间决策”。这个视角和最近 rubric-as-reward、rubric anchor、open-ended RL 的趋势很一致:当任务不能用标准答案验证时,关键不是强行造一个标量 reward,而是把评价标准显式化、结构化,并让它参与训练。
我觉得最值得借鉴的是两个点:
- 如果要做开放任务 RL,不要只训练 judge,也要训练“评价标准生成器”。
- 多模块 reward 系统联合训练时,先稳定 evaluator,再训练 criteria generator,可能比端到端同时更新更可靠。
如果后续实现类似系统,我会优先复现三个部分:
- prompt-specific rubric generation;
- rubric-conditioned pairwise judging;
- order-swapped consistency filtering,降低 position bias。
🔗 相关论文
- Rubrics as Rewards: Reinforcement Learning Beyond Verifiable Domains
- Reinforcement Learning with Rubric Anchors
- OpenRubrics: Towards Scalable Synthetic Rubric Generation for Reward Modeling and LLM Alignment
- Reward Modeling as Reasoning
- Learning to Summarize with Human Feedback