“小模型裁判到底能不能用?”这个问题在本地部署圈里吵了很久。有人拿它当免费质检员,有人试了一次就放弃。我手里恰好有一个别人没有的东西:一个真实的法律判定器。它让我能把这件事测清楚,也让我发现自己第一版测试写错了。
先说范围:下面所有裁判都是参数量不超过3B、跑在本地的开源模型。结论不适用于前沿大模型。合成错误和自然错误,我全程分开报告。
![]()
为什么需要一个判定器
用大模型当裁判已经很普遍,JudgeBench、RewardBench 这类基准也在测裁判的通用能力。但它们缺一个东西:一个不需要人、也不需要裁判的绝对标准。
我的标准来自 FAR/DFARS 条款注册表——从 eCFR 第48章提取的 1128 条条目。一条“幻觉条款”的定义很简单:条款编号不在这个注册表里。这个判断不需要人,也不需要模型,它本身就是事实。
基于这个思路,我搭了 OracleBench,用三个确定性判定器给两个小裁判打分:Qwen2.5-3B 和 Qwen2.5-0.5B。三个判定器分别是 FAR/DFARS 注册表、GSM8K 算术题、以及 25 个基于规则的 IFEval 检查器。题库共 1760 道已验证题目:511 道自然错误、822 道合成污染、427 道正确答案,每道题都带冻结的来源记录。
我不得不重做的三件事
你现在读到的不是第一版。回头核对原始数据时,我发现了三个问题:
- GSM8K 的“错误”标签有一部分是错的。它们来自一次生成上限设为 256 token 的 FlipGate 运行。换用更稳健的答案提取器重新打分后,在我原本标为错误的 398 道题里,有 51 道其实答对了。我把 FlipGate 的上限提到 1024 token(截断率 0%)重跑,重建题库,再跑一遍所有裁判环节。
- 成对比较探针有缺陷。它把一道题的错答案和另一道题的对答案配成一对,这样只能测出位置偏好,我却错误地得出“裁判无法评估”的结论。
- 自我偏好对比把“自己vs别人”和题目难度混在了一起。
下面所有数字都来自重建后的题库和修正后的探针。
误放行率:三个反直觉的发现
误放行率,指判定器认为错误、裁判却判为正确的比例。小裁判的整体数字被算术题主导,所以要分列来看。
第一,0.5B 裁判在算术题上基本是盖章机:GSM8K 上误放行率 94.8%,真放行率 100%。它在附和,不是在判断。
第二,两个裁判对条款引用一律拒绝。0.5B 和 3B 的误放行率分别是 0.5% 和 1.0%,看着很漂亮,但真放行率是 0.0%——不管对错,它们拒绝每一条条款答案。低误放行是靠零区分度换来的。
第三,合成污染会美化裁判。3B 裁判对合成污染的误放行率是 3.3%,对自然错误却是 23.5%,差了约 7 倍。只用明显的污染样本测裁判,你会高估它。自然错误的那一片必须留着。
成对比较:修正探针后结论变了
每一对答案,裁判都会看两种顺序:正序,以及把正确答案用填充内容垫长后的版本。这一次,正确答案回答的是和错误答案同一个提示:GSM8K 和 IFEval 是最小对(改一个数字、破一条规则),FedProc 是同一记录的自然错误答案对正确答案。共 236 对,每个裁判 944 次判断。
3B 裁判确实有区分能力:GSM8K 对上 87.8%,IFEval 87.4%,FedProc 56.5%。但它偏向 B 位:正确答案在场时选 B 的比例是 94%,正确答案在 A 位时是 67%。0.5B 裁判在正确性上等于随机,83% 的时候直接选 B 位。把正确答案垫长,会让 3B 裁判掉大约 6 个百分点。
旧的有缺陷探针让两个裁判看起来一样坏(“85%到92%选B”)。修好之后,3B 的结论从“无法评估”变成了“能评估,但存在位置偏好,应该随机化掉”。
自我偏好:20倍差距缩到2.6倍
一个常见的担心是裁判偏爱自己的输出。3B 裁判确实更接受 3B 模型的错误答案,而不是 0.5B 模型的。
我本来会报告的是第一行那个对比:20 倍差距。但它不是证据,因为两组题目的难度不同。第二行固定了题目(两个模型都答错的同一批 165 道题),差距缩到 2.6 倍,仍然显著。
这和自我偏好一致,但这个设计没法把它和“3B 模型的错误更隐蔽”区分开。0.5B 裁判几乎放行一切,所以没什么可检测的。我只测了同家族裁判,跨家族裁判才能给出定论。
真正有用的部分:先检查器,后裁判
这是建设性的结果。一个小路由器:先跑适用的检查器,只在没有检查器覆盖的题目上调用裁判,每一步决策都留痕。
1860 道题里有 94.6% 被路由到检查器:裁判调用减少 17.6 倍,裁判耗时减少约 20 倍。零错误是构造出来的,因为判定器在适用范围内就是事实。重点在于路由和逐条决策留痕,它们能告诉你哪些答案仍然需要裁判。
局限
- 裁判参数量不超过 3B 且本地运行,不涉及前沿模型结论。
- 裁判提示词已冻结(仓库里的 v1),换提示词就是换数字。
- GSM8K 自然错误来自单一模型(Qwen2.5-3B,bf16,1024 token 上限);所有裁判都是 Qwen 系列,所以自我偏好和错误隐蔽性混在一起。
- FedProc 的低误放行是全面拒绝,这一点直说。
- 236 对匹配样本,其中只有 54 对是 FedProc;只用了一种成对模板。
仓库在 github.com/raihan-js/oraclebench,数据在 huggingface.co/datasets/raihan-js/oraclebench-items,21 个测试全绿。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.