INTERVENOR: Prompt the Coding Ability of Large Language Models with the Interactive Chain of Repairing

2023年11月16日
  • 简介
    本文提出了一种名为INTERactiVE chaiN Of Repairing (INTERVENOR)的方法,它模仿人类修复代码的行为(反复判断、反思和修复),并促进了对大型语言模型(LLMs)的编码能力。具体而言,INTERVENOR使用两个基于LLM的代理,即Code Learner和Code Teacher,在代码修复中扮演不同的角色,并相互作用以修复生成的代码。Code Learner被要求根据Code Teacher的指示生成和修复代码。Code Teacher根据编译器的相应反馈反思代码错误,并迭代生成修复链(CoR)以指导Code Learner的代码修复过程。我们的实验表明,INTERVENOR优于最先进的方法,在代码生成和代码翻译任务中分别比GPT-3.5模型提高了约13%和4.5%。我们进一步分析表明,通过自然语言,CoR可以阐明错误原因和解决方案。由于代码编译器的反馈,INTERVENOR可以准确地识别代码中的语法错误和断言错误,并提供精确的修复指令,使LLMs仅经过三次修复即可达到平稳性能。所有数据和代码均可在https://github.com/NEUIR/INTERVENOR上获得。
  • 作者讲解
  • 图表
  • 解决问题
    论文试图通过使用INTERVENOR来解决代码修复的问题,同时提高大型语言模型的编码能力。这是一个新问题。
  • 关键思路
    INTERVENOR采用了两个基于大型语言模型的代理,Code Learner和Code Teacher,以交互方式修复生成的代码。Code Learner根据Code Teacher的指示生成和修复代码,而Code Teacher根据编译器的反馈重新思考代码错误,并迭代生成修复链以指导代码修复过程。相比当前领域的研究,INTERVENOR的关键思路是采用交互式修复链的方式来指导修复过程。
  • 其它亮点
    论文的实验表明,INTERVENOR在代码生成和代码翻译任务中优于现有方法,并且相对于GPT-3.5模型,分别实现了约13%和4.5%的改进。修复链可以通过自然语言阐明错误原因和解决方案计划。通过编译器的反馈,INTERVENOR可以准确地识别代码中的语法错误和断言错误,并提供精确的修复指令,使大型语言模型在仅进行三次修复后就可以实现高水平性能。所有数据和代码都可以在https://github.com/NEUIR/INTERVENOR上获得。
  • 相关研究
    在这个领域中,最近的相关研究包括CodeBERT、CodeXGLUE和DeepFix等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问