Bugs in Large Language Models Generated Code: An Empirical Study

2024年03月13日
  • 简介
    近来,针对代码的大型语言模型(LLMs)引起了广泛关注。它们可以根据提供的提示生成不同编程语言的代码,实现了软件工程(SE)中长期以来的梦想,即自动代码生成。与人工编写的代码类似,LLM生成的代码容易出现错误,但这些错误尚未被社区全面研究。由于越来越多的基于LLM的代码生成工具(例如GitHub Copilot)被应用于软件工程活动中,因此了解LLM生成的代码中包含的缺陷特征至关重要。本文对使用三个主要LLMs(即CodeGen、PanGu-Coder和Codex)生成的代码中收集的333个缺陷样本进行了研究,并确定了以下10种独特的缺陷模式:误解、语法错误、愚蠢错误、提示偏见代码、遗漏角落案例、错误的输入类型、幻想对象、错误的属性、不完整生成和非提示考虑。这些缺陷模式以分类法的形式呈现。通过与34名LLM从业者和研究人员进行的在线调查,验证了所识别的缺陷模式。调查的参与者普遍认为这些缺陷模式的重要性和普遍性。研究人员和从业者可以利用这些发现开发有效的LLM生成代码的质量保证技术。本研究揭示了LLM生成代码的独特特征。
  • 图表
  • 解决问题
    本论文旨在研究利用大型语言模型(LLMs)自动生成的代码中存在的缺陷模式,并提出有效的质量保证技术,以解决这些缺陷。
  • 关键思路
    通过对三个主要的LLMs生成的代码中的333个错误进行研究,本文提出了10种独特的缺陷模式,并将其呈现为一种分类法。这些缺陷模式的验证使用了一个在线调查,得到了34名LLM从业者和研究人员的支持。
  • 其它亮点
    本文提出了一种新的研究方向,即LLM生成的代码缺陷模式。研究结果可以帮助研究人员和从业者开发有效的质量保证技术。实验使用了三个流行的LLMs,收集了333个错误,并通过在线调查验证了研究结果。
  • 相关研究
    在近期的相关研究中,也有一些关于LLMs生成的代码缺陷的研究。例如:“Learning to Generate Code with Sparse Directives”,“Code Completion with Transformer”,“CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing”。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论