论文精读

精读:给评分标准奖励补一个精确率项——FORK 的 1/K 信用与那道没写进公式的去重

把 rubric 覆盖率识别为召回率,给非可验证任务的 RL 奖励补上「每个响应单元既必要又属实」的精确率项,再用 Fβ 合成单一奖励;本文按表重算发现头条涨幅跨表取格、覆盖率持平只对 β=1.25 成立,而防摊薄的机制藏在提示词里的去重步骤,不在式 (3) 中。

论文: Eat Your Precision: Precision Objective Mitigates Reward Hacking in Rubric-based RL
作者: Hyun Ryu, Jong-Heon Kim, Yiqing Xie, Seungone Kim, Carolyn Rose, Eunho Yang
arXiv: 2610.33512
强化学习 评分标准奖励 奖励黑客 精确率与召回率 GRPO LLM评审 医疗问答 响应长度

1 论文概览

本文是 arXiv:2610.33512(cs.CL;v1 2026-10-24 07:43:06 UTC;Hyun Ryu、Jong-Heon Kim、Yiqing Xie、Seungone Kim、Carolyn Rose、Eunho Yang,KAIST AI × 卡内基梅隆大学语言技术研究所;代码已开源于 github.com/JHKim631/FORK)。本专栏此前五十三期回答的是「挑哪些 token、挑哪些轨迹、信用按哪套口径记账、信号被消费时旧了多少、数据分布离基座多远、整条响应有没有资格参与这次更新、策略容量会不会被优化动力学耗光、教师分布里哪些位置允许比较、事后经验除了改行为还能不能改行动之前的那次预测、参考模型的 KL 该从哪条边进组相对更新、教师的意见从哪条通道进 RL、off-policy 校正的记账区间有多长、裁剪区间那两个端点由什么决定、干预落在流水线的哪一环、逐步信用从哪个模型里来、一个已经报出来的增益该怎么拆账、这些信号最终以什么形状落到参数上、结局空间该分成几档、同一笔优势在响应内部怎么分、教师交出来的那笔位移里哪些前缀有资格进损失、这笔信用在更新里当斜率还是当终点、一次迭代该对齐到任务的哪一格、一份外部语料要进模型,是作为检索出来的文本进上下文,还是作为预测出来的隐状态进解码器、模型内部被拆出来的那批坐标能不能当作可以相加的行为解释单元、思考预算拧大之后,模型换掉的是对一个句子的读法,还是只换掉了答对的比例、一组 token 压成一个向量时,这个压缩动作本身该不该由输入自己解出来、一份原生多模态预训练预算该在三个模态之间怎么切成参数、token 与重复次数、生成过程里没有左右顺序时 token 级信用该记在什么量上」;这一期问的是当奖励本身就是一份由打分器算出来的清单覆盖率时,优化器在最大化哪一样,以及给这份奖励补上一个精确率项之后,模型缩短的究竟是废话还是内容——此前五十三期改的都是「信用与信号怎么进损失」,这一期第一次退到损失的上游:奖励函数的形状。

一句话总结:把「rubric 覆盖率」明确识别为一个召回率目标,于是缺的那一半是精确率;论文把响应切成句子级单元,用「每条 rubric 给匹配到它的单元平分 1 份信用」的方式算单元必要性,再乘上一道事实正确性判定,得到 Prec=1n∑iNiCi\mathrm{Prec}=\frac1n\sum_i N_iC_i,再用 FβF_\beta 把精确率与覆盖率合成单一奖励;在 Qwen2.5-7B-Instruct 上,RubricHub-Medical 测试集的对基座胜率从最强覆盖率基线的 10.6% 提到 68.0%,HealthBench 上从 22.1% 提到 74.1%,响应长度从 9,195 字符降到 3,533 字符。本文按表重算后指出三个记账问题:头条的 F1 涨幅取的是主表里没有的 β=1.25\beta=1.25 那一行;「覆盖率基本不变」只对 β=1.25\beta=1.25 成立,主表展示的 β=1\beta=1 是全场召回最低的 32.5;而防止「把一件事摊薄成很多单元」的机制并不在式 (3) 里,藏在 Figure 6–7 那道去重提示词中。

