Hallucination by Code Generation LLMs: Taxonomy, Benchmarks, Mitigation, and Challenges

📄 arXiv: 2504.20799v2 📥 PDF

作者: Yunseo Lee, John Youngeun Song, Dongsun Kim, Jindae Kim, Mijung Kim, Jaechang Nam

分类: cs.SE, cs.AI

发布日期: 2025-04-29 (更新: 2025-05-13)

备注: 15 pages, 4 figures


💡 一句话要点

综述代码生成LLM的幻觉问题:分类、评测、缓解与挑战

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

关键词: 代码生成 大型语言模型 幻觉 软件开发 代码审查 自动化测试 无代码/低代码 综述

📋 核心要点

  1. 代码生成LLM容易产生幻觉代码,难以识别和修复,尤其是在特定执行路径下,导致代码库中潜在的错误。
  2. 该综述旨在对CodeLLM生成的幻觉进行分类,分析现有基准和缓解策略,并识别当前面临的挑战。
  3. 通过对现有研究的分析,该综述为未来检测和消除CodeLLM幻觉的研究方向提供了指导。

📝 摘要(中文)

大型语言模型(LLM)在代码生成方面的技术突破使其能够流畅地生成源代码。软件开发者经常利用通用和代码专用LLM来修改现有代码,甚至从头开始生成整个函数。这些能力在无代码或低代码环境中也很有用,在这些环境中,人们可以在没有技术背景的情况下编写程序。然而,由于其内部设计,LLM容易产生幻觉,即不正确、无意义且无法证明的信息,但很难识别其存在。这个问题也发生在生成源代码时。一旦产生幻觉代码,用户通常很难识别和修复它,尤其是在特定执行路径下才能识别这些幻觉时。因此,幻觉代码可能会在代码库中未被注意到。本综述调查了最近关于CodeLLM生成的幻觉的研究和技术。我们对CodeLLM生成的代码中的幻觉类型进行分类,回顾现有的基准和缓解策略,并确定开放的挑战。基于这些发现,本综述概述了检测和消除CodeLLM产生的幻觉的进一步研究方向。

🔬 方法详解

问题定义:论文旨在解决代码生成LLM中普遍存在的幻觉问题。现有方法难以有效识别和修复这些幻觉,尤其是在复杂的代码库和特定的执行路径下,这可能导致潜在的软件错误和安全漏洞。现有方法缺乏对幻觉类型的系统分类和全面的评估基准。

核心思路:论文的核心思路是对代码生成LLM产生的幻觉进行系统性的分类,并分析现有的基准测试和缓解策略。通过对现有研究的深入分析,论文旨在识别当前面临的挑战,并为未来的研究方向提供指导。这种分类和分析有助于更好地理解幻觉的本质,并为开发更有效的检测和缓解方法奠定基础。

技术框架:该综述没有提出新的技术框架,而是对现有研究进行整理和分析。其主要流程包括:1) 对代码生成LLM的幻觉类型进行分类;2) 回顾现有的幻觉检测基准和缓解策略;3) 识别当前面临的开放性挑战;4) 提出未来研究方向。

关键创新:该综述的关键创新在于对代码生成LLM的幻觉进行了系统性的分类,并对现有研究进行了全面的回顾和分析。这种分类和分析有助于研究人员更好地理解幻觉的本质,并为开发更有效的检测和缓解方法提供指导。此外,该综述还识别了当前面临的开放性挑战,并提出了未来研究方向,为该领域的研究提供了新的思路。

关键设计:该综述没有涉及具体的参数设置、损失函数或网络结构等技术细节,而是侧重于对现有研究的整理和分析。其关键设计在于对幻觉类型的分类框架,以及对现有基准测试和缓解策略的评估标准。

📊 实验亮点

该综述系统地整理了代码生成LLM中幻觉问题的研究现状,对幻觉类型进行了分类,并分析了现有基准和缓解策略。通过对现有研究的深入分析,该综述识别了当前面临的开放性挑战,并提出了未来研究方向,为该领域的研究提供了新的思路。

🎯 应用场景

该研究成果可应用于软件开发、代码审查、自动化测试等领域。通过识别和消除代码生成LLM中的幻觉,可以提高代码质量、降低软件错误率、提升开发效率。此外,该研究还有助于推动无代码/低代码技术的发展,使非技术人员也能安全可靠地生成代码。

📄 摘要(原文)

Recent technical breakthroughs in large language models (LLMs) have enabled them to fluently generate source code. Software developers often leverage both general-purpose and code-specialized LLMs to revise existing code or even generate a whole function from scratch. These capabilities are also beneficial in no-code or low-code contexts, in which one can write programs without a technical background. However, due to their internal design, LLMs are prone to generating hallucinations, which are incorrect, nonsensical, and not justifiable information but difficult to identify its presence. This problem also occurs when generating source code. Once hallucinated code is produced, it is often challenging for users to identify and fix it, especially when such hallucinations can be identified under specific execution paths. As a result, the hallucinated code may remain unnoticed within the codebase. This survey investigates recent studies and techniques relevant to hallucinations generated by CodeLLMs. We categorize the types of hallucinations in the code generated by CodeLLMs, review existing benchmarks and mitigation strategies, and identify open challenges. Based on these findings, this survey outlines further research directions in the detection and removal of hallucinations produced by CodeLLMs.