跳至正文
Eric®
作品与手记EN

← 文章  /  AI 工程

当考卷本身有错:我们在测量 AI 的什么?

等价公式拿了零分,修订题库后成绩大涨。先看清考卷和判卷过程,再判断模型究竟进步了多少。

PHYBench 有一道绳索张力题,模型和参考答案给出了看起来不一样的式子。用普通的分母有理化,就能把它们写成同一个结果:

T = P / (3 * sqrt(6))
  = P * sqrt(6) / (3 * 6)
  = sqrt(6) * P / 18

Expression Edit Distance(EED)评分器却给了零分,二元判定也是错误。2026 年 9 月 11 日的物理评测审计论文图 3 记录了这次误判:模型做对了普通的代数变形,判卷程序把它算成了失败。

这篇《How Good Are Frontier Models at Physics?》由耶鲁大学等机构的研究者完成,审查了 UGPhysics、PHYBench、PRISM-Physics、HLE-Physics、CMT-Benchmark 和 CritPt 六套测试,范围是文字形式、具有可验证最终答案的封闭式物理题。修复后,一些成绩大幅上涨:GPT-5.6-Sol 在 CMT 的 mean@4 从 61.00% 升到 87.24%,在 HLE-Physics 从 47.28% 升到 78.66%。

我觉得这件事直接戳中了评测的软肋:我们花了大量力气追踪模型涨了几分,却常常把考卷和判卷程序当成天然正确的尺子。尺子出了问题,再精确的百分比也会把讨论带偏。先拆开判卷错误、题面修订和重复尝试,才看得清这次涨分究竟发生了什么。

95.2% 的分母,是被判错的回答

专家把审计案例分为模型错误、评分器错误和题库错误。第一类是题目与参考解都没问题,模型确实答错;第二类是模型答对,评分器拒绝;第三类则包括参考解错误、条件缺失或题目歧义。材料本身有问题时,论文优先把案例归入题库错误,而不是继续当作一场正常考试来判模型。

四套合并审计中,250 个被拒绝后送审的案例,最终分为 143 个题库错误、95 个评分器错误和 12 个模型错误。常被引用的 95.2%,分母就是这 250 个拒绝案例:审计把绝大部分失败追到了测量流程。CMT 与 CritPt 采用另一种审计覆盖方式,单独统计。

送去审的样本,本来就在回答“这些失败怎么来的”。沿着失败记录找问题,很容易挖出误拒绝。这样的审计首先改变的,是我们对这批失分的归因;要估计整套题库的缺陷率,还得另做覆盖全部题目的抽样。

而且,题库错误未必只是计算粗心。论文图 4 中,CritPt 的 Kitaev 蜂窝模型题要求计算基态能量,却没有明确哈密顿量采用泡利矩阵还是自旋算符。对自旋为 1/2 的系统,采用 S = σ/2 后,两体乘积会带来四倍的系数差异。修订题补上了哈密顿量和约定;不能用某位研究者习惯的约定,代替题面没写出来的条件。

题面缺条件,比评分器看不懂公式还麻烦。换一个更强的 LLM 裁判,也得先决定采用哪套物理约定。出题者该写清楚的东西,被留给答题者和裁判猜,这道题从一开始就失去了统一的判定依据。

从 61 分到 87 分,考卷也变了

CMT 原有 50 道题,专家发现 30 道材料有问题,修复 29 道、删掉一道,最终保留 49 道。HLE-Physics 从排除多模态后的 202 道文字题,剔除 86 道题库错误,留下 116 道。下面的数值来自论文表 1,对应 GPT-5.6-Sol High,在相应工具条件下的 mean@4。

评测 原题数 → 保留题数 修订前 → 修订后
CMT-Benchmark 50 → 49 61.00% → 87.24%
HLE-Physics 202 → 116 47.28% → 78.66%

CMT 的涨分主要来自评测材料修复。它的原生评分器未公开,研究在修订前后一直使用同一个 HLE-adapted evaluator,论文第 3.2.2 节交代了这一点。把错误归因到具体环节,比笼统说一句“旧评分器低估了模型”更有价值。

固定原题与模型输出,只改变评分,测的是判卷误差;修正参考解,改变的是判定依据;补充题目条件后重新作答,改变的是任务;删掉题目,还会改变分母和难度构成。每种操作都有正当用途,但不是同一场测量。

