Skip to main content
QUICK REVIEW

[论文解读] An Empirical Comparison of Pre-Trained Models of Source Code

Changan Niu, Chuanyi Li|arXiv (Cornell University)|Feb 8, 2023
Software Engineering Research被引用 7
一句话总结

本文首次对19种源代码预训练模型在13项软件工程任务上进行了系统的实证比较。研究采用标准化设置评估模型性能,识别出影响性能的关键架构与预训练策略因素,并发现基于Transformer(TF)的模型在代码理解与生成任务上均优于基于编码器(TE)的模型,挑战了以往关于模型架构类型优越性的假设。

ABSTRACT

While a large number of pre-trained models of source code have been successfully developed and applied to a variety of software engineering (SE) tasks in recent years, our understanding of these pre-trained models is arguably fairly limited. With the goal of advancing our understanding of these models, we perform the first systematic empirical comparison of 19 recently-developed pre-trained models of source code on 13 SE tasks. To gain additional insights into these models, we adopt a recently-developed 4-dimensional categorization of pre-trained models, and subsequently investigate whether there are correlations between different categories of pre-trained models and their performances on different SE tasks.

研究动机与目标

  • 通过在多样化的软件工程任务上进行系统性实证评估,推进对源代码预训练模型(CodePTMs)的理解。
  • 利用四维分类框架,探究CodePTM类别与不同SE任务性能之间的相关性。
  • 识别出在多个下游任务中实现最佳性能的有效预训练策略、模态(如自然语言、代码结构)及架构选择。

提出的方法

  • 本研究使用标准化数据集和评估指标,在13项标准SE任务上评估了19种近期开发的CodePTMs。
  • 应用四维分类框架对CodePTMs进行分类,以分析其在架构与预训练策略上的差异。
  • 所有模型均在相同的超参数设置下进行微调,以确保在不同任务间比较的公平性。
  • 采用显著性检验来验证不同模型之间性能差异的统计显著性。
  • 作者重新实现或重新收集了数据集与模型,以确保可复现性,并最大限度减少与原始实现的偏差。
  • 分析包括对模态(如自然语言、代码结构)和预训练任务(如MLM、DAE、MASS)的消融研究,以评估其对性能的影响。

实验结果

研究问题

  • RQ1在多样化的SE任务中,不同CodePTM架构(如基于TF的模型与基于TE的模型)的性能如何比较?
  • RQ2在预训练过程中引入自然语言(NL)、代码结构或两者结合,对下游任务性能有何影响?
  • RQ3哪些预训练任务(如MLM、DAE、MASS)在不同类型的SE任务中能带来最强的性能表现?
  • RQ4在多种编程语言上进行预训练的模型是否相较于单语言预训练模型具有稳定的性能优势?
  • RQ5预训练策略的选择是否与代码生成任务和代码理解任务的性能表现存在相关性?

主要发现

  • 基于Transformer(TF)的模型(如CodeBERT、GraphCodeBERT)在代码理解与代码生成任务上均优于基于编码器(TE)的模型(如BERT、RoBERTa),这与以往认为TE-based模型更优越的假设相悖。
  • 在预训练过程中使用自然语言(NL)显著提升了大多数任务的性能,尤其是在代码到代码检索与代码摘要任务中表现尤为突出。
  • 如DAE、MASS和MNG等预训练任务对下游性能有显著积极影响,尤其在代码生成与代码翻译任务中效果明显。
  • 引入代码结构(如抽象语法树,ASTs)可提升克隆检测与代码检索等任务的性能,尤其当与自然语言结合时效果更佳。
  • 没有单一的CodePTM在所有任务上均达到最先进性能;模型选择应基于任务特性,不同模型在不同类型任务中表现各异。
  • MLM及其变体在多个任务中持续表现出色,表明其在捕捉代码的语法与语义特征方面具有高度有效性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。