中文

基于大语言模型的程序自动修复

软件工程 2023-01-03 v4

摘要

Codex 等大语言模型已展现出为诸多编程任务生成代码的能力。然而,现有模型的成功率较低,尤其对于复杂编程任务。原因之一是语言模型缺乏程序语义感知,导致生成不正确甚至无法编译的程序。本文系统性研究自动程序修复(APR)技术能否修复语言模型在 LeetCode 竞赛中产生的错误解,旨在探究 APR 技术能否提升大语言模型生成代码的可靠性。研究发现:(1)自动生成代码与人类编写的解存在共性编程错误,表明 APR 技术有潜力修复自动生成代码;(2)在统计故障定位方法提供缺陷位置信息的前提下,新发布的支持代码编辑的 Codex 编辑模式在修复错误解方面优于或媲美现有 Java 修复工具 TBar 与 Recoder。通过分析这些工具生成的实验结果,我们给出若干建议:(1)增强 APR 工具以突破补丁空间局限(如引入更灵活的故障定位)是可取的;(2)由于大语言模型可通过更多数据训练获得更多修复模式,未来 APR 工具可将重心从增加修复模式转向基于合成/语义的方法;(3)将语言模型与 APR 结合以整理补丁成分值得研究。

关键词

引用

@article{arxiv.2205.10583,
  title  = {Automated Repair of Programs from Large Language Models},
  author = {Zhiyu Fan and Xiang Gao and Martin Mirchev and Abhik Roychoudhury and Shin Hwei Tan},
  journal= {arXiv preprint arXiv:2205.10583},
  year   = {2023}
}

备注

12 pages, To appear in ICSE 2023