HLE 的处理尤其值得留痕。审计从被拒绝的回答查起,再剔除无效题,删除决定就和旧的失败记录联系在一起。报告应把删题清单、理由和保留题集一起交出来,让读者看到新考卷的组成,而不只看到更高的成绩。

我支持修掉坏题,也支持把修订过程当成实验的一部分公开。固定输出重新评分,修订题目后重新作答,两组结果分开报告。旧记录留下来,才能看见测量系统改进了多少、模型又进步了多少。一个漂亮的新百分比覆盖不了这段历史。

97.96% 的背后,有四次作答机会

修复后的 CMT 中,GPT-5.6-Sol High 的 mean@4 为 87.24%,pass@4 为 97.96%。前者对每题四次尝试的正确情况取平均,后者只问四次里是否至少成功一次。

pass@4 计算的是四次尝试中至少成功一次的覆盖率。假设四个答案里一个正确、三个错误,用户还得选对那个答案。这份选择工作在产品里很难,却被一个接近 98% 的数字轻轻带过了。评测报告应同时给出单次表现和答案选择机制,才接得上实际使用。

49 道题的 pass@4,每一道就占约 2.04 个百分点。只差一两题的排名,应该把逐题差异摆出来。同一道题的四次作答仍围绕同一个问题,统计时也该按题组织不确定性。接近满分时,这些细节直接决定排名有多大分量。

这让我区分三件事:测量是否可重复,是否反映目标能力,以及不同版本能否比较。每次都稳定地拒绝一个等价公式,是可重复的错误,不是有效测量。题目再好,如果工具权限、推理预算或评分版本不停变化,历史分数也未必可比。

Bowman 和 Dahl 在 2021 年的评测方法论文里已经讨论过题集设计、标注可靠性与规模。模型越接近满分,剩下几道坏题和误判就越有机会左右排名。到了这一步,该升级的也包括考卷本身。

专家判卷,也要接受审计

专家审查也呈现了真实的分歧。196 个双人审查案例中,140 个最初一致,56 个交由第三次审查裁决;另有 54 个案例只收到一次审查。71.43% 记录的是双人案例的初始一致率。把分歧怎样被解决一起公开,专家判断才有复核的入口。

物理里的领域默认和题面缺失,有时只隔着审查者的一次判断。审查者又看过模型输出和 AI 的初步分析,这些信息会影响如何理解题目。把题目有效性检查前置、保留独立意见和裁决理由,能让这套程序少依赖某位专家的直觉。

我会尽量把题目有效性检查放在看模型输出之前,并保留争议理由。还要抽查被判正确的回答:只检查失败,更容易发现假阴性,也就是正确答案被拒绝;错误答案被接受的假阳性,同样会扭曲分数,而且方向相反。

Epoch AI 在2026 年 8 月对原版 HLE 的审查中,从八个类别各随机取六题,共 48 题,确认 22 题有实质缺陷:12 题按题面无法明确作答,10 题可能误拒绝正确答案,其中五题还可能接受错误答案。这份等额分层样本把另一个问题摆了出来:评分错误会同时向两个方向发生。

因此,修评分器时得两边一起审。扩大等价答案的接受范围,可能找回失分,也可能放进错误答案。回归测试里应同时放入正确变形和貌似相近的错误表达,让修复经得起正反两组样本。

测试认定了函数名,需求却没有

编程评测也有同样的错位。OpenAI 的 SWE-bench Verified 审查集中检查了 138 个 o3 多次运行仍未能稳定解决的难题,其中 59.4% 有实质性的测试或描述问题。困难任务里有这么多失分来自测试契约本身,足够让我们重新检查“模型没通过测试”这句话。

一个 Pylint 任务尤其具体:测试直接导入新函数 get_annotation,但问题描述没有要求这个名字。补丁即使通过另一种内部实现满足需求,也可能在收集测试时因为导入失败被拒绝。此时测试把参考补丁的实现细节,写成了需求之外的条件。

物理题要求结果正确,软件需求规定行为。内部辅助函数的名字若要成为验收条件,就该出现在公开任务契约里。测试越过需求,偷偷把参考补丁的写法设成唯一解,测到的就会混入“猜中了出题者怎样实现”。

