COAST: Enhancing the Code Debugging Ability of LLMs through Communicative Agent Based Data Synthesis

📄 arXiv: 2408.05006v3 📥 PDF

作者: Weiqing Yang, Hanbin Wang, Zhenghao Liu, Xinze Li, Yukun Yan, Shuo Wang, Yu Gu, Minghe Yu, Zhiyuan Liu, Ge Yu

分类: cs.SE, cs.AI

发布日期: 2024-08-09 (更新: 2025-02-12)

🔗 代码/项目: GITHUB


💡 一句话要点

COAST:通过基于通信代理的数据合成增强LLM的代码调试能力

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

关键词: 代码调试 大型语言模型 多智能体系统 数据合成 监督微调

📋 核心要点

  1. 现有代码调试基准侧重于代码修复,忽略了Bug定位、识别等环节,无法全面评估LLM的调试能力。
  2. COAST框架利用多智能体系统生成高质量训练数据,模拟人类调试过程,提升LLM在代码调试任务中的性能。
  3. 实验表明,COAST生成的数据优于人工数据和GPT-4生成的数据,使7B模型达到与GPT-3.5相当的调试水平。

📝 摘要(中文)

代码调试是软件开发的关键阶段,对于确保大型语言模型(LLM)在代码生成任务中的可靠性和性能至关重要。人工调试通常遵循一个多阶段过程,包括Bug定位、Bug识别、代码修复和代码识别。然而,现有的代码调试基准主要集中在代码修复阶段,这仅提供了评估LLM调试能力的有限视角。本文提出了DEBUGEVAL,一个全面的基准,通过模拟多阶段的人工调试过程来评估LLM的调试能力。通过在DEBUGEVAL上的评估,我们观察到7B规模的模型始终不如更大的模型,突显了它们在理解代码语义方面的局限性。为此,我们提出了基于通信代理的数据合成(COAST)框架,该框架采用多代理系统来生成高质量的训练数据,用于监督微调(SFT)。实验结果表明,COAST生成的数据优于人工整理和GPT-4生成的数据,使7B规模的LLM能够达到与GPT-3.5相当的调试性能。所有数据和代码均可在https://github.com/NEUIR/COAST获取。

🔬 方法详解

问题定义:论文旨在解决现有代码调试基准不够全面的问题,现有基准主要关注代码修复,忽略了调试过程中的Bug定位、Bug识别等重要环节。这导致对LLM调试能力的评估不完整,无法有效提升LLM的调试性能。小规模LLM在代码语义理解方面存在局限性,调试能力较弱。

核心思路:论文的核心思路是模拟人类调试的多阶段过程,通过构建一个多智能体系统,生成高质量的训练数据,用于监督微调LLM。这种方法旨在让LLM更好地理解代码语义,从而提升其在Bug定位、Bug识别和代码修复等方面的能力。

技术框架:COAST框架是一个多智能体系统,包含多个角色,如Bug引入者、Bug定位者、代码修复者和代码验证者。Bug引入者负责在代码中引入错误,Bug定位者负责找到错误的位置,代码修复者负责修复错误,代码验证者负责验证修复后的代码是否正确。这些智能体通过通信和协作,生成包含Bug信息、定位信息、修复方案等高质量的训练数据。

关键创新:COAST的关键创新在于使用多智能体系统自动生成训练数据,这种方法可以生成比人工标注数据更丰富、更多样化的数据,并且可以模拟真实调试场景。与直接使用GPT-4等大型模型生成数据相比,COAST能够更好地控制数据的质量和多样性,并针对性地提升小规模LLM的调试能力。

关键设计:COAST框架的关键设计包括智能体的角色定义、智能体之间的通信协议、以及数据生成策略。智能体的角色需要根据调试过程的各个阶段进行精心设计,通信协议需要保证智能体之间能够有效地传递信息,数据生成策略需要保证生成的数据具有高质量和多样性。具体的参数设置和损失函数等细节在论文中可能未详细描述,属于未知信息。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,使用COAST生成的数据进行微调后,7B规模的LLM在DEBUGEVAL基准上的调试性能可以达到与GPT-3.5相当的水平,显著优于使用人工整理或GPT-4生成的数据进行微调的结果。这表明COAST框架能够有效地提升小规模LLM的代码调试能力。

🎯 应用场景

COAST框架可应用于提升各种规模LLM的代码调试能力,尤其适用于资源受限场景下的小规模模型。该方法能够提高软件开发的效率和质量,降低调试成本,并可扩展到其他代码相关的任务,如代码审查、代码优化等。

📄 摘要(原文)

Code debugging is a vital stage of software development, essential for ensuring the reliability and performance of Large Language Models (LLMs) in the code generation task. Human debugging typically follows a multi-stage process, which includes Bug Localization, Bug Identification, Code Repair, and Code Recognition. However, existing code debugging benchmarks predominantly focus on the Code Repair stage, which offers only a limited perspective on evaluating the debugging capabilities of LLMs. In this paper, we introduce DEBUGEVAL, a comprehensive benchmark for evaluating the debugging abilities of LLMs by emulating the multi-stage human debugging process. Through evaluating on DEBUGEVAL, we observe that 7B-scale models consistently underperform compared to their larger counterparts, highlighting their limitations in comprehending code semantics. In this case, we propose the COmmunicative Agent-based data SynThesis (COAST) framework, which employs a multi-agent system to generate high-quality training data for supervised fine-tuning (SFT). Experimental results demonstrate that COAST-generated data outperform human-curated and GPT-4-generated data, enabling 7B-scale LLMs to achieve debugging performance comparable to GPT-3.5. All data and codes are available at https://github.com/NEUIR/COAST.