CodeHalu: Code Hallucinations in LLMs Driven by Execution-based Verification

2024年04月30日
  • 简介
    大型语言模型(LLMs)在代码生成领域取得了显著进展,为自动编程和开发人员提供了前所未有的支持。然而,LLMs有时会生成看似合理但未能满足预期要求或执行不正确的代码。这种编码领域中的幻觉现象尚未被探索。为了推进社区对LLMs中代码幻觉的理解和研究,我们提出了一种基于执行验证的幻觉定义方法,并首次介绍了代码幻觉的概念。我们将代码幻觉分为四种主要类型:映射、命名、资源和逻辑幻觉,每种类型又进一步分为不同的子类别,以更好地理解和解决LLMs在代码生成过程中面临的独特挑战。为了系统地评估代码幻觉,我们提出了一种动态检测算法,并构建了CodeHalu基准测试,其中包括来自699个任务的8,883个样本,以主动检测LLMs在编程过程中的幻觉现象。我们在这个基准测试中测试了16个流行的LLMs,以评估它们在代码生成过程中幻觉的频率和性质。研究结果揭示了LLMs在生成代码时准确性和可靠性方面的显著差异,突出了改进模型和训练方法以确保自动生成代码的功能正确性和安全性的迫切需要。本研究不仅对代码幻觉进行了分类和量化,还为基于LLMs的代码生成研究未来的改进提供了见解。CodeHalu基准测试和代码可在https://github.com/yuchen814/CodeHalu上公开获取。
  • 作者讲解
  • 图表
  • 解决问题
    探讨大型语言模型在代码生成中出现幻觉的现象,提出一个基于执行验证的定义方法,并将幻觉分为四种类型,为进一步理解和解决LLM在代码生成过程中遇到的挑战提供帮助。
  • 关键思路
    提出了代码幻觉的概念,并通过动态检测算法和CodeHalu基准测试对16个流行的LLM进行测试,发现LLM在生成代码时出现显著的准确性和可靠性差异,需要改进模型和训练方法以确保自动生成的代码的功能正确性和安全性。
  • 其它亮点
    论文提出了一个新的概念——代码幻觉,将幻觉分为四种类型,提出了一个动态检测算法,并构建了CodeHalu基准测试,共包含8,883个样本和699个任务,用于检测LLM在代码生成过程中出现的幻觉现象。实验结果表明,LLM在生成代码时存在显著的准确性和可靠性差异,需要改进模型和训练方法以确保自动生成的代码的功能正确性和安全性。CodeHalu基准测试和代码已经公开发布。
  • 相关研究
    相关研究包括但不限于:1.《DeepCoder: Learning to Write Programs》;2.《Code2Vec: Learning Distributed Representations of Code》;3.《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问