Несмотря на смелые прогнозы некоторых экспертов, утверждающих, что генеративный ИИ вскоре вытеснит разработчиков программного обеспечения, реальность пока далека от этого. Да, такие инструменты, как GitHub Copilot и стартапы с ИИ-кодингом, уже заметно повлияли на сферу разработки. Однако новое исследование Microsoft показывает: до полного замещения человеческого труда ИИ ещё далеко.
Исследователи признают, что современные ИИ-инструменты действительно повышают продуктивность, предлагая примеры кода. Но когда дело доходит до поиска новой информации или взаимодействия с отладкой, ИИ пока пасует. В то время как человек-разработчик активно использует эти подходы при поиске и исправлении ошибок, ИИ таких возможностей не демонстрирует.
Чтобы изучить эти ограничения, Microsoft представила новую среду — debug-gym. Эта платформа позволяет ИИ-моделям отлаживать реальный код с использованием инструментов, аналогичных тем, что применяют живые программисты. Цель — научить ИИ искать информацию и выстраивать логику отладки.
В рамках эксперимента Microsoft протестировала, насколько эффективно простой ИИ-агент, основанный на существующих языковых моделях, справляется с отладкой в debug-gym. Хотя результаты оказались обнадёживающими, ИИ смог успешно завершить лишь менее половины заданий в тестах. Даже с доступом к интерактивным инструментам этого оказалось недостаточно для достижения уровня, сравнимого с работой человека.
Исследование выделяет две ключевые проблемы. Во-первых, языковым моделям не хватает обучающих данных, отражающих поведение программиста в процессе принятия решений — например, при пошаговой отладке. Во-вторых, сами модели пока не умеют эффективно использовать средства отладки.
«Мы считаем, что дело в нехватке данных, демонстрирующих последовательность действий при отладке (так называемых отладочных трасс), в корпусе, на котором обучались существующие LLM», — поясняют исследователи.
Тем не менее, прогресс не стоит на месте. В Microsoft уверены: при использовании специализированных подходов к обучению языковые модели могут стать гораздо более продвинутыми инструментами для отладки. В частности, предлагается создать отдельную ИИ-модель, способную собирать контекст отладки и передавать его основной модели генерации кода.
Выводы исследования подтверждают и другие работы: ИИ уже может создавать рабочие фрагменты программ для узких задач, но итоговый код часто содержит ошибки и уязвимости. А значит, пока искусственный интеллект не научится эффективно справляться с отладкой, он останется лишь помощником программиста, но не его заменой.