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