CodeMirage: Hallucinations in Code Generated by Large Language Models

2024年08月14日
  • 简介
    大型语言模型(LLMs)在程序生成和无代码自动化方面显示出了很大的潜力。然而,LLMs容易产生幻觉,即它们生成的文本听起来似乎是正确的,但实际上是错误的。尽管最近有很多关于LLM文本生成中幻觉现象的研究,但代码生成中也可能出现类似的幻觉现象。有时生成的代码可能存在语法或逻辑错误,以及更高级的问题,例如安全漏洞、内存泄漏等等。考虑到LLMs在增强代码生成和开发效率方面的广泛应用,研究代码生成中的幻觉现象变得非常必要。据我们所知,这是第一次研究LLMs生成的代码中的幻觉现象。我们首先介绍了代码幻觉的定义和全面的代码幻觉类型分类。我们提出了第一个用于代码幻觉的基准数据集CodeMirage。该基准数据集包含了1,137个GPT-3.5生成的Python编程问题中的幻觉代码片段,这些问题来自于两个基础数据集——HumanEval和MBPP。然后,我们提出了代码幻觉检测的方法,并使用开源LLMs,如CodeLLaMA以及OpenAI的GPT-3.5和GPT-4模型,使用单次提示进行实验。我们发现GPT-4在HumanEval数据集上表现最佳,并且在MBPP数据集上与经过微调的CodeBERT基线具有可比性的结果。最后,我们讨论了各种减轻代码幻觉的策略,并总结了我们的工作。
  • 作者讲解
  • 图表
  • 解决问题
    研究代码生成中的幻觉问题,即代码生成过程中可能出现的语法、逻辑错误以及安全漏洞等问题。该问题尚未被充分研究。
  • 关键思路
    提出了代码幻觉的定义和分类方法,并构建了CodeMirage数据集来检测代码幻觉。使用开源的LLMs模型,如CodeLLaMA、OpenAI的GPT-3.5和GPT-4模型,通过一次性提示进行实验,发现GPT-4在HumanEval数据集上表现最佳,与MBPP数据集上的fine-tuned CodeBERT基线结果相当。
  • 其它亮点
    CodeMirage数据集包含1,137个由GPT-3.5生成的Python编程问题的代码片段,用于检测代码幻觉。论文讨论了几种缓解代码幻觉的策略,如使用多个模型进行生成、筛选和重构代码等。值得关注的是,该论文是第一篇研究代码生成中幻觉问题的论文。
  • 相关研究
    最近的相关研究包括《GPT-3: Generative Language Models for Code Generation》、《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

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

向作者提问