Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments

📄 arXiv: 2404.01754v1 📥 PDF

作者: Qianhui Zhao, Fang Liu, Li Zhang, Yang Liu, Zhen Yan, Zhenghao Chen, Yufei Zhou, Jing Jiang, Ge Li

分类: cs.SE, cs.AI

发布日期: 2024-04-02

备注: On-going work


💡 一句话要点

提出Peer-aided Repairer以解决高级编程作业的自动修复问题

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

关键词: 自动程序修复 大型语言模型 编程教育 高级编程作业 数据集构建 同伴学习 多源信息

📋 核心要点

  1. 现有的自动程序修复方法主要针对简单的编程作业,缺乏对高级编程作业的有效支持,导致修复效果不理想。
  2. 本文提出的PaR框架通过同伴解决方案选择和多源提示生成,结合多种信息源来提升程序修复的准确性和效率。
  3. 在Defects4DS和ITSP数据集上的实验结果显示,PaR的修复率分别比现有最优方法提高了19.94%和15.2%,表现出显著的改进。

📝 摘要(中文)

自动生成编程作业反馈在编程教育中具有重要意义,尤其是对于高级作业。然而,现有的自动程序修复技术多集中于简单的入门作业,缺乏对高级编程课程作业的有效修复能力。为此,本文构建了一个新的高级学生作业数据集Defects4DS,并提出了一个名为PaR的框架,利用大型语言模型(LLM)进行程序修复。PaR框架分为三个阶段:同伴解决方案选择、多源提示生成和程序修复。实验结果表明,PaR在Defects4DS和ITSP数据集上均取得了新的最优性能,修复率分别提高了19.94%和15.2%。

🔬 方法详解

问题定义:本文旨在解决现有自动程序修复方法在高级编程作业中的不足,尤其是缺乏有效的修复策略和数据集支持。

核心思路:PaR框架通过同伴程序的选择和多源信息的整合,提供更全面的上下文信息,从而提高修复的准确性和效率。

技术框架:PaR框架分为三个主要阶段:同伴解决方案选择(根据词法、语义和句法标准选择相关程序)、多源提示生成(整合多种信息生成提示)和程序修复(利用LLM进行实际修复)。

关键创新:PaR的创新在于其同伴解决方案选择和多源提示生成的结合,显著提升了对复杂程序的修复能力,与传统方法相比具有更高的灵活性和准确性。

关键设计:在设计中,PaR使用了多种信息源进行提示生成,并在修复阶段采用了优化的损失函数和网络结构,以确保修复过程的高效性和准确性。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

在Defects4DS和ITSP数据集上的实验结果显示,PaR框架的修复率分别比现有最优的LLM和符号基础方法提高了19.94%和15.2%,展现出显著的性能提升,确立了新的研究基准。

🎯 应用场景

该研究的潜在应用领域包括编程教育、在线编程平台和自动化代码审查工具。通过提高高级编程作业的自动修复能力,能够有效减轻教师的负担,并为学生提供及时的反馈,促进学习效果的提升。未来,该技术有望在更广泛的编程语言和复杂度的作业中得到应用。

📄 摘要(原文)

Automated generation of feedback on programming assignments holds significant benefits for programming education, especially when it comes to advanced assignments. Automated Program Repair techniques, especially Large Language Model based approaches, have gained notable recognition for their potential to fix introductory assignments. However, the programs used for evaluation are relatively simple. It remains unclear how existing approaches perform in repairing programs from higher-level programming courses. To address these limitations, we curate a new advanced student assignment dataset named Defects4DS from a higher-level programming course. Subsequently, we identify the challenges related to fixing bugs in advanced assignments. Based on the analysis, we develop a framework called PaR that is powered by the LLM. PaR works in three phases: Peer Solution Selection, Multi-Source Prompt Generation, and Program Repair. Peer Solution Selection identifies the closely related peer programs based on lexical, semantic, and syntactic criteria. Then Multi-Source Prompt Generation adeptly combines multiple sources of information to create a comprehensive and informative prompt for the last Program Repair stage. The evaluation on Defects4DS and another well-investigated ITSP dataset reveals that PaR achieves a new state-of-the-art performance, demonstrating impressive improvements of 19.94% and 15.2% in repair rate compared to prior state-of-the-art LLM- and symbolic-based approaches, respectively