INTERVENOR: Prompting the Coding Ability of Large Language Models with the Interactive Chain of Repair

📄 arXiv: 2311.09868v5 📥 PDF

作者: Hanbin Wang, Zhenghao Liu, Shuo Wang, Ganqu Cui, Ning Ding, Zhiyuan Liu, Ge Yu

分类: cs.SE, cs.AI

发布日期: 2023-11-16 (更新: 2024-06-13)

备注: 27 pages, 19 figures, 10 tables

🔗 代码/项目: GITHUB


💡 一句话要点

提出INTERVENOR以提升大型语言模型的代码修复能力

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码修复 大型语言模型 交互式学习 修复链 编程教育 自动化测试

📋 核心要点

  1. 现有方法在代码修复过程中缺乏有效的交互机制,导致修复效率低下。
  2. INTERVENOR通过引入代码学习者和代码教师的角色,模拟人类的交互式代码修复过程,提升代码生成和修复能力。
  3. 实验结果显示,INTERVENOR在代码生成和翻译任务上分别比GPT-3.5提升约18%和4.3%,验证了其有效性。

📝 摘要(中文)

本文介绍了INTERVENOR(INTERactiVE chaiN Of Repair),一个旨在模拟人类交互式代码修复过程的系统,涵盖代码诊断和修复。INTERVENOR促使大型语言模型(LLMs)在代码修复过程中扮演不同角色,包括代码学习者和代码教师。代码学习者负责根据指令生成或修复代码,而代码教师则负责构建修复链(CoR)以指导代码学习者。实验结果表明,INTERVENOR在代码生成和翻译任务上分别比基线模型提升约18%和4.3%。进一步分析显示,CoR有效揭示了错误原因并提供解决方案。通过编译器反馈,INTERVENOR能够准确识别语法错误和断言错误,并提供精确的修复指令。

🔬 方法详解

问题定义:本文旨在解决现有代码修复方法中缺乏有效交互和反馈机制的问题,导致代码修复效率低下和准确性不足。

核心思路:INTERVENOR通过引入代码学习者和代码教师的角色,模拟人类的交互式代码修复过程,使得代码学习者在生成代码时能够得到实时反馈和指导。

技术框架:系统主要分为两个模块:代码学习者和代码教师。代码学习者根据指令生成或修复代码,而代码教师则负责构建修复链(CoR),并根据编译器的反馈对生成的代码进行检查和调整。

关键创新:INTERVENOR的主要创新在于引入了修复链(CoR)概念,使得代码教师能够系统性地分析错误并提供解决方案,这一机制在现有方法中并不常见。

关键设计:在设计上,INTERVENOR使用了编译器反馈来识别语法和断言错误,并通过自然语言提供具体的修复指令,确保代码学习者能够准确理解和执行修复任务。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,INTERVENOR在代码生成任务上比基线模型提升约18%,在代码翻译任务上提升约4.3%。这些结果表明,INTERVENOR在代码修复和生成方面具有显著的性能优势,验证了其设计的有效性。

🎯 应用场景

该研究的潜在应用领域包括软件开发、自动化测试和教育等。INTERVENOR能够有效提升代码修复的效率和准确性,具有广泛的实际价值,未来可能在编程教育和智能编程助手中发挥重要作用。

📄 摘要(原文)

This paper introduces INTERVENOR (INTERactiVE chaiN Of Repair), a system designed to emulate the interactive code repair processes observed in humans, encompassing both code diagnosis and code repair. INTERVENOR prompts Large Language Models (LLMs) to play distinct roles during the code repair process, functioning as both a Code Learner and a Code Teacher. Specifically, the Code Learner is tasked with adhering to instructions to generate or repair code, while the Code Teacher is responsible for crafting a Chain-of-Repair (CoR) to serve as guidance for the Code Learner. During generating the CoR, the Code Teacher needs to check the generated codes from Code Learner and reassess how to address code bugs based on error feedback received from compilers. Experimental results demonstrate that INTERVENOR surpasses baseline models, exhibiting improvements of approximately 18% and 4.3% over GPT-3.5 in code generation and code translation tasks, respectively. Our further analyses show that CoR is effective to illuminate the reasons behind bugs and outline solution plans in natural language. With the feedback of code compilers, INTERVENOR can accurately identify syntax errors and assertion errors and provide precise instructions to repair codes. All data and codes are available at https://github.com/NEUIR/INTERVENOR