Microsoft Research представила debug-gym - новую среду, предназначенную для обучения ИИ-инструментов кодирования сложному искусству отладки кода.
По мере того как роль ИИ в разработке программного обеспечения возрастает, debug-gym призван устранить критическое узкое место: хотя ИИ может эффективно генерировать код, отладка по-прежнему отнимает много времени у разработчиков.
Распространение помощников ИИ по кодированию повышает производительность труда разработчиков. Генеральный директор GitHub Томас Дохмке предсказал в 2023 году, что «рано или поздно 80 % кода будет написано копипастом».
Эта тенденция прослеживается во всей индустрии: как крупные корпорации, так и стартапы все больше полагаются на ИИ для генерации кода. Гэрри Тан из Y Combinator подчеркнул это, отметив, что в четверти их последней партии стартапов 95 % кода было написано с помощью больших языковых моделей (LLM).
Однако в реальности разработка программного обеспечения включает в себя гораздо больше отладки, чем первоначального написания кода.
«Как сопровождающие популярных репозиториев с открытым исходным кодом, это находит у нас отклик», - заявила команда Microsoft Research. Они задали интересный вопрос: «А что, если бы инструмент искусственного интеллекта мог предлагать исправления для сотен открытых проблем, а нам оставалось бы только утверждать их перед слиянием?»
Преодоление разрыва: Интерактивная отладка для ИИ
Отладка, по определению исследователей, - это интерактивный и итеративный процесс исправления кода. Разработчики обычно формулируют гипотезы о сбоях, собирают доказательства, проходя через выполнение кода, исследуют значения переменных (часто с помощью таких инструментов, как отладчик Python, pdb) и повторяют этот цикл до тех пор, пока проблема не будет решена.
Отладка, по определению исследователей, - это интерактивный и итеративный процесс исправления кода. Разработчики обычно формулируют гипотезы о сбоях, собирают доказательства, проходя через выполнение кода, исследуют значения переменных (часто с помощью таких инструментов, как отладчик Python, pdb) и повторяют этот цикл до тех пор, пока проблема не будет решена.
Debug-gym призван вооружить агентов ИИ аналогичными возможностями по отладке кода. Он спрашивает: «В какой степени LLM могут использовать интерактивные инструменты отладки, такие как pdb?».
Среда предоставляет агентам ИИ, исправляющим код, доступ к инструментам для активного поиска информации, расширяя их возможности для действий и наблюдений. Агенты в debug-gym могут устанавливать точки останова, перемещаться по коду, проверять значения переменных, создавать тестовые функции и принимать решение о дальнейшем исследовании или переписывании кода в зависимости от уровня уверенности.
«Мы считаем, что интерактивная отладка с помощью соответствующих инструментов может расширить возможности агентов-кодировщиков для решения реальных задач программной инженерии и является центральным элементом исследования агентов на основе LLM», - пояснила команда Microsoft.
Исправления, предлагаемые этими усовершенствованными агентами - после одобрения человеком - будут основываться на конкретном контексте кодовой базы, деталях выполнения программы и документации, выходя за рамки простого угадывания на основе обучающих данных».
При создании Debug-gym учитывается несколько ключевых моментов:
- Работа на уровне репозитория: Агенты могут получать доступ и изменять файлы во всем репозитории кода.
- Надежность и безопасность: Выполнение кода происходит в Docker-контейнерах, изолирующих среду от вредных действий и позволяющих проводить тщательное тестирование.
- Расширяемость: Платформа разработана для легкой интеграции новых инструментов отладки.
- Текстовое взаимодействие: Наблюдения представляются в виде структурированного текста (например, JSON), а действия используют простой текстовый синтаксис, что обеспечивает совместимость с современными LLM.
Исследователи могут использовать debug-gym с пользовательскими репозиториями и оценивать производительность агентов с помощью таких бенчмарков, как Aider (генерация простых функций), Mini-nightmare (короткие примеры с ошибками) и SWE-bench (реальные задачи, требующие глубокого понимания кодовой базы).
Многообещающие первые результаты
В первых экспериментах использовался простой агент на основе подсказок, использующий различные LLM (включая Claude 3.7, OpenAI o1 и OpenAI o3-mini), оснащенные такими инструментами отладки, как eval, view, pdb, rewrite и listdir.
Хотя даже с этими инструментами решение сложных задач, подобных тем, что были в SWE-bench Lite, оставалось сложным (процент успеха редко превышал 50 %), прирост производительности по сравнению с агентами без отладочных инструментов был значительным.
При наличии инструментов отладки относительное увеличение коэффициента успешности в SWE-bench Lite составило 30 % для Claude 3.7, 182 % для OpenAI o1 и 160 % для OpenAI o3-mini.
Исследователи объясняют общую сложность отсутствием данных о последовательном принятии решений (таких как трассы отладки) в текущих обучающих наборах данных LLM. Тем не менее, заметное улучшение подтверждает потенциал этого направления исследований.
Подготовка специалистов по отладке ИИ-кода
Команда Microsoft Research считает, что следующим шагом должна стать тонкая настройка LLM специально для интерактивной отладки. Для этого необходимо создать специальные наборы данных, в которых, возможно, будут записаны взаимодействия агентов в отладчике, когда они собирают информацию для решения проблем.
В отличие от стандартных задач рассуждения, интерактивная отладка включает в себя цикл действий, обратную связь с окружающей средой и последующее принятие решений, что требует богатых данных, фиксирующих всю последовательность решения проблемы.
План включает в себя тонкую настройку «модели поиска информации», предназначенной для сбора необходимой информации об исправлении ошибок, которая затем обеспечит соответствующий контекст для основной модели генерации кода. Потенциально это может привести к тому, что более мелкие и эффективные модели поиска информации будут питать более крупные модели генерации, подобно продвинутой системе Retrieval Augmented Generation (RAG), что позволит сэкономить на стоимости выводов ИИ.
Выкладывая debug-gym в открытый доступ, Microsoft Research приглашает широкое сообщество внести свой вклад в развитие интерактивных отладочных агентов и, в более широком смысле, агентов ИИ, способных активно искать информацию в окружающей среде.