An Empirical Analysis of Static Analysis Methods for Detection and Mitigation of Code Library Hallucinations

📄 arXiv: 2604.07755v2 📥 PDF

作者: Clarissa Miranda-Pena, Andrew Reeson, Cécile Paris, Josiah Poon, Jonathan K. Kummerfeld

分类: cs.CL, cs.SE

发布日期: 2026-04-09 (更新: 2026-04-10)


💡 一句话要点

利用静态分析检测和缓解代码库幻觉问题,揭示其能力上限

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 大型语言模型 库幻觉 静态分析 代码质量 软件安全

📋 核心要点

  1. 大型语言模型在代码生成中存在库幻觉问题,即生成使用不存在库特性的代码,严重影响代码质量。
  2. 论文核心思想是探索静态分析工具在检测和缓解代码库幻觉方面的能力和局限性,评估其有效性。
  3. 实验结果表明,静态分析能检测部分幻觉,但存在无法捕获的情况,揭示了静态分析解决该问题的上限。

📝 摘要(中文)

大型语言模型在生成代码时,尤其是在使用库时,仍然存在幻觉问题。在需要使用库的NL-to-code基准测试中,LLM生成的代码在8.1-40%的响应中使用了不存在的库功能。本文分析了静态分析工具在检测和缓解幻觉方面的潜力,包括它们能解决什么问题以及不能解决什么问题。研究发现,静态分析工具可以检测到16-70%的错误,以及14-85%的库幻觉,性能因LLM和数据集而异。通过手动分析,识别了静态方法无法捕获的情况,这给出了其潜力的上限,范围为48.5%到77%。总的来说,本文表明静态分析方法是解决某些形式幻觉的廉价方法,并量化了它们距离完全解决问题始终存在的差距。

🔬 方法详解

问题定义:论文旨在解决大型语言模型在代码生成过程中出现的库幻觉问题,即模型生成了使用不存在的库函数或属性的代码。现有方法,如动态测试,成本较高且覆盖率有限,而静态分析作为一种低成本的替代方案,其有效性和局限性尚不明确。

核心思路:论文的核心思路是利用静态分析工具来检测代码中的库幻觉。静态分析通过分析代码的结构和语义,无需实际执行代码,即可发现潜在的错误和不一致性。通过评估不同静态分析工具在检测库幻觉方面的性能,可以了解其在解决该问题上的潜力。

技术框架:论文采用实证分析的方法,首先在NL-to-code基准测试中,评估LLM生成代码中库幻觉的比例。然后,使用不同的静态分析工具对生成的代码进行分析,统计其检测到的错误和幻觉数量。最后,通过人工分析,识别静态分析工具无法捕获的幻觉类型,从而确定静态分析方法解决该问题的上限。

关键创新:论文的关键创新在于对静态分析工具在检测和缓解代码库幻觉方面的能力进行了全面的实证分析。通过量化静态分析工具的检测率和错误类型,揭示了其在解决该问题上的优势和局限性。此外,论文还通过人工分析,确定了静态分析方法解决该问题的理论上限。

关键设计:论文的关键设计包括:1) 选择具有代表性的NL-to-code基准测试数据集;2) 选取多种常用的静态分析工具;3) 定义清晰的库幻觉类型;4) 设计合理的评估指标,如检测率和错误类型;5) 进行细致的人工分析,以确定静态分析的局限性。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

研究表明,静态分析工具能够检测到16-70%的错误,以及14-85%的库幻觉,具体性能取决于所使用的LLM和数据集。人工分析揭示了静态分析无法捕获的幻觉类型,确定了其解决该问题的上限为48.5%到77%。这些数据量化了静态分析在缓解代码库幻觉方面的有效性和局限性。

🎯 应用场景

该研究成果可应用于提升代码生成工具的可靠性和安全性,例如集成到IDE或代码审查工具中,自动检测和修复库幻觉问题。这有助于提高软件开发效率,减少因幻觉代码导致的错误和漏洞,并降低维护成本。未来可进一步探索结合静态分析与其他技术(如动态测试、形式化验证)的混合方法,以更全面地解决代码生成中的幻觉问题。

📄 摘要(原文)

Despite extensive research, Large Language Models continue to hallucinate when generating code, particularly when using libraries. On NL-to-code benchmarks that require library use, we find that LLMs generate code that uses non-existent library features in 8.1-40% of responses. One intuitive approach for detection and mitigation of hallucinations is static analysis. In this paper, we analyse the potential of static analysis tools, both in terms of what they can solve and what they cannot. We find that static analysis tools can detect 16-70% of all errors, and 14-85% of library hallucinations, with performance varying by LLM and dataset. Through manual analysis, we identify cases a static method could not plausibly catch, which gives an upper bound on their potential from 48.5% to 77%. Overall, we show that static analysis methods are cheap method for addressing some forms of hallucination, and we quantify how far short of solving the problem they will always be.