4 个月前

通过神经-符号编辑语法修复Transformer中的错误

通过神经-符号编辑语法修复Transformer中的错误

摘要

我们介绍了一种新的基于Transformer的代码修复方法——NSEdit(神经-符号编辑)。仅给定包含错误的源代码,NSEdit能够预测出可以修复这些错误的编辑序列。编辑语法被形式化为一种正则语言,Transformer利用其作为神经-符号脚本接口来生成编辑程序。我们对Transformer进行了修改,增加了一个指针网络以选择编辑位置。训练了一个重排序器集合来重新排列通过束搜索生成的编辑序列。我们在验证集上对重排序器进行微调,以减少过拟合现象。NSEdit在多个代码修复数据集上进行了评估,并在CodeXGLUE基准测试中的Tufano小数据集上达到了新的最先进准确率(24.04%)。当程序从一个包变化到另一个包以及当有错误的程序具体化时,NSEdit表现出较强的鲁棒性。我们对所提出的方法进行了详细分析,并展示了每个组件的有效性。

基准测试

基准方法指标
code-repair-on-codexglue-bugs2fixNSEdit
Accuracy (medium): 13.87
Accuracy (small): 24.04

用 AI 构建 AI

从想法到上线——通过免费 AI 协同编程、开箱即用的环境和市场最优价格的 GPU 加速您的 AI 开发

AI 协同编程
即用型 GPU
最优价格
立即开始

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
通过神经-符号编辑语法修复Transformer中的错误 | 论文 | HyperAI超神经