核心问题:非可验证任务上没有答案对错可作奖励,于是社区用「先让 LLM 生成一份 rubric,再用加权覆盖率当奖励」的办法把监督搬进来。论文指出这个奖励的数学性质先天地偏在一侧:

“because these rewards are typically defined as a weighted measure of rubric coverage, models are trained primarily to maximize a recall objective”(Abstract)

后果是可以直接量出来的那一类:

“RL-trained models produce responses that are more complete but also more verbose and contain more unnecessary or factually incorrect content, leading them to be less preferred than responses from the base model.”(Abstract)

主要贡献:

  1. 一次指标层的归位:把 rubric 覆盖率正式写成召回率 Rec⁡=∑jwjsj/∑jwj\operatorname{Rec}=\sum_j w_js_j/\sum_j w_j,把「响应里有多少内容是必要的且正确的」写成精确率,两者用加权调和平均 FβF_\beta 合成奖励。β\beta 是一个可以交给使用者的旋钮。
  2. 一套响应精确率的可操作定义:响应先经单元化(近似句级,丢弃问候语、小节标题、话语标记与纯过渡句),再由打分器做 rubric–单元匹配 mjim_{ji},每条 rubric 把 1 份信用平分给它匹配到的 KjK_j 个单元,单元累积信用 ci=∑jmji/Kjc_i=\sum_j m_{ji}/K_j,超过动态阈值 τ\tau 才算必要;必要性与事实正确性相乘得精确率。
  3. 一条信用分配规则:同一条 rubric 被 KjK_j 个单元重复表达时,每个单元只拿 1/Kj1/K_j。这条规则让「同一件事说三遍」在奖励上拿不到三倍分,是整套方法里真正起作用的那个部件。
  4. 一组覆盖三类竞争方案的对照实验:覆盖率类(OnlineRubrics、Universal Rubrics、Reweighted Absence-Based Rubrics)、偏好类(Holistic Preference)、精确率变体类(Generic / Offline / Online Criteria),在医疗与科学两个域、两个外部基准上同协议比较。
  5. 一份训练打分器的选型依据:用 40 条基座响应、五类判断、三个前沿模型多数票作参照,测五个候选打分器的 Pearson 相关,选 Qwen3.6-35B-A3B(五类平均 r=0.714r=0.714)作为全程统一打分器。

2 方法详解

2.1 起手式:把覆盖率读成召回率

给定 prompt xx,策略采样出自由文本响应 yy。设 R(x)={(rj,wj)}j=1M\mathcal{R}(x)=\{(r_j,w_j)\}_{j=1}^M 是与 xx 绑定的覆盖率 rubric,wj>0w_j>0 是重要性权重。打分器对每条 rubric 给一个二值覆盖标签 sj(x,y)=I[y satisfies rj]s_j(x,y)=\mathbb{I}[y\text{ satisfies }r_j],标准奖励是

Rec⁡(x,y)=∑j=1Mwjsj(x,y)∑j=1Mwj(1)\operatorname{Rec}(x,y)=\frac{\sum_{j=1}^{M}w_js_j(x,y)}{\sum_{j=1}^{M}w_j}\qquad(1)

论文把 Rec⁡\operatorname{Rec} 命名为 rubric recall。这一步命名是全文最值钱的挪动:一旦承认它是召回率,「该补什么」就不再是经验问题。真正的支撑证据来自数据集构成——RubricHub 里 90.2% 的 rubric 是「应当出现什么」(presence-based),只有 8.6% 是「不应当出现什么」(absence-based)。也就是说,式 (1) 的分母几乎完全由「该说的说了没有」构成,多说、说错、重复说在式 (1) 里没有对应项,除非恰好被某条 absence rubric 命中。

