← 最新论文
🤖 machine learning

Towards Functional Correctness of Large Code Models with Selective Generation

本文提出了“FuzzEval”,这是一种利用动态生成的单元测试来使选择性代码生成器能够放弃不确定输出的范式,从而在理论上控制错误发现率并提高大型代码模型的函数正确性。

原作者: Jaewoo Jeong, Taesoo Kim, Sangdon Park

发布于 2026-06-16
📖 1 分钟阅读☕ 轻松阅读

原作者: Jaewoo Jeong, Taesoo Kim, Sangdon Park

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你有一个非常有才华但又有点过度自信的机器人助手,它的工作是为你编写计算机代码。你要求它:“写一个程序来对一组名字进行排序,”它便兴高采烈地吐出了一个解决方案。但问题在于,有时这个机器人会产生“幻觉”。它写的代码看起来像是能运行,但当你实际运行时,它可能会崩溃、给出错误答案,或者做出完全出乎意料的行为。

在软件世界中,这是非常危险的。你不能盲目地信任这个机器人。

这篇论文介绍了一种针对这些代码编写机器人的全新“安全检查员”系统。与其仅仅接受机器人生成的任何代码,该系统更像是一个严格的质量控制经理,它会说:“我只让好的代码通过;如果我不确定,我会承认我不知道。”

以下是该系统的运作方式,通过简单的概念进行拆解:

1. 问题所在:“黑盒”代码

通常,当我们检查一段代码是否优秀时,我们会依赖于一些预先写好的测试(就像一份清单)。但对于复杂的问题,清单可能会遗漏隐藏的漏洞。这就像是通过只检查汽车轮胎来判断汽车是否安全,却忽略了引擎。论文指出,由于代码如此复杂且对人类而言并不“自然”,仅凭肉眼很难判断两段代码是否在做完全相同的事情。

2. 解决方案:“模糊测试”机

为了解决这个问题,作者使用了一个名为**模糊测试(Fuzzing)**的工具。想象一下,你有一台机器,它接收一段代码,然后向其投掷数百万个随机的、奇怪的、极端的输入,只为了看看它是否会崩溃。

  • 类比: 这就像是一个桥梁压力测试仪。与其只让一辆车驶过,不如让机器投掷沙袋、重型卡车,甚至是大象,以随机的模式横跨桥面,看看桥梁是否能承受住。
  • 结果: 这台机器会自动生成数千个“单元测试”(用于检查代码的小场景),而这些场景是机器人从未见过的。

3. “选择性生成器”:诚实的机器人

论文提出了一种使用代码编写机器人的新方法。我们增加了一个“守门员”步骤。

  • 流程: 机器人尝试编写代码。然后,“模糊测试机”立即针对数千个随机场景对其进行测试。
  • 决策:
    • 如果代码以高置信度通过了测试,守门员会说:“继续,这段代码很好!” 并将代码交给您。
    • 如果代码失败或测试结果过于模糊,守门员会说:“我不知道,” 并拒绝提供代码。

这被称为选择性生成(Selective Generation)。机器人被允许在不确定时说“我不知道”,而不是通过猜测并给你一段糟糕的代码。

4. 保障机制:“错误发现率”

论文中最令人兴奋的部分是守门员背后的数学原理。作者不仅仅是希望系统有效,他们还从数学上证明了这一点。

  • 他们设定了一条规则:“我们要确保在我们交付的代码中,出错的代码比例低于 30%(或你选择的任何数字)。”
  • 他们称之为错误发现率(False Discovery Rate, FDR)
  • 该系统旨在确保,即使机器人的表现很差,守门员也会极其严格地过滤掉坏代码,从而保证你最终收到的代码批次在很大程度上是正确的。

5. FuzzEval:更好的成绩单

最后,作者建议未来使用这种相同的“模糊测试机”来为代码模型评分。与其仅仅检查代码是否通过了几个标准测试(比如只有 5 道题的学校考试),他们提议使用“模糊测试机”来生成数百个随机测试。这能为代码 AI 提供一份更准确、更严苛的成绩单。他们将这种新的评分方法称为 FuzzEval

总结

简而言之,这篇论文教会了我们如何为 AI 代码生成器构建一个安全网。通过使用“压力测试”机(模糊测试)自动创建数百万个测试,我们可以创建一个这样的系统:

  1. 在代码到达你手中之前将其过滤掉
  2. 当不确定时承认无知(“我不知道”),而不是通过幻觉给出一个错误的答案。
  3. 在数学上保证你拿到的代码是安全的。

它将一种“猜测并希望”的方法转变为一种“测试并验证”的方法,使 AI 生成的代码在实际应用中更加可靠。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →