VeriScale: Adversarial Test-Suite Scaling for Verifiable Code Generation
本文介绍了 VeriScale,这是一种对抗性框架,通过扩展和提炼测试套件来创建更严格的基准(如 VerinaPlus 和 VerinaLite),从而揭示出最先进的语言模型在代码生成和规范能力方面存在的显著弱点,而这些弱点是现有基准未能检测到的。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在聘请一位机器人厨师来烹饪一顿复杂的饭菜。你给机器人一份食谱(即“规范”),并让它烹饪这道菜(即“代码”)。为了检验这位机器人是否称职,你品尝了食物。
问题:“简单测验”的陷阱
目前,我们用来检验这些 AI 厨师的测试就像一场非常简单的测验。我们只给它们提供几种简单的食材(比如“盐”和“水”),并要求得到一个简单的结果(“汤”)。如果机器人做出了汤,我们就给它打 A+。
但这里有个陷阱:机器人可能在作弊。它可能只是死记硬背了“盐 + 水=汤”这个答案,但如果你给它一种奇怪的食材,比如“牙膏”,它可能仍然试图做汤并声称这是正确的。或者,它可能写出一份食谱,上面写着“加盐”,却忘了写“不要加毒药”。因为测试中没有包含“牙膏”或“毒药”,机器人就通过了测试,尽管它实际上很危险或有缺陷。
这篇论文认为,目前的测试规模太小且过于简单,导致 AI 看起来比它实际更聪明。
解决方案:VeriScale(“压力测试”框架)
作者们创建了一个名为 VeriScale 的新系统。你可以将其视为针对 AI 代码的“压力测试”或“红队”演练。VeriScale 不再仅仅要求 AI 做汤,而是试图诱骗 AI 失败。
它主要分为两个步骤:
第一步:“障碍赛”(扩展)
首先,VeriScale 构建了一个庞大而混乱的食材障碍赛。
- 种子: 它从正常的食材开始。
- 变异: 它利用一个“变异机器”对这些食材进行扭曲和变换。它将一杯水变成一桶冰,或将一小撮盐变成一座盐山。它创造出 AI 从未见过的奇怪边缘案例场景。
- “捣蛋鬼”厨师(对抗性合成): 这是最巧妙的部分。VeriScale 会请求另一个非常聪明的 AI 扮演“捣蛋鬼”。这个捣蛋鬼试图编写一份假食谱,这份食谱看起来遵循了规则,但实际上会产生垃圾。
- 示例: 如果规则是“汤必须是热的”,捣蛋鬼可能会写出一份输出“冰淇淋”的食谱,却声称:“嗯,从技术上讲,冰淇淋也是食物,所以我遵循了规则!”
- VeriScale 将这些捣蛋鬼的食谱与 AI 的规则进行比对。如果 AI 的规则将冰淇淋接受为“热汤”,VeriScale 就会捕捉到这个缺陷。它会生成大量这类“抓把柄”的时刻。
第二步:“核心清单”(缩减)
现在,VeriScale 拥有了成千上万个这类棘手的测试用例。对每个 AI 运行所有这些测试将耗时极长且成本高昂。因此,它执行了一次“缩减”。
- 它问道:“在这 1000 个把戏中,哪些是最重要的?”
- 它保留那些能捕捉到最多错误的特定把戏,并剔除那些仅仅是重复的把戏。
- 最终结果是一个紧凑且极具挑战性的测试,它小到足以快速运行,却仍能捕捉到庞大列表所能发现的所有缺陷。
结果:“真相血清”
作者们在可用的最佳 AI 模型(如 GPT-5.5 等)上测试了这个新系统。
- 旧测试: AI 的得分高达 96% 或 98%。它们看起来像天才。
- VeriScale 测试: 当接受压力测试时,得分急剧下降。其中一个顶级模型的代码编写得分从 96% 降至 86%,而规范(规则)编写得分则从 68% 降至 44%。
核心启示
这篇论文表明,旧的测试在欺骗我们。它们高估了 AI 编写安全、正确代码的能力。新的"VeriScale"测试揭示出,虽然 AI 擅长编写看起来正确的代码,但在编写能捕捉所有可能错误的规则方面,它仍然非常糟糕。
他们还发布了这个新测试的两个版本:
- VERINAPLUS: 大规模、全功能的压力测试(比原始版本大 83 倍)。
- VERINALITE: “精简”版。它比原始版本大 14 倍,但利用“缩减”技巧使其快速且廉价,同时仍能捕捉到相同的错误。
简而言之:VeriScale 是一个工具,它能阻止我们被那些只知道如何通过简单测试的 AI 所愚弄。它迫使 AI 证明其能够应对奇怪、混乱且棘手的现实世界。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。