RepoDebug: Repository-Level Multi-Task and Multi-Language Debugging Evaluation of Large Language Models
作者: Jingjing Liu, Zeming Liu, Zihao Cheng, Mengliang He, Xiaoming Shi, Yuhang Guo, Xiangrong Zhu, Yuanfang Guo, Yunhong Wang, Haifeng Wang
分类: cs.SE, cs.AI
发布日期: 2025-09-04 (更新: 2025-09-08)
备注: 30 pages, 12 figures, EMNLP 2025 Findings
💡 一句话要点
RepoDebug:提出用于评估LLM仓库级多任务多语言调试能力的基准数据集
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 代码调试 自动程序修复 仓库级数据集 多任务学习
📋 核心要点
- 现有代码调试数据集主要关注函数级别,缺乏对LLM在复杂仓库级场景下调试能力的全面评估。
- RepoDebug数据集旨在提供一个多任务、多语言的仓库级调试基准,包含多种错误类型和编程语言。
- 实验结果表明,即使是目前性能最佳的LLM,在RepoDebug数据集上的仓库级调试能力仍然有待提高。
📝 摘要(中文)
大型语言模型(LLMs)在代码调试方面表现出显著的能力,尤其是在自动程序修复方面,这可以大大减少开发人员的时间消耗并提高他们的效率。为了促进代码调试的发展,调试数据集取得了显著的进步。然而,这些数据集主要侧重于评估LLM的函数级代码修复能力,而忽略了更复杂和真实的仓库级场景,这导致对LLM在仓库级调试中面临的挑战理解不完整。虽然已经提出了一些仓库级数据集,但它们通常受到任务、语言和错误类型多样性有限等限制。为了缓解这一挑战,本文介绍RepoDebug,这是一个多任务和多语言的仓库级代码调试数据集,包含22种错误子类型,支持8种常用的编程语言和3种调试任务。此外,我们对10个LLM进行了评估实验,其中表现最佳的模型Claude 3.5 Sonnect在仓库级调试中仍然表现不佳。
🔬 方法详解
问题定义:现有代码调试数据集主要集中在函数级别,忽略了实际软件开发中常见的仓库级别调试场景。这些数据集在任务类型、支持的编程语言以及包含的错误类型方面存在局限性,无法全面评估LLM在真实开发环境中的调试能力。因此,需要一个更全面、更具挑战性的仓库级别调试数据集,以推动LLM在代码调试领域的进一步发展。
核心思路:RepoDebug的核心思路是构建一个包含多种任务、多种编程语言和多种错误类型的仓库级别代码调试数据集。通过模拟真实的软件开发场景,RepoDebug能够更全面地评估LLM在复杂环境下的调试能力。该数据集的设计旨在挑战LLM的理解、推理和代码修复能力,从而推动相关技术的发展。
技术框架:RepoDebug数据集的构建流程主要包括以下几个阶段:首先,确定支持的编程语言和调试任务类型。其次,收集并整理包含各种错误类型的代码仓库。然后,对代码仓库进行分析和标注,提取出需要调试的代码片段和对应的错误信息。最后,将这些代码片段和错误信息整理成数据集,并提供相应的评估指标。数据集支持三种调试任务,包括错误定位、错误修复和代码生成。
关键创新:RepoDebug的关键创新在于其多任务、多语言和多错误类型的特性。与现有的代码调试数据集相比,RepoDebug覆盖了更广泛的编程语言和调试任务,并且包含了更丰富的错误类型。这使得RepoDebug能够更全面地评估LLM在真实开发环境中的调试能力,并为相关研究提供更可靠的基准。
关键设计:RepoDebug数据集包含22种错误子类型,涵盖了常见的编程错误,例如语法错误、逻辑错误、类型错误等。数据集支持8种常用的编程语言,包括Python、Java、C++等。数据集的评估指标包括错误定位准确率、代码修复成功率和代码生成质量等。为了保证数据集的质量,RepoDebug的构建过程经过了严格的审核和验证。
🖼️ 关键图片
📊 实验亮点
在对10个LLM的评估实验中,RepoDebug数据集揭示了即使是目前最先进的LLM(如Claude 3.5 Sonnect)在仓库级调试任务中仍然面临挑战。实验结果表明,LLM在错误定位、代码修复和代码生成方面的性能均有待提高,这突显了RepoDebug数据集在推动LLM代码调试能力发展方面的重要作用。
🎯 应用场景
RepoDebug数据集可用于评估和比较不同LLM在代码调试方面的性能,推动自动程序修复技术的发展。该数据集还可以用于训练和优化LLM,提高其在实际软件开发中的调试能力。此外,RepoDebug可以帮助开发人员更好地理解LLM的优势和局限性,从而更有效地利用LLM来提高开发效率。
📄 摘要(原文)
Large Language Models (LLMs) have exhibited significant proficiency in code debugging, especially in automatic program repair, which may substantially reduce the time consumption of developers and enhance their efficiency. Significant advancements in debugging datasets have been made to promote the development of code debugging. However, these datasets primarily focus on assessing the LLM's function-level code repair capabilities, neglecting the more complex and realistic repository-level scenarios, which leads to an incomplete understanding of the LLM's challenges in repository-level debugging. While several repository-level datasets have been proposed, they often suffer from limitations such as limited diversity of tasks, languages, and error types. To mitigate this challenge, this paper introduces RepoDebug, a multi-task and multi-language repository-level code debugging dataset with 22 subtypes of errors that supports 8 commonly used programming languages and 3 debugging tasks. Furthermore, we conduct evaluation experiments on 10 LLMs, where Claude 3.5 Sonnect, the best-performing model, still cannot perform well in repository-level debugging.