一 文章主旨:
研究了Codex自动生成的程序中的错误,并探讨了现有的程序修复(APR)工具以及新发布的Codex-e是否能够修复由大型语言模型生成的有缺陷的程序(Codex-e作为APR工具的潜力)。
现在基于大语言模型,输入自然语言,生成代码的应用非常普遍。但是生成的代码正确率很低,因为这些模型缺乏对任务描述和程序语义的深入理解。文章以GPT-3模型的后代-Codex模型,为例,试图利用自动化程序修复(APR)技术来修复Codex产生的代码错误。
自动化修复技术接受一个有缺陷的程序和一个正确性规范,通过稍稍修改程序使其满足给定的规范来生成一个固定的程序。典型的修复工具通过推理程序语义与给定的规范来生成补丁。例如,基于语义的修复工具(如SemFix、Angelix)通过使用符号执行和基于搜索的修复工具(如Gen-Prog、TBar)在预定义的补丁中搜索正确的补丁。
二 本文贡献:
(1)自动生成的代码与人工编写的解决方案存在相同的编程错误,表明自动化程序修复技术有潜力修复自动生成的代码。
(2)发现新发布的Codex编辑模式在修复错误解决方案方面与现有的Java修复工具TBar和Recoder相似或更好。
(3)作者提出了几点建议:包括增强自动化程序修复工具的修补空间、将重点从添加更多修复模式转向综合/语义为基础的方法,研究将语言模型与自动化程序修复相结合的可能性。
本文实验方向:
作者使用公共测试用例来指导修复,并使用私有测试用例来验证修复结果。
本文探讨了两个方向来修复语言模型生成的代码的错误
1.现有的APR技术(TBar和Recoder)
2.研究探讨了使用Codex-e作为自动化程序修复工具的可能性。
「利用OpenAI最近发布的Codex编辑模式(这个新功能可以使现有的