<НА ГЛАВНУЮ

ToolTrain: RL-фреймворк от ByteDance, обучающий LLM эффективно искать в репозиториях

'ToolTrain сочетает SFT и RL с интеграцией инструментов, чтобы научить LLM эффективно искать в коде и улучшить локализацию проблем на реальных бенчмарках.'

Проблема локализации ошибок в больших репозиториях

Локализация проблемы означает нахождение точных мест в коде, которые нужно изменить для исправления ошибки. В больших кодовых базах это часто вручную и занимает много времени. Многозвенные рассуждения, последовательная навигация и грамотное использование инструментов делают задачу особенно трудной для LLM-агентов.

Существующие подходы и их ограничения

Ранее использовались методы глубокого обучения и новые LLM-подходы. DeepFL и DeepRL4FL применяют нейронные сети и CNN для анализа покрытия тестов, зависимостей данных и статических представлений кода. LLM-методы способны сузить область поиска, но часто им не хватает сложности рассуждений и дисциплины при вызове внешних инструментов в многозвенных исследованиях репозиториев.

Агентное обучение пытается решить эти проблемы. SWE-Gym и SEAlign дообучают модели на качественных траекториях, а LocAgent строит эталон локализации на основе функций, измененных в золотых патчах GitHub. Тем не менее сохранение корректных вызовов инструментов и стройной цепочки рассуждений при глубоком поиске всё ещё вызывает затруднения.

Что предлагает ToolTrain

Исследователи из Peking University, ByteDance и Beijing Institute of Technology предложили ToolTrain, фреймворк с интеграцией инструментов в процесс обучения для улучшения многозвенного рассуждения при локализации проблем. Ключевые компоненты ToolTrain:

  • RepoSearcher: легковесный агент с простыми инструментами поиска, позволяющими находить определения функций и классов по имени.
  • Двухэтапное обучение: rejection-sampled SFT, затем RL с интеграцией инструментов. Это помогает моделям не только правильно вызывать инструменты, но и использовать их стратегически, сокращая лишние исследования и фокусируясь на перспективных ветках кода.

Для обучения исследователи сформировали размеченные данные из open-source репозиториев, чтобы модель училась реальным последовательностям навигации.

Датасет и метрики оценки

Оценка проводится на SWE-Bench-Verified, бенчмарке, составленном из реальных GitHub-ишью и вручную проверенном профессиональными разработчиками. Эталоном служат функции и файлы, измененные в золотых патчах. Для RepoSearcher используются метрики Recall@k, MAP, MRR, nDCG@k и %Resolved, измеряющая успешность решения задач.

ToolTrain протестировали на моделях Qwen-7B и Qwen-32B и сравнили с четырьмя современными подходами: Agentless, CrcaLoca, CoSIL и LocAgent. Это сравнение показывает, насколько ToolTrain улучшает точность и стратегию исследования кода.

Результаты и наблюдения

RepoSearcher, обученный с помощью ToolTrain, демонстрирует лучшее среди одноразмерных моделей и превосходит крупные коммерческие модели по некоторым метрикам. Примеры:

  • RepoSearcher с ToolTrain-32B достигает Recall@5 на уровне 68.55, опережая Claude-3.7-Sonnet с 66.38.
  • 7B-модель с ToolTrain превосходит другие фреймворки, использующие 32B-модели, что показывает рост способности вызывать инструменты даже у небольших моделей.
  • Для решения проблем RepoSearcher с ToolTrain-7B показывает Recall@5 равный 62.38 и %Resolved 14.00, лучший результат среди 7B-моделей.

При этом показатели решения задач зависят от качества модели генерации патчей: ToolTrain-7B показывает %Resolved 14.00 против 31.60 у ToolTrain-32B, несмотря на схожие результаты локализации. Это указывает на влияние качества генерации патчей на итоговую успешность исправлений.

Значение для разработки ПО

ToolTrain доказывает, что сочетание SFT и RL с явной интеграцией инструментов позволяет обучить LLM выполнять дисциплинированный многозвенный поиск по репозиторию. Уменьшая ненужные исследования и улучшая стратегическое использование инструментов, ToolTrain позволяет меньшим моделям показывать результаты, сопоставимые с большими, и делает автоматизацию локализации проблем более применимой в реальных проектах.

Дополнительные материалы

В статье и на GitHub-репозитории доступны подробности, обучающие материалы, коды и ноутбуки. Авторы приглашают следить за обновлениями и присоединяться к сообществу для обсуждений и обмена опытом.

🇬🇧

Switch Language

Read this article in English

Switch to English