Искусственный интеллект

Microsoft Research учит инструменты ИИ отлаживать код

Microsoft Research учит инструменты ИИ отлаживать код

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 приглашает широкое сообщество внести свой вклад в развитие интерактивных отладочных агентов и, в более широком смысле, агентов ИИ, способных активно искать информацию в окружающей среде.

Читайте также