论文

PROBE:大语言模型 中的基准代码生成

PROBE: Benchmarking Code Generation in Large Language Models

模型评测基准与评测资源

摘要

大语言模型 (LLM) 越来越多地用于日常软件工程任务,特别是自动代码生成。尽管它们被广泛采用,但这些模型仍然远非完美,因此系统和公平的评估对于了解它们的优点和局限性至关重要。在代码生成的背景下,现有的基准测试是有限的:它们通常针对单一编程语言并主要依赖于单元测试结果,同时忽略其他关键维度,例如生成的代码的整体质量及其与有效解决方案的接近程度。为了解决这些差距,我们引入了 PROBE,这是一个可扩展的基准框架,与之前的工作不同,它建立了一个基于多样化和明确定义的指标、代表性工作负载、各种提示模板和强大的实验程序构建的系统结构。在实践中,LLM 生成的代码会按照三个互补的维度进行评估:功能正确性、与有效解决方案的接近度以及代码质量,从而能够对性能进行全面评估。我们使用 PROBE 在五种编程语言的三种提示策略下评估四种开源模型和两种专有模型。我们通过对代码中常见错误的研究来进一步补充此分析,并提供具体示例,从而更清楚地了解 LLM 容易陷入困境的地方。我们的研究结果表明,虽然 LLM 取得了有希望的结果,但它们在解决更困难的问题时遇到了困难,并且在模型较小的情况下,使用可用于训练的编程语言较少,并且它们经常由于基本且容易避免的错误而失败,这些错误强调了自动生成代码的不可靠性。