跳到主要内容
把【显著】从声明里拿掉

把【显著】从声明里拿掉

老墨
老墨

· 阅读约 5 分钟

旧稿是随手拟的,但这类句子你一年能读上百条:

我们的方法在多个基准上显著优于基线。

拿这句去问它到底承诺了什么,问不出来。“多个”是几个、哪几个,没说;“显著”是 p 值还是效应量,没说;“优于”比的是均值、中位数还是最好那一次,也没说。三个词,每一个都在替作者省事,代价是任何人都没法拿它去核对。

【显著】是这句里真正该炼的那个诗眼。它不是形容词,它是一张没填的表格。

10 月 21 号挂出来的一篇预印本

arXiv:2610.30495,He、Liu、Chen 三个人写的,cs.AI,交叉到 cs.SE。标题里那个 From Prose to Properties 我一看就坐直了——prose 这个词用得准,不是 “natural language”,是散文。散文的特点不是不精确,是它允许精确性藏在上下文里,靠读者的默契补全。人读论文靠这套默契活了很久,智能体不行。智能体现在能自己跑实验、自己写结果,产出的速度早就超过了人逐条核对的速度——这是他们写这篇的出发点,也是我这半年最直接的体感。

他们的判断跟我上面那句“表格没填”其实是同一件事:每条经验性声明都隐含一个性质,这个性质应该在它的全部案例上成立;但性质只以散文形式写出来,你就没法判断哪份证据能否证它。

他们干的事,粗糙讲就是把散文里那几个空填掉。一套“性质骨架”,参数化的关系,会在很多条声明里反复出现;然后 ARATest 把这些骨架当可执行测试来跑。中间有一层是类型化声明,要做的事是绑死四样:比较的是哪个量、案例集合是哪些、适用范围多大、数值怎么处理。

这四样,就是我上面那张表的四栏。

我最服气的是那个“不确定”

我一开始觉得三值语义是偷懒。成立、被违反、不确定——不确定算什么判定?测不出来就别占一行。后来改主意了,改得挺彻底。

二元判定会逼着人说谎。证据只覆盖了一半案例、统计单元对不齐、某个生成器取不到数据,这时候硬给一个“成立”或者“违反”,都是把工具的含糊转嫁给读者。留一档“不确定”,等于让机器承认“这条我没资格判”,这比多检出十个 bug 都难做——大部分工具的设计者舍不得这一档,因为它看起来像失败。

更要紧的是每个“被违反”都挂一个可重放的见证。这一条把“我觉得这论文有问题”从意见变成了一条能递过去的命令:你跑这个,复现给我看。做 code review 的同行应该熟,能复现的最小用例和“这段代码有味道”之间的距离,就是工具和嘴之间的距离。

评估那组数字我挑着说:33 个 ARA 工件,243 条声明,其中 54 条被绑成了跟证据挂钩的忠实声明,判下来 32 成立、8 违反、14 不确定。8 条里有两处,暴露出已发表论文里的错,原作者认了。19 个有效对照样本上,553 个注入故障全检出、零误报,比两个 LLM 评判器好。

LLM judge 输在哪,我猜得很具体:它读的还是散文,它在猜你的意图。意图是可以被措辞哄的——你把“显著”换成“明显”,它照单全收。性质测试不猜意图,它只认那四栏填没填、填的东西跑出来是什么。这不是模型能力差距,是被测对象的差距:一边测的是“你懂不懂我在说什么”,一边测的是“你说的话在全部案例上成不成立”。

从查旧账变成挖新账

他们还有一个生成器是派智能体去跑已发布的代码,产生新案例。报告里提到,全新跑出来的实验揭示了一些已报告证据根本呈现不了的行为。

我觉得这才是这套东西真正狠的地方。前面那些还只是核对,这一步是——作者当年的证据集本来就不够覆盖他自己声称的适用范围,而散文把这个缺口糊住了。你写“在多个基准上”,糊住;你写“在 X、Y、Z 三个数据集全量案例上”,糊不住。

回到我自己这摊活。这跟我改 prompt 是同一门手艺,我不打算客气:一句 prompt 里含不含糊,跟一句声明里含不含糊,判断标准一模一样——能不能指出它在什么条件下算没做到。我以前有一条 system prompt 改了七八版才敢用,前六版全废在一个地方:我给的是态度,模型要的是判据。“仔细审查”和“列出未处理的 null 输入、空数组、超长字符串”,差别不在长短。

顺手说一句,ARATest 那个 452 KB、31 页,附录比正文厚,我扫了一眼目录就跳着看了,别指望我逐节读完。

定稿先放这

按他们那四栏,我拟自己的一条:

claim: 在 {A, B, C} 三个数据集的全量测试集上,方法 M 的 exact-match 均值高于基线 B
cases: 全量,按数据集分层,不剔除;缺失样本按失败计入,不做插补
scope: 仅 base 权重,不含微调;temperature=0,单次采样
verdict: 成立 / 违反(附随机种子与完整输出) / 不确定(缺哪一项就写哪一项)

比原来那句长了四倍。这不是啰嗦,这是把省掉的字补回来——“短”从来不是目的,能被否证才是。

不敢说这就是终版。最容易被我自己写宽的是 scope 那一栏,写着写着就想把“仅 base 权重”后面的限定删掉,好让结论看起来更硬。哪天它真被自己写宽了,回来改一版,不丢人。