中文

通过神经-符号编辑文法利用Transformer修复缺陷

机器学习 2022-04-19 v1 人工智能 编程语言 软件工程

摘要

我们提出 NSEdit(神经-符号编辑),一种基于 Transformer 的新型代码修复方法。在仅给定含缺陷源代码的情况下,NSEdit 预测可修复缺陷的编辑序列。该编辑文法被表述为正则语言,Transformer 将其用作神经-符号脚本接口以生成编辑程序。我们修改 Transformer 并添加指针网络以选择编辑位置。训练一组重排序器对束搜索生成的编辑序列重排序。我们在验证集上微调重排序器以减少过拟合。NSEdit 在多个代码修复数据集上评估,并在 CodeXGLUE 基准的 Tufano small 数据集上取得新的最优准确率(24.04%24.04\%)。当程序跨软件包变化且缺陷程序为具体实例时,NSEdit 表现稳健。我们对方法做了详细分析并论证了各组件的有效性。

关键词

引用

@article{arxiv.2204.06643,
  title  = {Fix Bugs with Transformer through a Neural-Symbolic Edit Grammar},
  author = {Yaojie Hu and Xingjian Shi and Qiang Zhou and Lee Pike},
  journal= {arXiv preprint arXiv:2204.06643},
  year   = {2022}
}

备注

ICLR 2022 Deep Learning for Code workshop