脱离上下文:局部上下文在神经程序修复中有多重要?
软件工程
2023-12-11 v1 人工智能
摘要
深度学习源代码模型已非常成功地应用于自动程序修复问题。一个长期存在的问题是当前模型的输入窗口较小,通常无法完全容纳错误修复所需的上下文代码(例如,项目的方法或类声明)。相反,输入通常仅限于局部上下文,即错误位置上下方的代码行。在这项工作中,我们研究了这种局部上下文对修复成功的重要性:需要多少局部上下文?错误位置之前还是之后的上下文更重要?局部上下文如何与错误类型相关联?为了回答这些问题,我们在三个数据集和两种编程语言上,以多种不同的局部上下文配置训练和评估了 Transformer 模型。我们的结果表明,总体修复成功率随局部上下文大小的增加而提高(尽管并非对所有错误类型都如此),并证实了常见做法,即输入窗口的大约 50-60% 应用于错误之前的上下文。我们的结果不仅对研究基于 Transformer 的 APR 工具的研究人员有意义,而且对必须决定在其数据集中包含什么上下文以及包含多少上下文的基准和数据集创建者也有意义。
引用
@article{arxiv.2312.04986,
title = {Out of Context: How important is Local Context in Neural Program Repair?},
author = {Julian Aron Prenner and Romain Robbes},
journal= {arXiv preprint arXiv:2312.04986},
year = {2023}
}