利用领域适应改进自动程序修复
软件工程
2023-01-13 v1 人工智能
机器学习
摘要
自动程序修复(APR)被定义为通过自动化工具修复源代码中的错误/缺陷的过程。近年来,通过利用最先进的自然语言处理(NLP)技术,APR工具取得了可喜的成果。诸如 TFix 和 CodeXGLUE 之类的 APR 工具将文本到文本 Transformer 与特定于软件的技术相结合,目前表现优于其他替代方案。然而,在大多数 APR 研究中,训练集和测试集是从同一组项目中选取的。但实际上,APR 模型应当能够泛化到新的、不同的项目。因此,存在一种潜在风险:当新项目或其错误的特征与训练集不同时(领域偏移),报告的具有高效性的 APR 模型可能会表现不佳。在本研究中,我们首先定义并测量了自动程序修复中的领域偏移问题。然后,我们提出了一个领域适应框架,可以为给定的目标项目适应 APR 模型。我们使用两种最先进的领域适应工具(TFix 和 CodeXGLUE)和两种 APR 模型,对来自 19 个项目的 611 个错误进行了三种领域适应方法(FullFineTuning、TuningWithLightWeightAdapterLayers 和 CurriculumLearning)的实证研究。结果表明,我们提出的框架可以将 TFix 的有效性提高 13.05%,将 CodeXGLUE 的有效性提高 23.4%。本研究的另一项贡献是提出了一种数据合成方法,以解决 APR 中标记数据缺乏的问题。我们利用 Transformer 创建了一个错误生成器模型。我们使用生成的合成数据在没有数据的项目上对 TFix 和 CodeXGLUE 进行领域适应(零样本学习),结果使 TFix 和 CodeXGLUE 的平均改进分别达到了 5.76% 和 24.42%。
引用
@article{arxiv.2212.11414,
title = {Improving Automated Program Repair with Domain Adaptation},
author = {Armin Zirak and Hadi Hemmati},
journal= {arXiv preprint arXiv:2212.11414},
year = {2023}
}
备注
43 pages