RepoDebug: Repository-Level Multi-Task and Multi-Language Debugging Evaluation of Large Language Models

2509.04078v1 cs.SE, cs.AI 2025-09-06
Авторы:

Jingjing Liu, Zeming Liu, Zihao Cheng, Mengliang He, Xiaoming Shi, Yuhang Guo, Xiangrong Zhu, Yuanfang Guo, Yunhong Wang, Haifeng Wang

Резюме на русском

## Контекст Large Language Models (LLMs) показали сильную способность решать задачи типа код-диагностики и автоматического ремонта программного кода. Это существенно снижает время, затрачиваемое разработчиками на отладку, и повышает их производительность. Однако большая часть существующих датасетов для оценки этих моделей сосредоточена на функциональном уровне (function-level), что не дает полного представления о сложностях, с которыми LLMs сталкиваются при отладке на уровне репозиториев (repository-level). Несмотря на то, что некоторые датасеты репозиторий-уровня были предложены, они часто имеют ограниченную разнообразность задач, языков и типов ошибок. Это ограничение неадекватно отражает сложности реальных процессов отладки. Для решения этой проблемы, предлагается **RepoDebug** — новый датасет, который охватывает множество задач и языков программирования, а также имитирует реальные сценарии отладки на репозиторий-уровне. ## Метод RepoDebug — это датасет, предназначенный для оценки LLMs в трех основных типах задач отладки на уровне репозиториев: **code repair** (ремонт кода), **bug localization** (локализация ошибок) и **code completion** (завершение кода). Он содержит 22 типа ошибок, распространенных в реальных проектах, и поддерживает 8 языков программирования, включая Python, Java, C++ и другие. Каждая задача включает в себя набор тестовых сценариев с подробными метками, что позволяет оценивать точность решений LLMs в разных сценариях. Таким образом, RepoDebug представляет собой широко измерительную платформу для поиска решений на более сложном уровне отладки. ## Результаты На RepoDebug были проведены эксперименты с 10 LLMs, включая одну из самых современных моделей — Claude 3.5. Эксперименты показали, что даже такая мощная модель не смогла достичь высокой точности при решении задач на репозиторий-уровне. Наилучшая модель показала себя значительно хуже в сравнении с результатами на функциональном уровне. Это отражает не только сложности репозиторий-уровня, но и недостаточность нынешних технических решений для эффективной отладки на таком уровне. Таким образом, результаты говорят о необходимости дальнейших исследований в этой области. ## Значимость RepoDebug имеет перспективу в области создания надежных и многофункциональных систем отладки. Он может быть применен для развития моделей, которые будут способны решать задачи на более высоком уровне, включая репозиторий-уровень. Это приведет к повышению качества систем отладки, снижению времени, затрачиваемого разработчиками, и улучшению общей эффективности разработки. Благодаря своей разнообразности задач, языков и ошибок, RepoDebug предлагает новый подход к эффективной отладк

Abstract

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.

Ссылки и действия