论文
拒绝不可能:大语言模型 中代码幻觉的分类和基准
Refusing the Impossible: A Taxonomy and Benchmark for Code Hallucination in Large Language Models
摘要
大语言模型 (LLM) 经常生成看起来合理但不符合现实的代码。该代码可能会导入不存在的包或声称实现违反已证明定理的算法,同时仍在编译和运行。我们将 \emph{代码幻觉} 作为 \emph{缺乏真实依据的生成} 进行研究,并将其与普通 \emph{代码错误}(其他有真实依据的程序中的错误)分开。我们提出了一个具有三个维度的分类法:\textbf{依据可靠性}(绝对违反普遍真理与\偶然或生态系统特定事实的相对捏造),\textbf{表现水平}(句法、语义或事实)和\textbf{行为}(从自信的捏造到退化的输出),组织成严重性排序。我们构建了一个 \textbf{adversarial} 套件,其中包含故意无法满足的任务,其中正确的响应是拒绝并将响应分类到我们的分类法下。该套件包含跨六种语言和 24 个子类别的 \textbf{270 个提示},与 \textbf{91 匹配的可解决控件}配对,并通过针对人类标签验证的两层协议来判断响应(82\% 一致,$κ{=}0.73$)。在 12 个开放权重代码和推理模型(4{,}332 个判断响应)中,模型在大约 60\% 的不可满足提示上生成无根据的代码,仅拒绝 27\%,同时错误地拒绝 0\% 的可解决控制。