用评分标准(rubric)给模型打分很常见:每题配一组「该提到的要点」,命中越多、权重越高,奖励越高。问题在于这类奖励天然是召回率(recall)指标——只数「该说的说了没有」,不数「多说的该不该说」。一旦它被直接用作强化学习的奖励函数,这个结构性漏洞会被优化器放大到肉眼可见。

一轮 RL 之后的反直觉结果

论文在 RubricHub-Medical 测试集上给出很扎心的数字。基座是 Qwen2.5-7B-Instruct,基线是论文采用的标准覆盖率奖励。训练后宏平均召回率从 22.6 涨到 35.7,覆盖更全;但宏平均精确率从 46.6 掉到 25.5,平均回答长度从 2,432 涨到 9,195。胜负率更刺眼:训好的模型与没训过的基座正面对比,赢面只有 3.1%。一轮 RL 跑完,在评审模型眼里反而是原始模型更受欢迎。

这也不是某个基线独有的问题。论文复现的四个覆盖率类奖励,胜率都落在 3.1% 到 10.6% 之间,没一个接近五成。

病根:九成的评分标准只会说「要提」

论文引用的统计显示,RubricHub 里 90.2% 的评分条目是「必须提到某点」式的存在型条目,只有 8.6% 是「不许提到某点」式的缺失型条目。存在型条目只有加分方向,没有减分方向。于是覆盖率奖励训练时同时干两件事:把该说的补上(存在型满意度 +15.0 个百分点),也把不该说的塞进去(缺失型满意度反而 -3.2 个百分点)。模型学会「多写」,因为在这样的奖励函数里多写永远赚。

精确率是怎么定义的

论文把回答切成句子级单元,对每个单元算两件事。一是必要性:每条评分条目有总额度为 1 的信用预算,分给所有回应它的单元;若 K 个单元提到同一条,每个只拿 1/K 信用,冗余被自动打折,累积信用越过阈值的单元才算「必要」。二是事实正确性:独立地给每个单元打对错标签,只有它表达的事实主张成立才算对。

单元只有既必要、又事实正确才计入精确率,精确率是这类单元占全部单元的比例。最后用 Fβ 把精确率与召回率合成单一奖励:β>1 偏向召回,β<1 偏向精确率。关键不在那个 β,而在信用按 1/K 分配——它让「同一件事说三遍」拿不到分。

换回 68% 胜率,代价写在召回率上

换用这个奖励后,医疗域胜率从 10.6% 提升到 68.0%,在 HealthBench 这类外部基准上从 22.1% 提升到 74.1%,回答长度压到 3,533;论文另报告 β=1.25 一档相对标准覆盖率奖励把长度缩到约 1/2.1。代价同样清楚:该方法召回率是 32.5,低于四个覆盖率基线 35.7 到 38.7 的区间。它没做到「既全又准」,只是把权衡曲线往另一侧推了一步。

另外几条边界也得摆明。偏好型奖励基线 Holistic Preference 拿到 65.4% 胜率,接近 68.0%,只是召回率掉到 27.5——两条路是同一权衡的两端。换成另一套评审提示词做鲁棒性检验时,它的 89.4% 反倒高于 Fork 的 88.6% 和 84.6%。官方仓库只放出标准奖励、Generic Criteria 和 Fork 三种实现,论文其他基线与消融未一并释放,README 的论文链接仍是占位符。评审模型用 GPT-5.4,训练侧评分模型是 Qwen3.6-35B-A3B(与三个前沿模型判断的相关系数 0.714),策略模型只有 7B,场景限定在医疗与科学问答。原始论文见 arXiv:2610.33512。

奖励函数的形状,决定了模型最终学到什么

这篇论文的价值不在于又涨了几个点,而在于它把「非可验证任务怎么做 RL」这件事的度量层拆开了:打分器算出来是召回率,优化器就照着召回率优化,多写永远赚,模型于是学会用废话和错误内容换分数。

对做医疗、科研、法律咨询类助手的团队,这是直接的工程警告:指标看着合理、分数还在涨,但评审模型给出的偏好已经倒向原始模型。加一个精确率项,或干脆给「多写」标上成本,可能比换更大的评审模型更管用。