Delulu: A Verified Multi-Lingual Benchmark for Code Hallucination Detection in Fill-in-the-Middle Tasks
本文介绍了 Delulu,这是一个经过严格验证的多语言基准测试,包含 1,951 个经对抗性精心构建的样本,揭示了最先进的代码生成模型在“中间填充”任务中持续存在产生看似合理却错误的幻觉的脆弱性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在聘请一位非常聪明但略显过度自信初级程序员来协助你编写代码。这位程序员擅长猜测句子中的下一个词,但有时,当他们不知道答案时,就会编造一些听起来完美的内容。
这篇论文介绍了一种名为DELULU的新“考试”,旨在捕捉这些被称为幻觉的编造答案,特别是当程序员在代码片段的中间进行填充时(这项任务被称为“中间填充”)。
以下是使用简单类比对这篇论文的拆解:
1. 问题:自信的骗子
在编码人工智能的世界里,模型通常通过测试它们能否从头开始编写整个函数来评估。但在现实世界中,AI 助手(如 GitHub Copilot)主要通过查看缺口前后的代码并填充中间部分来工作。
问题在于,这些 AI 就像自信的骗子。它们可能会编造一个不存在的库,调用一个不存在的函数,或使用一个尚未定义的变量名。
- 陷阱:代码在人类眼中看起来完美无缺(语法正确)。它读起来像正常的句子。但当你尝试运行它时,它会崩溃,因为 AI 编造了一个事实。
- 目标:作者想知道:当前的 AI 模型能否可靠地避免这些谎言?如果它们确实撒谎了,其他 AI 模型能否识破这些谎言?
2. 解决方案:"DELULU"考试
作者构建了一个名为DELULU的基准(测试集)。这个名字是对网络俚语“妄想(delusional)”的谐音双关,因为这些 AI 幻觉往往极具说服力。
将 DELULU 想象为一个为 AI 模型设下的巨型自动化陷阱。
- 设置:他们从互联网上获取真实代码,并创建了 1,951 个“陷阱”。
- 陷阱:对于每一段正确的代码(“黄金”答案),他们使用超级智能 AI 创建了一个“幻觉”版本。这个虚假版本仅改变了一个微小的地方使其出错,但保持其看起来合理。
- 示例:将真实的导入语句
from pandas import read_csv改为虚假的from pandas import read_csvs。
- 示例:将真实的导入语句
- 四种谎言类型:该考试专注于 AI 出错的四种特定方式:
- 方法:编造函数名(例如,当该函数不存在时,使用
df.remove_nulls())。 - 参数:添加不存在的设置(例如,当函数不接受颜色参数时,使用
print(text, color="blue"))。 - 未定义变量:使用从未创建的名称。
- 导入:尝试加载不存在的软件包。
- 方法:编造函数名(例如,当该函数不存在时,使用
3. 如何构建考试(“对抗性流水线”)
他们并非凭空猜测问题,而是建立了一个严格的工厂,以确保问题具有难度且答案是真实的。
- 生成:AI 生成虚假的、撒谎的代码。
- “法官”小组:四个不同的超级 AI 充当老师来批改这些虚假代码。如果老师无法区分谎言与真相,该问题就被保留;如果老师轻易识破了谎言,该问题就被丢弃。
- “现实检查”(Docker):这是最重要的部分。他们不仅信任老师,还将每一段代码片段放入**虚拟沙箱(Docker 容器)**中并尝试运行它。
- 如果“黄金”代码成功运行,则保留。
- 如果“幻觉”代码因考试所针对的确切错误(如“文件未找到”或“变量未定义”)而崩溃,则保留。
- 如果虚假代码实际上没有崩溃,则被丢弃。
- 人工审查:最后,人类专家审查剩余的问题,以确保它们不过于简单或存在偏见。
4. 结果:AI 仍在挣扎
作者在该考试上测试了 11 种不同的 AI 模型(从小型到超大型)。
- 得分:即使是最好的 AI 模型,也只有约**84.5%**的答案正确。这意味着它仍然在大约每 6 个问题中就有 1 个掉进了陷阱。
- 最难的陷阱:“导入”谎言(编造虚假软件包)是 AI 最难避免的。这就像要求它们背诵现存所有软件库的电话簿;它们不断猜测听起来真实但实际不存在的名称。
- 检测问题:他们还提出了一个问题:“AI 能否充当代码审查员并识破这些谎言?”即使是聪明的 AI 审查员,也仅能识破约**92%**的谎言。这意味着仍然存在谎言可以溜走的空隙。
5. 为什么这很重要
论文得出结论,这是一个根本性问题,而不仅仅是某个特定 AI 模型的缺陷。
- 不仅仅是规模问题:增大 AI 规模有所帮助,但并不能完全解决问题。
- 不仅仅是训练问题:不同系列的 AI 模型都在同一类型的谎言上遇到了困难。
- 启示:我们不能依赖 AI 编写代码而不进行检查,因为即使是最好的 AI 也仍然“妄想”到足以编造导致程序崩溃的事实。
简而言之:DELULU 是一个严谨的、多语言的测试,证明了当前的 AI 代码助手仍然容易编造看似真实但在尝试运行时会导致崩溃的事实。该论文提供了工具(测试和“沙箱”容器),供开发者衡量并改进这一特定弱点。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。