公开题目还有一道老问题:数据污染。修复补丁和讨论长期可见,模型训练有机会接触它们。OpenAI 在部分任务上观察到前沿模型复现人工参考补丁或题面细节,值得继续追查训练暴露和记忆对分数的贡献。

一套测试越频繁地用于训练反馈、模型选择和公开排名,开发过程就越会朝着这把尺子调整。评测维护要同时做两件事:修好判卷,再追踪题目暴露。否则,测量工具越熟悉,我们越容易把适应题库读成能力增长。

换新题以后,旧分数怎么比较

LiveBench持续引入新材料,并强调可验证的客观答案;LiveCodeBench持续收集竞赛题,用时间范围组织评测。这些办法能降低旧题长期暴露带来的风险,但“新”不自动等于“同样难”。

如果今年模型 A 在一组题上得 80 分,明年模型 B 在另一组题上得 85 分,涨了五分并不能单独证明 B 更强。子领域比例、题目难度和测试设置都可能变了。比较新旧模型,至少应尽量在同一个冻结版本、同一预算和工具条件下重跑,而不是把不同年份的榜单数字接成能力曲线。

我倾向于保留两个用途不同的集合:稳定且经过验证的题,用来观察回归和配置差异;持续更新、控制暴露时间的新题,用来检查对新任务的表现。已经饱和的旧题仍能检测退化,只是不适合再用来细排最强模型。

跨版本比较最该交代的是校准过程。共同题一旦被广泛记忆或接近全对,就失去了区分作用。把题型覆盖、工具配置、暴露时间和锚题表现一并报告,读者才知道那些年份不同的分数怎样接起来。

把评分器当作软件来维护

落到工程上,我希望 Benchmark 不只保存一个数据集和最终排行榜,还保存产生分数的过程。题目、参考解、评分器、提示词、模型版本、推理预算与工具权限,都应能追溯。题目补一句条件,也要记录它是否改变了正确答案集合,而不是悄悄覆盖。

生成回答与评分应分离。先保存原始输出和运行配置,评分器修复后就能对同一输出重评;题面改变则另开一次实验。这样才能区别模型进步与测量变化,也方便解释某次排名为何翻转。

评分器还需要自己的回归样本。对公式,加入代数等价的正例,也加入近似但不等价、单位错误、遗漏条件的负例。分层使用符号计算、数值核验和专家判断;不能只围绕已经见过的误拒绝放宽规则。

数值代入尤其容易被用过头。有限几个点碰巧相等,不证明恒等;表达式的定义域、奇点和平方根分支都可能影响等价性。比如 sqrt(x*x) = x 只在额外条件下成立,对实数的一般表达应是 abs(x)。符号化简同样要携带假设,不能拿一个看起来合理的化简结果代替物理约束。

报告最后可以保留几组并列结果:原题原评分、固定输出校正评分、修订任务重新评测。每组列出题目数、模型与配置、审计范围,以及按题目组织的不确定性。它没有一个总准确率那么简洁,但读者至少能知道自己比较的是哪一次实验。

能答物理题,离做研究还有多远?

这次审计最有力的发现很具体:前沿模型在一批有明确条件、可验证最终答案的文字物理题上,被旧流程低估了。坏考卷和坏评分器吞掉的成绩,应当还给模型。维护“AI 不懂物理”的直觉,不能成为拒绝修尺子的理由。

但物理题通常已经替解题者确定了研究对象、条件和要找的量。开放研究还要决定什么值得问、采用哪种表示、怎样区分解释、怎样根据证据修改假设。把封闭题的分数直接读成独立研究能力,会跳过这段差别。

论文作者 John Sous 在后续《Is Physics Dead?》中还谈到论文外的初步 Agent 尝试:面对开放理论物理问题,当时尚未自主完整解决任何一道。开放研究需要单独设计评测,把选题、推导、验证与修正的过程留下来,成绩单才有机会接近研究工作的全貌。

更难的题也不自动更有效。开放任务如果只让另一个模型给出模糊的“很有洞见”,同样可能失去复核依据。需要保存推导、验证过程、可检验的预测和人类评审理由,才能讨论研究进展,而不只是换一种打分语言。

我希望今后的排行榜把考卷、判卷程序和实验配置摆到分数旁边。错题要修,误判要纠,历史版本也要留下。模型值得一场公平的考试,读者则值得知道,这个分数究竟是怎样考出来的。