Uncovering Weaknesses in Neural Code Generation

2024年07月13日
  • 简介
    代码生成是从提示生成源代码的任务,随着预训练大型语言模型(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,这是由于模糊或复杂的提示而加剧的挑战。我们的发现旨在引导研究人员解决代码生成中的特定弱点和挑战。此外,我们的注释可以为详细分析提供有针对性的基准子集。
  • 图表
  • 解决问题
    本论文旨在评估五种最先进的预训练大语言模型在代码生成任务中的表现,并通过主题分析提出九种弱点分类,以填补当前缺乏的对基准和生成代码的综合分类的空白。
  • 关键思路
    论文通过对五种预训练大语言模型在三个流行数据集上的评估,发现准确的提示、缺失的关键语义和不合适的API使用是当前代码生成任务中的主要弱点。此外,论文提出的弱点分类可以为后续的详细分析提供有针对性的基准子集。
  • 其它亮点
    论文使用了五种最先进的预训练大语言模型,并在三个流行数据集上进行了评估。论文提出了九种弱点分类,并发现了准确的提示、缺失的关键语义和不合适的API使用是当前代码生成任务中的主要弱点。此外,论文的弱点分类可以为后续的详细分析提供有针对性的基准子集。
  • 相关研究
    最近在这个领域中,还有一些相关的研究,如《Towards Learning to Generate Code with Neural Networks》、《Code Generation Using Transformer with Pointer Sentinel Mixture Model》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论