本文是LLM系列文章,针对《Bugs in Large Language Models Generated Code:An Empirical Study》的翻译。
摘要
用于代码的大型语言模型(LLM)最近得到了极大的关注。他们可以根据提供的提示用不同的编程语言生成代码,实现软件工程(SE)中一个长期的梦想,即自动生成代码。与人工编写的代码类似,LLM生成的代码很容易出现错误,而且这些错误尚未得到社区的彻底检查。鉴于SE活动中越来越多地采用基于LLM的代码生成工具(例如GitHub Copilot),了解LLM生成的代码中包含的错误的特征至关重要。本文研究了从使用三种主要LLM(即CodeGen、PanGu Coder和Codex)生成的代码中收集的333个错误的样本,并确定了以下10种不同的错误模式:错误解释、语法错误、愚蠢错误、提示偏误代码、缺角情况、错误输入类型、幻觉对象、错误属性、不完整生成和非提示考虑。bug模式以分类法的形式呈现。通过对34名LLM从业者和研究人员的在线调查,验证了已识别的错误模式。受调查的参与者通常断言错误模式的重要性和普遍性。研究人员和从业者可以利用这些发现为LLM生成的代码开发有效的质量保证技术。这项研究揭示了LLM生成代码的独特特征。