论文
实践中不可靠? LLM 生成代码中错误的综合研究
Unreliable in Practice? A Comprehensive Study of Errors in LLM-Generated Code
摘要
大语言模型 (LLM) 被广泛用于编码,有报告表明人工智能现在生成的生产代码份额越来越大。研究表明,LLM 可以显着提高开发人员的工作效率,但他们仍然难以应对更复杂的编码任务。正如理解人类编写的代码中的错误模式对于提高软件质量至关重要一样,识别和描述 LLM 生成的代码中的错误对于设定现实的期望和设计缓解策略也至关重要。先前的研究范围有限,通常集中于单一语言、少量问题或有限的模型选择。因此,对于哪些错误是常见的以及哪些错误特定于某些模型或语言,仍然没有全面的了解。为了解决这些差距并更深入地了解 LLM 生成的代码的质量,我们分析了包含编译或运行时错误的 86,726 个代码示例的语料库。这些样本是由七个 LLM 跨四种编译语言生成的。我们使用 LLM 按错误的根本原因对错误进行分类,手动验证这些分类,并进行比较分析。然后使用这些标记数据通过模型、语言和问题难度来衡量错误发生率,以识别常见的错误模式。结果表明,尽管不同语言和模型的错误类型差异很大,但即使是最大的模型也经常会犯简单的错误。我们还观察到生成的代码通常会忽略基本的输入验证或内存安全检查,这可能导致溢出、资源耗尽或其他可靠性/安全问题。