中文

揭示神经代码生成中的弱点

软件工程 2024-07-18 v2

摘要

代码生成是指从提示中生成源代码的任务,随着预训练大型语言模型(PLMs)的出现,已取得显著进展。尽管如此,关于基准和生成代码的弱点综合分类仍不完整,这可能导致社区在已知问题上聚焦,而忽视潜在的研究方向。我们的系统性研究旨填补这一空白,通过评估五种最先进的 PLMs:三大型模型(70 亿参数 CodeGen2.5、60 亿参数 CodeGeeX2 以及 GPT-4 Turbo)和两个小型模型(1.1 亿参数 UnixCoder 和 2.2 亿参数 CodeT5 base),分别在三个流行数据集上进行测试:CoNaLa、HumanEval Plus 和 DS-1000。我们采用基于匹配的度量方式和基于执行的度量方式评估生成代码的质量,然后进行主题分析,以发展九类弱点的分类法。我们剖析了大型模型和小型模型中的弱点分布,应用广泛的方法论,包括模型特定的分析以及在模型之间的整体分析(联合和交叉)。我们的研究发现:1. 在 CoNaLa 数据集中,不准确的提示是显著问题,导致所有大型模型在 26.84% 的案例中失败,小型模型的失败率更高,达到 40%;2. 漏掉关键语义是普遍问题,一个或多个大型模型在 CoNaLa 任务中遗漏关键语义占 65.78%,在 HumanEval Plus 中为 66.09%,在 DS-1000 中为 80.51%;3. 所有模型在正确使用 API 方面都面临挑战,尤其是当提示模糊或复杂时。这一发现旨在引导研究者关注代码生成中的具体弱点和挑战。此外,我们的标注可为详细分析提供针对性的基准子集。

关键词

引用

@article{arxiv.2407.09793,
  title  = {Uncovering Weaknesses in Neural Code Generation},
  author = {Xiaoli Lian and Shuaisong Wang and Jieping Ma and Fang Liu and Xin Tan and Li Zhang and Lin Shi and Cuiyun Gao},
  journal= {arXiv preprint arXiv:2407.09793},
  year   = {2024}
}