中文

通过将树输入 Transformer 实现代码预测

软件工程 2023-06-02 v4 机器学习

摘要

我们提升了自动补全系统中代码预测(下一个 token 预测)的准确度水平。首先,我们报告称,使用最近提出的 Transformer 架构,即使是开箱即用也优于以往用于代码预测的神经与非神经系统。然后我们表明,通过使 Transformer 架构感知代码的语法结构,我们进一步扩大了基于 Transformer 的系统优于以往系统的幅度。由此,它的准确度比基于 RNN 的系统(类似于 Hellendoorn et al. 2018)高出 18.3%,比 Deep3 系统(Raychev et al 2016)高出 14.1%,比适配于代码预测的 Code2Seq(Alon et al., 2018)高出 14.4%。我们在论文中提出了几种将代码结构传递给 Transformer 的方法,而 Transformer 本质上是为处理序列数据而构建的。我们在一个标准 Python 数据集以及一个 Facebook 内部 Python 语料库上,对我们的提案及替代设计选择进行了全面的实验评估。我们的代码和数据准备流程将以开源形式提供。

关键词

引用

@article{arxiv.2003.13848,
  title  = {Code Prediction by Feeding Trees to Transformers},
  author = {Seohyun Kim and Jinman Zhao and Yuchi Tian and Satish Chandra},
  journal= {arXiv preprint arXiv:2003.13848},
  year   = {2023}
}