跳到主要内容

300 个样本,0 个通过

P99
P99

· 阅读约 5 分钟

先说这次要看的命题:AI 生成的插件要进一个治理化的软件生态,现有验证手段(编译、功能测试)到底够不够?

答案是这片论文给的,而且给得相当难看——不够,差得远。《EduPluginBench: Executable Assurance for AI-Generated Educational Plugins》,Nizam Kadir,8 月 1 号挂的 arXiv,2608.00739。27 页,3 张图 8 张表,投了 TOSEM。我先说明我把论文摊开之后最想盯的哪一部分:不是 P0-P4 阶段划分这个治理框架本身——这玩意本质上就是一个分闸门流程,每个阶段卡一类合规要求,没啥新鲜的——真正值得停下来看的是那组迁移研究的数字,以及它在整个论证链条里堵上的那个口子。

先把怎么测的划一下。论文用 30 个规格说明构造了 1440 个经过激活检查的一阶变异体,用来校准每个阶段的拦截能力。然后拿 120 个干净参考样本测误拒率;拿 600 个未修改的生成样本做了一次冻结迁移研究,300 个通过了解析,但没有任何一个通过 P0 或 P0-P4 一致性检查。这组数字的 95% 置信上限是 0.64%,也就是说:别说 99% 了,连 1% 都摸不到。

这个结果在论文里的措辞是"使得受控合约一致性不能被解读为独立的真实缺陷有效性证据"。翻译成人话:一个基准在它自己的受控数据上表现再好看,一旦扔到真实生成样本上直接归零,那它在真实缺陷上的有效性就得先画个问号。我很喜欢他们把这一句写进摘要,而不是留在讨论段落里蒙混过关——这相当于作者自己伸手拆了自己最漂亮的一块积木。

再往里看一层。干净参考样本组的零误拒(120 个里 0 个被拦,95% Wilson 上限 3.1%)本身算不上什么惊人战绩——干净样本本来就该被放行,误拒率低只是必要非充分。真正阴险的是另一组:一篇独立标注的 Moodle 研究里保留了 16 对漏洞/修复样本,然后冻结的通用 PHP 检测器一个漏洞修订版本都没认出来。16 对,全漏。我要强调这是"通用检测器"——不是 EduPluginBench 的 P0-P4 阶段,是拿来做对照的通用 PHP 检测器。这组数字我拿到手的时候心里一紧,它意味着什么:如果你外面套一层"先让通用检测器扫一遍"的流程,这层扫描对真实漏洞的召回率是零,或者说接近零。而论文自己那套受控合约一致性引擎在干净样本上零误拒、在变异体上大幅召回,看起来很完美——可一旦把这两个事实放一起,你就能看见作者在摘要里那句话说到底在防什么:防止读者把受控基准的漂亮数字,直接等同于"这个工具能抓到真的漏洞"。

之前我聊过一次"benchmark 分数和现实部署之间那道缝",这次论文里那道缝还加了台阶:P0-P4 阶段相对 P0-P2 阶段,发布阻断缺陷召回率提高 74.7 个百分点,规格聚类的 95% 置信区间是 73.4 到 75.8。这组数字在论文里是作为"阶段划分有效"的正面证据出现的,但我看完第一反应不是"好厉害",而是"P0-P2 阶段漏得这么狠"。74.7 个百分点——你要知道这不是从 20% 提到 94.7%,这是过了半个多考场才把另一半题补上。对一个默认"两阶段就够了"的生态来说,这个数字本身就是一张反对票。

然后还有一个我特别在意的实验,第 10 条那个 540 个样本的诊断实验。事后有界修复,把 112 个 P0 通过样本全部不合规的情况修复之后,召回率从 13.4% 提到 100%。这个"100%"是整篇论文里我最想拿放大镜看的数字——它是"事后修复条件下的 100%",不是自然生成条件下的 100%。什么概念呢?等于说你拿着答案反推步骤,把每一步都验对了,但这个验对的动作发生在你已知答案之后。这组数字的价值不在"问模型的修复能力有多强",而在它狠狠提醒了你一件事:任何"预处理修复 + 后续检测"的流水线里,前面那一步一旦把样本改得更多,后面的检测器再怎么准也是空转。

我测试范围划到这里,停下来闻了闻空气:这论文是不是有点旧时代的味道?——所有数字都基于 2026 年 8 月 1 日提交的版本,冻结前提,以后模型版本一升级,600 个未修改生成样本这批数据就过期了。没辙。论文把这批样本的原始生成结果一起放到了工件里,算是给自己留了个复测的种子,这是我最满意它的地方——协议、公开来源追溯、逐行决策、审计记录、分析代码,全在工件里。你想拿自己的模型复测,不用写信找作者要数据。我上一次拿到这种程度工件还是哪篇来着,想不起来了。

想说的其实已经说完。置信标签:这篇论文在"AI 生成插件不能靠现有验证手段进生态"这个命题上,证据相当扎实,高置信;但它自己给出的那套分阶段准入到底能在多大程度上真正拦下真实世界的漏洞,证据还是薄的——那个零误拒和零命中的死结,作者自己承认了,没给我留下想发挥的空间。反正手工单都铺在工件里了,欢迎拿你自己的场景复测,数字对不上跟我说。