Инструмент debug-gym удваивает успех моделей, но до человека ещё далеко.
Искусственный интеллект активно внедряется в сферу разработки программного обеспечения, и вряд ли найдётся другая область, где его используют столь широко. От генерации кода по описанию в духе «настроения» до GitHub Copilot и стартапов, которые собирают простенькие приложения за считанные часы при поддержке больших языковых моделей — ИИ уже стал неотъемлемой частью инструментов программиста.
Тем не менее, те, кто рассчитывает, что через пару месяцев ИИ вытеснит большинство разработчиков, сильно переоценивают возможности современных моделей. Главная причина — они по-прежнему плохо справляются с отладкой, а именно на неё уходит большая часть времени любого разработчика. Об этом говорится в исследовании Microsoft Research, где представили новый инструмент debug-gym — платформу для тестирования и улучшения навыков ИИ в поиске и устранении ошибок в коде.
Debug-gym — это среда, в которой ИИ-модели могут работать с реальными репозиториями, используя привычные для программистов инструменты: ставить точки останова, просматривать значения переменных, писать тесты, переходить по коду и так далее. Всё это позволяет моделям не просто «угадывать» исправления на основе изученных ранее шаблонов, а опираться на реальное выполнение программы и логику конкретного проекта. Microsoft отмечает, что без таких средств ИИ-модели в отладке проявляют себя довольно слабо. С ними — ощутимо лучше, но всё равно далеко от уровня опытного разработчика.
В тестах debug-gym модели, получившие доступ к инструментам, показали почти вдвое более высокие показатели успешной отладки по сравнению с теми, кто работал «вслепую». Но даже в лучшем случае модели смогли успешно завершить задание лишь в 48,4% случаев. Это значительный прогресс, но пока явно недостаточный, чтобы заменить человека.
Microsoft объясняет ограничения тем, что текущие языковые модели обучались на данных, в которых мало представлено поведение, характерное для отладки — например, последовательные действия по поиску ошибки. Это делает область особенно перспективной для дальнейших исследований. В следующем этапе планируется обучение специальной модели, заточенной именно под поиск информации, необходимой для устранения багов. Такая «поисковая» модель может помогать более крупной системе, снижая расходы на вычисления.
Скепсис в отношении полной замены программистов ИИ не нов. Уже есть немало исследований, показывающих, что даже если модель способна собрать простое приложение, её код часто содержит баги и уязвимости, которые она не в состоянии исправить. Так что текущий путь скорее ведёт не к полной автономии ИИ, а к созданию эффективного помощника, способного экономить разработчику время, но не заменять его полностью.