善用精确率:以精确率目标缓解基于量表的强化学习中的奖励作弊 Eat Your Precision: Precision Objective Mitigates Reward Hacking in Rubric-based RL
FORK 用单元级精确率与量表召回的 Fβ 奖励,抑制 rubric RL 的冗长与奖励作弊
前置知识
基于量表的强化学习(Rubric-based RL)
针对没有唯一正确答案的开放式任务(如医疗咨询、科研问答),先为每个 prompt 用 LLM 生成一组评价量表(rubric),每条量表描述响应应满足的一个具体要求并带权重 $w_j$,再由 LLM 裁判逐条判定响应是否满足 $s_j \in \{0,1\}$,把加权覆盖率 $\mathrm{Rec}=\sum_j w_j s_j / \sum_j w_j$ 当作 RL 奖励。代表工作有 Rubrics as Rewards、RLCF、RubricHub。
本文的全部问题与方案都建立在「量表覆盖率即奖励」这一范式之上:作者发现它本质是召回率目标并易被作弊,FORK 就是在此范式内引入精确率项。
奖励作弊(Reward Hacking)
当奖励函数只是真实目标的不完美代理时,策略会找到「刷分但不解决问题」的捷径。在 rubric RL 中表现为:模型写出面面俱到但冗长、含无关或事实错误内容的回答,量表覆盖率很高,但人类或独立裁判并不更喜欢。本文实验中,标准覆盖率奖励让 Qwen2.5-7B 的响应长度从 2,432 字符涨到 9,195 字符,对基座模型胜率仅 3.1%。
识别「作弊长什么样」是理解本文动机的前提:作者把作弊归因为奖励只含召回项、缺少精确率约束,这正是 FORK 要修复的漏洞。
精确率、召回率与 Fβ 分数
召回率衡量「该覆盖的内容覆盖了多少」,精确率衡量「生成的内容中有多少是好的」。Fβ 是二者的加权调和平均:$F_\beta = (1+\beta^2)PR/(\beta^2 P + R)$,调和平均的性质是任一项趋零则总分趋零,$>1$ 偏重召回、$\beta<1$ 偏重精确率。
FORK 的核心公式就是把量表覆盖率当召回、把「必要且事实正确的单元占比」当精确率,用 $F_\beta$ 合成奖励;理解调和平均为何能防止单项刷分是读懂方法的关键。
GRPO(组相对策略优化)
DeepSeekMath 提出的 RL 算法:对每个 prompt 采样一组(本文 16 条)响应,以组内奖励的相对优势(减组均值、除组标准差)作为优势估计来更新策略,免去价值网络。是当前 LLM 后训练最常用的 RL 算法之一。
FORK 的 $F_\beta$ 分数就是接到 GRPO 上的标量奖励,超参(16 rollouts、学习率 4.2e-6 等)与训练成本(8×H100)都以 GRPO 为框架,复现时需要这套配置。
LLM-as-a-judge
用一个(通常更强的)LLM 按给定 prompt 代替人类或程序给模型输出打分、判定事实性或比较偏好。可靠性取决于裁判模型能力与 prompt 设计,且不同裁判之间判断可能不一致,因此常用多裁判多数投票或相关性分析来校验。
FORK 训练时用 Qwen3.6-35B-A3B 做裁判(单元化、量表匹配、阈值、事实性全部由它完成),评估用 GPT-5.4 做参考裁判;论文还专门做了裁判选型(Table 7)与换裁判 prompt 的鲁棒性实验(Table 4)。
研究动机
在数学、代码这类可验证任务上,RL 的答案正确性可直接测得;但开放式生成(医疗咨询、科研问答等)的评估标准多样且主观,难以定义奖励。主流方案 rubric-based RL 用「预生成量表 $R(x)=\{(r_j,w_j)\}$ 的加权覆盖率」做奖励,可这种奖励本质上只是一个召回率目标:它只检查「要求的内容是否出现」,完全不惩罚冗余、跑题或事实错误的内容,除非这些失败恰好被某条量表覆盖。后果是被数据证实的:Mahmoud et al. (2026) 发现经覆盖率奖励训练的模型回答更完整但事实正确性与必要性下降、更冗长,rubric-free 裁判反而更偏爱基座模型回答。本文复现了同样的现象:Qwen2.5-7B-Instruct 在 RubricHub-Medical 上用标准覆盖率奖励训练后,精确率从 46.6% 跌到 25.5%,平均响应长度从 2,432 字符暴涨到 9,195 字符,对基座模型的胜率仅 3.1%;换成最强的覆盖率基线 OnlineRubrics 后胜率也只有 10.6%。
本文的目标是本文的目标是修复 rubric-based RL 的奖励设计缺陷,使模型在不牺牲量表覆盖率(召回)的前提下,学会只产出「既必要又事实正确」的内容。具体拆成三件事:其一,把召回式覆盖率奖励改造成召回与精确率的 $F_\beta$ 联合目标,利用调和平均「任一项低则总分低」的性质,让灌水无法刷分;其二,为自由文本设计一个可靠的精确率度量——把响应切成单元后,逐单元判断其对满足量表是否必要(credit 机制)以及事实是否正确;其三,验证新奖励能否让 RL 训练后的模型在 rubric-free 评估中显著胜过基座模型(目标如把 RubricHub-Medical 的胜率从 10.6% 提到远高于此的水平),并在域外基准 HealthBench、ResearchQA 上泛化,同时改善 presence-based 与 absence-based 两类量表的满足率。
与已有工作不同的是,已有抗作弊工作几乎都走「完善量表规范」这条路:RLCF 观察到冗长前言后加入通用标准条目;OnlineRubrics 每步对比当前策略与控制策略响应来在线增补量表;DR Tulu 维护随 rollout 演化的搜索式量表;AMARIS 用训练诊断持续修订条目与权重;Zhang et al. 通过对比高质量响应改进高奖励区的区分度。这些方法的共同假设是「把要求写得更多更准就能解决」。本文的切入点不同:承认量表必然不完整,转而约束「已生成内容本身的质量」——必要性不再靠泛泛的 prompt 判断,而是定义为单元对 prompt 特定量表覆盖的量化贡献(rubric-driven credit),精确率定义为「必要且事实正确」单元占比,再与召回组成 $F_\beta$。由此既不需要在线更新量表,也不依赖事后扩充标准,奖励天然对「堆内容」敏感。
核心方法
直觉上,FORK 把「写得全」(recall)与「每句话都有用且为真」(precision)绑成一笔账:$F_\beta$ 是调和平均,任何一项趋零都会把总分拖向零,模型无法靠堆砌冗余、重复或编造内容来刷覆盖率。技术上,给定 prompt $x$,当前策略 $\pi_{\theta_t}$ 采样响应 $y$;先用 LLM unitizer 把 $y$ 切成 $n$ 个自包含单元 $U(y)=(u_1,\dots,u_n)$(约句子级,代词替换为先行词,丢弃问候语、标题、过渡语等功能性文本)。召回沿用标准加权量表覆盖 $\mathrm{Rec}(x,y)=\sum_{j=1}^M w_j s_j / \sum_{j=1}^M w_j$;精确率通过「credit 式必要性判定 + 逐单元事实性判定」计算,$\mathrm{Prec}=\frac{1}{n}\sum_i N_i C_i$。最终奖励为加权调和平均 $r_{FORK}=(1+\beta^2)\,P\,R/(\beta^2 P+R)$,用 GRPO 更新策略(16 rollouts/prompt、上下文 2,000 tokens、温度 1.0、batch 128、学习率 $4.2\times10^{-6}$、3 epochs、8×H100)。训练裁判统一用 Qwen3.6-35B-A3B(与三个前沿裁判多数投票的相关性 $r=0.714$,五候选中最高)。
核心创新是 credit-based necessity:把「这个单元是否必要」从主观的整体 prompt 判断,变成有量表依据的可量化计算。对每对(量表 $r_j$,单元 $u_i$),裁判预测匹配指示 $m_{ji}=\mathbb{I}[u_i \text{ contributes to } r_j]$,统计匹配到 $r_j$ 的单元数 $K_j=\sum_i m_{ji}$;每条量表拥有总额为 1 的 credit 预算并均分给其匹配单元,即 $a_{ji}=m_{ji}/K_j$($K_j>0$ 时)。这一设计有两个精妙之处:若 $K_j$ 个单元都在应付同一条量表,每个只拿 $1/K_j$,冗余被自动打折;而一个单元可从多条量表累积 credit $c_i=\sum_j a_{ji}$,奖励「一石多鸟」的高效表达。随后裁判通读全部单元与 credit 总量,选择动态阈值 $\tau$,得 $N_i=\mathbb{I}[c_i\ge\tau]$;事实正确性 $C_i=\mathbb{I}[u_i \text{ factually correct}]$ 独立判定且标准严格(含一处事实错误即判 0)。与已有方法的本质区别在于:不修改或增补量表本身,只改变奖励的聚合方式,把质量约束压到「每个已生成单元」上;作者还观察到必要性判断是瓶颈(Footnote 2:各候选裁判的必要性判断与前沿裁判仅中度相关,而事实性判断相关性较强),credit 机制正是为提高必要性判断可靠性而设计。
方法步骤详情
完整流程七步。(1) 单元化:输入响应 $y$,LLM unitizer 输出 $n$ 个自包含单元,做最小改写(如代词换先行词),删除问候、标题、纯过渡句。(2) 量表-单元匹配:裁判输入全部单元与量表 $R(x)$,输出匹配矩阵 $m_{ji}\in\{0,1\}$,并统计每个量表的匹配数 $K_j$。(3) credit 分配:$a_{ji}=m_{ji}/K_j$($K_j>0$;$K_j=0$ 则该量表无 credit 可分),单元累积必要度 $c_i=\sum_{j=1}^M a_{ji}$。(4) 阈值判定:裁判读所有单元文本与其总 credit,选择阈值 $\tau>0$,输出二值必要性 $N_i=\mathbb{I}[c_i\ge\tau]$(如 Figure 2 例中 $u_1$ 累积 $1/2+1/2=1$,$u_3$ 为 0,被判不必要)。(5) 事实性判定:裁判对每个单元独立给 $C_i\in\{0,1\}$,含任何事实错误即 0。(6) 奖励合成:精确率 $\mathrm{Prec}=\frac{1}{n}\sum_{i=1}^n N_iC_i$,召回为加权量表覆盖,$r_{FORK}=(1+\beta^2)PR/(\beta^2 P+R)$(分母为零时取 0)。(7) 策略更新:以 $r_{FORK}$ 为 GRPO 奖励更新 $\pi_\theta$。医疗域用 $\beta=1$,科学域用 $\beta=1.25$;另测试过按换行符切分单元的替代定义,结论一致但句子级更稳。
技术新颖性
新颖性有三层。概念层:首次把 rubric-based RL 的奖励作弊明确归因于「奖励只是召回目标、缺失精确率项」,并以 $F_\beta$ 调和平均给出形式化修复;这与 RLCF 加通用条目、OnlineRubrics 在线增补等「补丁式规范精化」有本质区别——量表不动,聚合方式改变。技术层:credit 等分机制把必要性从 prompt 直觉转化为有 rubric 依据的量化分数,天然惩罚冗余、鼓励高效表达;动态阈值 $\tau$ 让判定适应当前响应的 credit 分布而非全局硬编码。Figure 4 给出直接证据:在 40 条基座响应共 723 个单元上,逐步移除被判「不必要」的单元,credit 法在移除达 40% 时 recall 几乎不降(它判 51% 单元不必要),而 Generic Criteria 的纯 prompting 法 recall 随移除单调下滑——必要性预测精度正是 FORK 优于该消融版(胜率 68.0% vs 44.0%)的原因。实证层:论文给出反直觉发现——加重召回权重的 $F_2$ 聚合反而同时损害精确率与召回(F1 从 37.5 降到 36.7),简单平均虽提高精确率(55.3%)却大幅损失召回(32.5→26.2),为 $\beta$ 的选择提供了实证坐标。
实验结果
医疗主实验(Table 1,RubricHub-Medical test,裁判 GPT-5.4):FORK($\beta=1$)取得 Recall 32.5%、Precision 53.2%、F1 37.5%,对比最强覆盖率基线 OnlineRubrics(38.7/26.8/28.8),F1 提升 9.8 pp(主文以 $\beta=1.25$ 报告为 28.8%→38.6%);rubric-free 对基座胜率从 10.6% 升至 68.0%(+57.4 pp),平均长度从 8,736 降到 3,533 字符。HealthBench 胜率 74.1% vs OnlineRubrics 22.1%(+52.0 pp)。科学域(Table 2):FORK($\beta=1.25$)达 30.4/45.1/33.4,胜率 61.5% vs Universal Rubrics 42.5%(+19.0 pp),ResearchQA 胜率 67.1% vs 26.6%(+40.5 pp)。Table 3 显示 FORK 同时改善两类量表:presence-based 满足率 34.9%(接近 Standard 的 35.3%,基座仅 20.3%),absence-based 从 Standard 的 37.2% 提至 42.9%(+5.7 pp,即学会抑制不该有的内容)。Table 4 换用另一套裁判 prompt 后 $\beta=1.25$ 仍以 89.3%(RubricHub-M)/84.6%(HealthBench)领先,鲁棒。Table 6:$F_{1.25}$ 聚合 F1 最高 38.6%,简单平均精确率更高(55.3%)但召回崩至 26.2%,$F_2$ 反而全面变差(36.7)。Table 8 五维质量:FORK 全面占优,简洁性 +2.64(4.49 vs Standard 1.14)、事实性 +0.76、相关性 +1.30、安全性 +1.67,综合 5.20 超基座 4.94。Figure 3 用训练裁判评估排除裁判迁移效应后,FORK 仍处 Pareto 前沿。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| RubricHub-Medical 域内测试(rubric-free 偏好) | 对基座模型胜率 | 68.0%(FORK, β=1) | 10.6%(OnlineRubrics,最强覆盖率基线) | +57.4 pp |
| RubricHub-Medical 域内测试(rubric-based) | Macro F1(召回×精确率调和平均) | 38.6%(FORK, β=1.25) | 28.8%(OnlineRubrics) | +9.8 pp |
| RubricHub-Medical 域内测试(冗长度) | 平均响应长度(字符) | 3,533(β=1);β=1.25 较 Standard 缩短 2.1× | 9,195(Standard 覆盖率奖励) | 缩短 2.6×,召回基本持平 |
| HealthBench(医疗域外泛化) | 对基座模型胜率 | 74.1%(FORK, β=1) | 22.1%(OnlineRubrics) | +52.0 pp |
| RubricHub-Science 域内测试(rubric-free 偏好) | 对基座模型胜率 | 61.5%(FORK, β=1.25) | 42.5%(Universal Rubrics,最强基线) | +19.0 pp |
| ResearchQA(科学域外泛化) | 对基座模型胜率 | 67.1%(FORK, β=1.25) | 26.6%(Universal Rubrics) | +40.5 pp |
局限与改进
作者层面:(1) $\beta$ 需按数据集调参(医疗 $\beta=1$、科学 $\beta=1.25$),$F_2$ 反而有害,最优 $\beta$ 的选取被明确留作未来工作;(2) 训练裁判与评估裁判不一致时(Figure 3 用训练裁判评估),FORK 优势虽保持但数值缩水,说明主结果部分受益于向更强裁判的迁移;(3) Footnote 2 承认必要性判断是瓶颈——所有候选训练裁判与前沿裁判的必要性相关性仅 0.348–0.575(事实性最高 0.703)。我自己的观察:(1) 只测了 Qwen2.5-7B-Instruct 一个基座、医疗与科学两个领域,对更大模型、代码/创意写作等任务的普适性未知;(2) 召回略低于覆盖率基线(32.5 vs 35.7/38.7)是精确率-召回权衡的固有代价,若下游应用极端重视覆盖可能不划算;(3) 评估深度依赖 GPT-5.4 等前沿闭源裁判,裁判偏差与自举风险(训练裁判同属 Qwen 家族)未被完全排除;(4) 每个 rollout 需要多轮裁判调用(匹配、阈值、事实性),训练吞吐与成本显著高于纯覆盖率奖励;(5) 上下文限 2,000 tokens,超长响应场景未验证。
独立分析的弱点
(1) credit 等分假设同一量表下各匹配单元贡献均等,但单元可能只部分覆盖量表或贡献不等——可改为软匹配度加权(让裁判输出 0–1 连续贡献分)而非二值 $m_{ji}$。(2) 阈值 $\tau$ 由裁判对每次响应自由选择,缺乏校准与一致性保证,不同响应间不可比——可在留出集上校准 $\tau$,或改为固定分位数规则并验证敏感性。(3) 事实正确性完全依赖单一 LLM 裁判,医疗等高风险领域的隐性幻觉可能漏检——可引入检索增强验证(对可查证声明做证据检索)或 NLI 模型做第二道闸。(4) $\beta$ 敏感性研究薄弱且只覆盖两个域、一个 7B 基座,结论外推有限——应做模型规模、任务类型 × $\beta$ 的网格实验,或学习自适应 $\beta$ 调度。(5) 训练裁判 Qwen3.6-35B-A3B 与策略模型同为 Qwen 家族,存在家族偏置风险——可用异构裁判集成并测量裁判间分歧作为奖励噪声估计。(6) 单元定义只试了句子与换行两种,对代码、公式、表格等非自然语言响应的单元化未讨论——可设计结构感知的切分器。
未来方向
作者明确提出的:寻找最优 $\beta$ 的系统方法(理论或实证)。基于其成果可延伸的方向:(1) 把二值必要性标签推广为连续 credit 软标签直接进奖励,做更平滑的单元级信用分配,并与 GRPO 的组内优势做 token 级归因结合(process-reward 思路);(2) 与在线量表增补方法(OnlineRubrics、DR Tulu)正交组合,验证「规范精化 × 精确率约束」的叠加收益;(3) 把精确率目标迁移到可验证任务,抑制长链推理中的重复与自我矛盾(附录 D 科学例中 Standard 模型会写出与自己结果矛盾的多余验证步骤,FORK 消除了此行为);(4) 蒸馏前沿裁判训练专用的小型 necessity/correctness 裁判模型,降低每 rollout 多轮调用的成本与延迟;(5) 深挖意外收益的机制:Table 8 中安全性得分 +1.67 是方法并未直接优化却出现的提升,研究「必要性+事实性」与安全性的耦合原因可能有普适启示;(6) 探索 $\beta$ 随训练进度自适应调度(早期重召回、后期重精确率),模拟人类「先扩写后修剪」的写作过程。
复现评估
复现条件较好。代码已开源(github.com/JHKim631/FORK);数据全部公开:RubricHub(医疗 12,519 训练/1,391 测试,科学 19,806 训练/2,201 测试,科学域剔除 ResearchQA 来源样本)、HealthBench、ResearchQA 均为公开基准。训练配置交代完整:Qwen2.5-7B-Instruct + GRPO,16 rollouts/prompt,上下文 2,000 tokens,温度 1.0,batch 128,学习率 $4.2\times10^{-6}$ 恒定带 5% 线性预热,3 epochs,8×NVIDIA H100。所有裁判 prompt 模板在附录 Figures 5–18 完整给出,裁判选型过程(Table 7)与判定协议可复用。难点在于推理侧依赖:训练裁判为开源的 Qwen3.6-35B-A3B(可本地部署),但参考评估裁判 GPT-5.4 及裁判选型用的 GPT-6 Astra、Gemini 3.8 Flash、Claude Opus 5 均为闭源前沿模型;每条 rollout 需要单元化、量表匹配、阈值选择、逐单元事实性等多轮裁判调用,长响应下 API 成本与吞吐是主要瓶颈。管线环节多(单元化→匹配→credit→阈值→事实性→聚合→GRPO),工程复杂度中等偏上,但每步输入输出都有 prompt 可查,总体复现难度:中等,需要约 8×H100 级算力加一笔可观的裁判推理预算。
论文图表
四组随训练步数(0–300 步)变化的曲线,对比 Standard coverage reward、FORK 与 Base model 三条线:标准覆盖率奖励下 recall(加权量表覆盖)快速饱和至约 35%,但 macro precision、对基座模型的 win rate 持续下滑,平均响应长度涨至约 9k 字符;加入精确率目标的 FORK 在达到相近 recall 的同时,precision 与胜率逐步上升、响应长度保持受控。实验对象是 Qwen2.5-7B-Instruct 在 RubricHub-Medical 上的域内训练。
这是全文问题的直观实证:一眼看到「只优化召回会让模型越写越长、越写越错、越来越不受欢迎」,以及「补上精确率项即可逆转」。理解了这张图就理解了论文的存在理由。
换用 Rezaei et al. (2025) 的另一套 rubric-free 裁判 prompt 重评医疗域胜率:Holistic Preference 80.8/89.4(RubricHub-M/HealthBench),Generic Criteria 84.6/87.3,Offline Criteria 88.6/80.3,Online Criteria 65.2/53.4,FORK β=1 84.8/88.6,FORK β=1.25 89.3/84.6。
LLM 裁判对 prompt 高度敏感是 rubric-free 评估的常见质疑;此表证明 FORK 的优势不依赖于特定裁判措辞,是鲁棒性主张的主要证据。