2.2 精确率:单元化 → 信用式必要性 → 事实正确性

单元化。 响应被切成有序单元 U(y)=(u1,…,un)\mathcal{U}(y)=(u_1,\ldots,u_n),默认近似句级,保留原措辞,只做最小改写(例如把代词换回先行词)使单元自足。关键在于这一段:

“Purely functional or organizational material---such as greetings, section headers, discourse markers (e.g., first'' or in summary”), and transition-only sentences or phrases---is discarded.”(§3.2)

信用式必要性。 打分器对每一对 (rj,ui)(r_j,u_i) 预测 mji=I[ui contributes to addressing rj]m_{ji}=\mathbb{I}[u_i\text{ contributes to addressing }r_j],记 Kj=∑imjiK_j=\sum_i m_{ji},则

aji={mjiKj,Kj>00,Kj=0ci=∑j=1Maji(2)a_{ji}=\begin{cases}\dfrac{m_{ji}}{K_j},&K_j>0\\[4pt]0,&K_j=0\end{cases}\qquad c_i=\sum_{j=1}^{M}a_{ji}\qquad(2)

单元必要性标签为 Ni=I[ci≥τ]N_i=\mathbb{I}[c_i\ge\tau],阈值 τ\tau 由打分器逐响应动态给定。

事实正确性。 打分器独立给每个单元二值标签 Ci=I[ui is factually correct given x]C_i=\mathbb{I}[u_i\text{ is factually correct given }x],判据很硬:单元里含一处事实错误即 Ci=0C_i=0。

精确率与奖励。

Prec⁡(x,y)=1n∑i=1nNiCi(3)\operatorname{Prec}(x,y)=\frac1n\sum_{i=1}^{n}N_iC_i\qquad(3)

rFORK=(1+β2)Prec⁡⋅Rec⁡β2Prec⁡+Rec⁡(4)r_{\mathrm{FORK}}=\frac{(1+\beta^2)\operatorname{Prec}\cdot\operatorname{Rec}}{\beta^2\operatorname{Prec}+\operatorname{Rec}}\qquad(4)

nn 是单元化之后的单元数。

2.3 关键创新点

创新点一:把「重复」做成可定价的。 1/Kj1/K_j 这条规则是整套设计里唯一带有显式反冗余机制的部件。若一条 rubric 被 3 个单元表达,每个单元从它那里只拿 1/31/3,累积信用低于阈值就被判为不必要,于是不进精确率分子、却留在分母 nn 里,精确率被拉低。Figure 4 用 40 条基座响应、723 个单元测了这条规则的可用度:按预测为不必要的顺序逐个删除单元,删到 40% 时 rubric 召回率几乎没有下降(其中 51% 的单元被预测为不必要);换成提示词直接判定必要性(Generic Criteria 那一路)则召回单调下滑。

创新点二:β\beta 作为交付接口。 FβF_\beta 把「要全」与「要准」之间的取舍变成一个可外置的标量,使用者不必改方法,只改一个数。

创新点三:把必要性锚定在 rubric 上,而不是锚定在「常识上该不该说」。 论文明确区分了自己的做法与此前的通用准则路线:必要性来自「该单元对这份 prompt 的覆盖要求有没有贡献」,而非一句泛泛的「every part is needed」。

2.4 与基线的区别

类别代表奖励形状与 FORK 的分界
覆盖率类Standard / OnlineRubrics式 (1),或每步在线增补 rubric 后仍走式 (1)只有召回项,多写永远不亏
通用准则类Universal Rubrics式 (1) 的分母里加两条泛化 rubric(必要性、事实性)用「再加一条 rubric」近似精确率,权重与 rubric 数挂钩,且仍属召回口径
重加权类Reweighted Absence-Based调高 absence rubric 的 wjw_j只调原始权重,不产生单元级负反馈
偏好类Holistic Preference当前策略响应 vs 基座响应成对比较,赢 1 平 0.5 输 0直接对「胜率」这个评测指标建模,但无覆盖率约束
精确率变体Generic / Offline / Online Criteria同为 F1F_1 结构,换掉精确率的测量方式对照的是「怎么测精确率」,不是「要不要测」

这里有一条值得单独记住的分界:Universal Rubrics 与 FORK 用的是同一对概念(必要性 + 事实正确性),区别是把它们写进召回的分母还是写进精确率的分子。前者是「多一条 rubric」,后者是「多一个量纲」。表 1 给出了这两者的差距:Universal Rubrics 精确率 27.6、胜率 4.3;FORK(β=1\beta=1)精确率 53.2、胜率 68.0。


3 实验结果

3.1 主表读数

医疗域(RubricHub-Medical 测试集 1,391 条 + HealthBench),召回 / 精确率 / F1F_1 / 对基座胜率 / 平均长度:

方法RecallPrecF1F_1WinRateLengthHB RecallHB WinRate
基座 Qwen2.5-7B-Instruct22.646.626.3—2,43213.4—
Standard35.725.526.43.19,19525.97.1
OnlineRubrics38.726.828.810.68,73625.722.1
Universal Rubrics37.627.628.44.38,45726.118.5
Reweighted Absence36.424.225.78.59,10625.76.3
Holistic Preference27.547.531.365.43,58422.871.6
Generic Criteria33.847.736.944.04,31224.563.4
Offline Criteria38.035.133.720.76,74825.132.6
Online Criteria36.839.334.714.36,69925.914.0
FORK β=1\beta=132.553.237.568.03,53325.274.1

科学域(RubricHub-Science 2,201 条 + ResearchQA):基座 27.3 / 41.8 / 29.6 / 长度 2,673;Standard 31.4 / 33.5 / 29.2 / 胜率 38.6 / 4,453,ResearchQA 召回 64.4、胜率 16.1;Universal 31.8 / 37.9 / 31.0 / 42.5 / 4,128,ResearchQA 62.1、26.6;FORK β=1.25\beta=1.25 是 30.4 / 45.1 / 33.4 / 61.5 / 3,038,ResearchQA 58.9、67.1。

3.2 头条数字落在哪一格

摘要给的两个数——医疗 10.6% → 68.0%、HealthBench 22.1% → 74.1%——分母都取 OnlineRubrics。这是覆盖率类里胜率最高的一档(Standard 3.1、Universal 4.3、Reweighted 8.5),取它作对手属于挑强不挑弱。摘要的措辞是 “Compared to the original recall-based reward”,而 10.6 这一格属于增补式覆盖率方法,不是最原始的 Standard;按 Standard 口径应是 3.1 → 68.0。

F1F_1 那条涨幅另有一处跨表:正文写「从 28.8% 提到 38.6%,涨 9.8 pp」,其中 28.8 是 OnlineRubrics(表 1),38.6 却不是表 1 里 FORK β=1\beta=1 的 37.5,而是表 6 里 β=1.25\beta=1.25 的 38.6。也就是说这个差值由两张表各取一格拼成,表 1 里并没有 38.6 这个数。

「覆盖率基本不变」这句也跟着走:表 6 里 β=1.25\beta=1.25 的召回是 35.8,确实与 Standard 的 35.7 齐平;表 1 里展示的 β=1\beta=1 召回是 32.5,是全表九行里最低的一档,比 Standard 低 3.2 pp、比 OnlineRubrics 低 6.2 pp。摘要的 “while achieving similar rubric coverage” 与图画一致,与主表那一行不一致。

科学域的落差更大:ResearchQA 上 FORK 召回 58.9,Standard 是 64.4,差 5.5 pp(相对 8.5%),而正文仍写 “While maintaining similar level of recall”。

3.3 最干净的一格:HealthBench

把视野从主表挪到外部基准,能找到全文最硬的一组对照。HealthBench 上所有方法的召回挤在 22.8–26.1 之间:Standard 25.9、Universal 26.1、OnlineRubrics 25.7、Generic 24.5、FORK 25.2。召回几乎相等的前提下,胜率从 Standard 的 7.1 涨到 FORK 的 74.1。这一格不是「用召回换胜率」,而是同一召回率上把响应质量整体搬上去——这才是论文主张成立的那一格,可惜它没有单独被拎出来说。

3.4 消融与边界

聚合方式(表 6)。 Average 26.2 / 55.3 / 32.8;F1F_1 32.5 / 53.2 / 37.5;F1.25F_{1.25} 35.8 / 49.0 / 38.6;F2F_2 35.5 / 43.6 / 36.7。两点:F1.25F_{1.25} 支配 F2F_2(召回与精确率双高),但 F1F_1 与 Average 互不支配(前者召回高 6.3、后者精确率高 2.1)。论文自称帕累托最优是相对基线而言;在自己的 β\beta 扫描里至少有三个互不被支配的点,且主表挑的 β=1\beta=1 并非 F1F_1 指标上的 argmax——F1.25F_{1.25} 的 38.6 更高。选 β=1\beta=1 的真实理由写在胜率与长度上(68.0 与 3,533),不是写在 F1F_1 上。

存在型 / 缺失型 rubric(表 3)。 基座 20.3 / 40.4;Standard 35.3 / 37.2;OnlineRubrics 38.5 / 36.9;Universal 37.3 / 34.0;FORK β=1.25\beta=1.25 是 34.9 / 42.9。Standard 把存在型抬了 15.0 pp,代价是缺失型掉 3.2 pp;FORK 在存在型上只比 Standard 低 0.4 pp,缺失型却比 Standard 高 5.7 pp、比基座高 2.5 pp。这张表里少了一行:Reweighted Absence-Based Rubrics——唯一一条专为缺失型 rubric 设计的基线,它在表 1 里出现,在这张按 rubric 类型拆开的表里没有出现。

换一套评审提示词(表 4)。 用 Rezaei et al. 的提示词重测:RubricHub-Medical 上 Holistic Preference 80.8、Generic 84.6、Offline 88.6、Online 65.2,FORK β=1\beta=1 是 84.8、β=1.25\beta=1.25 是 89.3。HealthBench 上排序翻转:Holistic Preference 89.4 高于 FORK β=1\beta=1 的 88.6 与 β=1.25\beta=1.25 的 84.6。论文的措辞是 “our method mostly outperforms the other baselines”——“mostly” 承担了这一格。这张表还整类剔除了覆盖率基线(理由是胜率太低),于是鲁棒性检验只在最强的那一类对手之间做。

打分器选型(表 7)。 五个候选在五类判断上与前沿模型多数票的 Pearson 相关:

候选Rubric 满足整体偏好必要性事实性阈值平均
gpt-oss-20b0.5910.7960.3480.3500.6790.553
gpt-oss-120b0.6060.8250.5630.6770.6880.672
GPT-4.1 Mini0.6390.8460.4470.5790.7110.644
Qwen3.5-122B-A10B0.7350.8490.5750.5420.7800.696
Qwen3.6-35B-A3B0.7190.8530.5340.7030.7600.714

胜出者的平均分只比次优高 0.018,样本是 40 条基座响应,全文没有置信区间。胜出者在三类判断(rubric 满足、必要性、阈值)上低于 Qwen3.5-122B-A10B,靠事实性那一列(0.703 对 0.542)把平均拉上去。而必要性恰恰是本文新引入的那一半奖励所依赖的判断类型,它在五类里相关度最低(0.534)。还有一层分布差:选型用的是基座响应(平均 2,432 字符),打分器随后要judge 的是 RL rollout(Standard 那一路平均 9,195 字符)。

五维质量(表 8,1–7 分)。 基座 4.83 / 4.90 / 5.58 / 5.95 / 5.46(完整 / 事实 / 简洁 / 相关 / 安全);Standard 5.34 / 3.77 / 1.14 / 4.05 / 4.98;FORK β=1\beta=1 是 5.73 / 4.81 / 4.49 / 5.87 / 6.06。FORK 相对 Standard 的最大进项是简洁性 +3.35 与安全性 +1.67;但事实正确性 4.81 仍低于基座 4.90,相关性 5.87 仍低于基座 5.95。胜率上去了,靠的是完整性、安全性与简洁性的回补,不是事实性反超。

训练配置。 GRPO、每 prompt 16 rollout、上下文 2,000 token、温度 1.0、批大小 128、学习率 4.2×10−64.2\times10^{-6}、3 epoch、8×H100;评测打分器 GPT-5.4。


4 个人分析

4.1 亮点

把「rubric 覆盖率 = 召回率」这一步识别,价值高于后面所有的工程。 此前的工作看到的都是现象(变长、变错、不如基座),修法也都是现象级的(再加一条通用 rubric、在线补 rubric、把 absence rubric 权重调大)。这篇把它翻译成一个缺失的对偶项,于是修法有了唯一的方向,而且这个方向是可外置的(β\beta)。

1/Kj1/K_j 是一条真正改变激励形状的规则。 在式 (1) 之下,把同一条 rubric 说三遍与说一遍同分;在式 (2) 之下,三遍各拿 1/3,累积信用被摊薄,阈值一卡,三遍都不算必要。Figure 4 那组「删掉 40% 单元召回不掉」的曲线是这个部件有效的直接证据。

诚实的地方要记一笔。 表 4 把 Holistic Preference 在 HealthBench 上高过自己的两个 β\beta(89.4 对 88.6、84.6)原样报了出来;表 6 也明说 F2F_2 有害、最优 β\beta 留待将来。这些都是不裁剪负结果的做法。

4.2 局限性

(一)精确率与召回率共用同一套 rubric,这不是 P/R,是两个同向量纲的乘积。 必要性 NiN_i 的定义是「该单元对覆盖 rubric 有没有贡献」。于是召回率的分母(rubric 集合)与精确率的分子(对 rubric 有贡献的单元)参照的是同一份清单。一份只答 rubric、不多说一句的响应拿到 Prec=1\mathrm{Prec}=1、Rec=1\mathrm{Rec}=1;一份在 rubric 之外补了一句真正有用内容的响应,那句内容对 rubric 无贡献,ci=0c_i=0,Ni=0N_i=0,它被算进分母 nn、不进分子,精确率随之下降。论文在相关工作里自己提的问题是「当覆盖要求本身不完整时,该怎么评价生成内容」,而它的答案仍然拿那一份不完整的覆盖要求当尺子。这意味着:rubric 漏了什么,FORK 会更用力地不去说什么——它提高的是对 rubric 的贴合度,不是对任务的正确度。RubricHub 只有 8.6% 的 absence rubric,这个偏差在数据侧已经存在,精确率项把它放大了一层。

(二)防盗版的机制不在公式里。 做一个退化输入代入:把每个单元拆成 kk 份(或者说,把每条 rubric 的表达摊到 kk 倍的单元上)。KjK_j 变 kk 倍,ajia_{ji} 变 1/k1/k,cic_i 变 1/k1/k;若 τ\tau 同比缩小,NiN_i 全部不变,nn 变 kk 倍,Prec⁡\operatorname{Prec} 近似不变,Rec⁡\operatorname{Rec} 也不变——均匀摊薄在这个奖励下是近乎免费的。τ\tau 由打分器逐响应动态给定,本身就具备同比缩放的自由度。真正挡住这条路的是 Figure 6–7 那道提示词里的第二阶段:

“Then deduplicate among the necessary units. … decide whether it duplicates an earlier necessary unit — verdict ‘remove’ — or makes a contribution of its own — verdict ‘keep’.”

式 (3) 只写了 Ni=I[ci≥τ]N_i=\mathbb{I}[c_i\ge\tau],没有去重这一步;实现里却要求打分器输出 keep/remove 并「必须点名被重复的那个更早的单元」。方法段声明的机制与提示词实现的机制不是同一套,而防摊薄的保证落在后者身上。附带一条:cic_i 可以超过 1(提示词明写 “shares add up when a unit carries several points, so a score can exceed 1.00”),于是「独占一条 rubric 的单元」与「分摊三条 rubric 的单元」的信用值不在一个可比尺度上,τ\tau 的绝对大小没有跨响应的含义——全文没有一处报告 τ\tau 的分布。

(三)单元化先删掉了失败模式的载体。 被丢弃的是「问候语、小节标题、话语标记、纯过渡句」。而 Appendix D 里 Standard 那条最典型的冗长失败,是模型在结尾反复追加 “If you have any more questions or need further assistance, feel free to ask. Stay Well! Qwen”,然后再起一段 “Additional Note”、再起一段 “Detailed Information”。这类文本正是单元化要丢弃的那一类。它们不进精确率的分子,也不进分母,对该指标是免费的。于是报出来的精确率,是过滤后子集的精确率;长度从 9,195 掉到 3,533 的过程里,有多少是被精确率项压掉的实质内容、多少是被单元化阶段直接不计的,两件事没有被分开。

(四)胜率是对基座策略的成对比较,而最强基线的奖励定义就是赢过基座。 Holistic Preference 的奖励是「当前响应优于基座响应记 1、平记 0.5、劣记 0」,等于把评测指标直接写成奖励。它拿到 65.4,FORK 拿到 68.0,差 2.6 pp;HealthBench 上它是 71.6,FORK 是 74.1;换 Rezaei 提示词后 HealthBench 上它 89.4 反超 FORK 的 88.6 与 84.6。两条路拿到的是同一条权衡曲线上相邻的两点,区别在 FORK 多了一道召回约束(召回 32.5 对 27.5)。「加精确率项」与「直接对偏好建模」之间的差距,比摘要给的要小。

(五)三个口径缺口。 一是主表与正文的行不对齐(3.2 节),二是科学域表 2 只列了 Standard 与 Universal 两条基线——在医疗域拿到 65.4、38.7 的 Holistic Preference 与 OnlineRubrics 都没进这张表,于是「19.0 pp / 40.5 pp」这两个科学域涨幅是对着一个更弱的对手集算的;三是表 3 缺 Reweighted Absence-Based Rubrics 那一行。

(六)单基座、无方差、无成本账。 只有 Qwen2.5-7B-Instruct,只有医疗与科学两个域,全文没有一个置信区间或多次运行。打分器调用量这件事从头到尾没出现:式 (1) 每条 rollout 需要 MM 次二值判定,FORK 需要 M×nM\times n 次 rubric–单元匹配、nn 次事实性判定、外加一次阈值与去重判定——量级从 O(M)O(M) 涨到 O(Mn)O(Mn)。在 16 rollout × 128 批 × 3 epoch 的规模上,这不是可以忽略的常数,而论文没有给出任何一栏。还有一处待澄清:训练上下文写的是 2,000 token,而 Standard 那一路的平均响应长度是 9,195 字符(约合 2,300 token 以上),两者如何共存未作说明。

4.3 对大模型领域的影响

非可验证任务的 RL 第一次有了度量层的拆解模板。 只要奖励是「LLM 打分器按清单打分」,就存在「这个分数是召回还是精确率」这个问题。医疗、法律、咨询、报告生成这几类长答案场景,几乎都在用这种奖励。本文给的自查动作很轻:把 RL 后的响应与基座响应做一次成对评审,如果分数在涨而胜率在跌,就是同一件事。

对评测侧的提醒更直接。 覆盖率型 rubric 评测(无论当奖励还是当指标)只报一个数时,会系统性地奖励堆砌。至少要把存在型与缺失型 rubric 的满意度分开报——表 3 里 Standard 在存在型上 +15.0 pp、在缺失型上 −3.2 pp,合起来看是一个「涨了」的数。

一个要小心传播的点。 不能把结论读成「加个精确率项就能让 RL 后的模型比基座更受偏好」。精确率的参照系是那套 rubric;rubric 不完整时,这个项会奖励「照着 rubric 少说话」。真正稳的那一格是 HealthBench:召回与 Standard 持平(25.2 对 25.9)、胜率 74.1 对 7.1。这一格不需要「召回略降」这个前提,也应当被当作本文对外可用的主张。


5 实践启示

5.1 可以借鉴的技术

  1. 1/K1/K 信用分配:凡「多条输出内容对应同一条要求」的奖励设计都适用。它不需要额外模型,只改记账方式,代价是 O(Mn)O(Mn) 次匹配判定。
  2. FβF_\beta 作为产品旋钮:β\beta 可以直接外置成配置项。医疗法规类场景把 β\beta 压到 1 以下换准确,头脑风暴类场景把 β\beta 抬到 2 以上换覆盖。论文的扫描(表 6)说明这两端的代价是可预期的:Average 精确率 55.3 但召回只有 26.2,F2F_2 召回 35.5 但精确率掉到 43.6。
  3. 单元化 + 逐单元二值判定:这是长文本奖励的通用骨架,独立于本文的精确率定义,可以换成幻觉判定、引用支持度、安全判定中的任何一个。
  4. 存在型 / 缺失型分开记账:把 rubric 拆成两堆分别报满意度,是一条零成本的诊断(表 3 那两列就是它的产出)。
  5. 训练打分器先做相关度体检:用少量样本(论文用 40 条)把候选打分器与前沿模型多数票的相关度逐判断类型列一张表,再决定用谁。这张表本身就能暴露「哪一类判断是不可靠的」——本文里是必要性(0.534)。

5.2 潜在应用场景

  • 医疗与法务长回答:事实性损失最昂贵的场景,精确率项与 rubric 覆盖率的组合最自然。
  • RAG 答案去冗:检索回来的证据多,模型倾向整段搬运;1/K1/K 对重复表达天然有负反馈。
  • 报告与摘要生成:覆盖率可由 rubric 指定,冗余由精确率压。
  • agent 阶段总结:把「这一步做成了什么」写成 rubric,用 β\beta 控制总结的粒度。
  • 客服与咨询:响应长度直接关联成本,本文的 3,533 对 9,195 是一个可参考的量级。

5.3 落地前要做的四件事

  1. 先量基座 vs RL 的成对胜率,再决定要不要动奖励。这一步不出结果,后面的工程没有验收口径。
  2. 把 rubric 覆盖率拆成存在型与缺失型两栏,看是不是只在第一栏涨。
  3. 确认 rubric 本身够不够完整。不够完整就先补 rubric,别急着加精确率项——精确率会把不完整的 rubric 一起固化。
  4. 把打分器调用量计进成本。从 O(M)O(M) 到 O(Mn)O(Mn) 是一次数量级变化,且本文没有这一栏,落地时必须自己测。

参考文献

  1. Gunjal et al., Rubrics as Rewards(rubric 覆盖率先驱,本文 Standard 基线来源)。
  2. Viswanathan et al., Checklists are Better than Reward Models for Aligning Language Models, NeurIPS 2025(RLCF,Universal Rubrics 的来源)。
  3. Rezaei et al., Online Rubrics Elicitation from Pairwise Comparisons, arXiv:2510.07284(OnlineRubrics,本文头条数字的对手)。
  4. Mahmoud et al., Reward Hacking in Rubric-based Reinforcement Learning, arXiv:2605.12474(reward hacking 现象与五维评分量表来源)。
  5. Li et al., RubricHub, ACL 2026(训练与测试数据来源,Medical 12,519 / 1,391,Science 19,806 / 2,201)。
  6. Arora et al., HealthBench(外部医疗基准)。
  7. Yifei et al., ResearchQA, TACL 2026(外部科学基准)。
  8. Shao et al., DeepSeekMath, arXiv:2402.03300(GRPO,本文训练算法)。

相关精读