- BrainTools - https://www.braintools.ru -

От переводчика: Новое исследование MIT развенчивает популярные мифы об ИИ в программировании и показывает реальные барьеры на пути к автономной разработке ПО. Оригинал статьи опубликован в MIT News [1].
Представьте будущее, где искусственный интеллект [2] молча берет на себя рутинную работу в разработке ПО: рефакторинг запутанного кода, миграцию legacy-систем и поиск состояний гонки (race conditions), позволяя инженерам-людям сосредоточиться на архитектуре, дизайне и действительно новых проблемах, которые пока недоступны машинам.
Последние достижения, казалось бы, приблизили нас к этому будущему, но новая работа исследователей из MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) и нескольких партнерских институтов утверждает, что эта потенциальная реальность требует трезвого взгляда на современные вызовы.
Работа под названием “Challenges and Paths Towards AI for Software Engineering” [3] (“Вызовы и пути к ИИ для разработки программного обеспечения”) анализирует множество задач разработки ПО за пределами генерации кода, выявляет текущие узкие места и указывает на перспективные направления исследований для их преодоления, с целью позволить людям сосредоточиться на высокоуровневом дизайне, пока рутинную работу автоматизируют.
“Все говорят о том, что программисты больше не нужны, и теперь доступна вся эта автоматизация”, — говорит Армандо Солар-Лезама, профессор электротехники и компьютерных наук MIT, главный исследователь CSAIL и старший автор исследования. “С одной стороны, область добилась огромного прогресса. У нас есть инструменты, которые гораздо мощнее всего, что мы видели раньше. Но до полной автоматизации, которую мы ожидаем, еще очень далеко.”
Солар-Лезама утверждает, что популярные нарративы часто сводят разработку ПО к “студенческой части программирования: кто-то дает вам спецификацию небольшой функции, и вы ее реализуете, или решаете задачи в стиле LeetCode на собеседованиях”.
Реальная практика гораздо шире:
Рефакторинг, который улучшает дизайн, масштабные миграции — перевод миллионов строк с COBOL на Java, меняющий целые бизнесы, непрерывное тестирование и анализ — фаззинг, property-based тестирование и другие методы для поиска багов конкурентности или исправления уязвимостей нулевого дня, а также рутину сопровождения — документирование десятилетнего кода, создание сводок истории изменений для новых коллег, ревью пулл-реквестов на стиль, производительность и безопасность.
Например, тонкая настройка GPU-ядер или непрерывные многоуровневые улучшения движка V8 в Chrome остается крайне сложной для оценки.
Современные метрики производительности были разработаны для коротких, самодостаточных задач. Хотя тесты множественного выбора до сих пор доминируют в исследованиях естественного языка, они никогда не были нормой в области ИИ для кода.
Де-факто стандарт области — SWE-Bench — ставит перед моделью задачу исправить баг в GitHub: это полезно, но все еще напоминает парадигму “студенческого программного упражнения”.
SWE-Bench касается только нескольких сотен строк кода, создает риск утечки данных из публичных репозиториев и игнорирует другие реальные контексты: ИИ-ассистированный рефакторинг, парное программирование человек-ИИ, критичные по производительности переписывания миллионов строк.
Пока бенчмарки не расширятся, чтобы захватить эти высокорискованные сценарии, измерение прогресса — и, следовательно, его ускорение — останется открытым вызовом.
Алекс Гу, первый автор и аспирант MIT по электротехнике и компьютерным наукам, видит сегодняшнее взаимодействие как “тонкую линию коммуникации”.
Когда он просит систему сгенерировать код, он часто получает большой неструктурированный файл и даже набор unit-тестов, но эти тесты поверхностны.
“У меня нет особого контроля над тем, что пишет модель”, — говорит Гу. “Без канала для ИИ, чтобы раскрыть свою собственную уверенность — ‘эта часть правильная… эту часть, возможно, перепроверьте’ — разработчики рискуют слепо доверять галлюцинированной логике [4], которая компилируется, но рушится в продакшене.”
ИИ должен знать, когда обратиться к пользователю за уточнениями.
Современные модели ИИ серьезно страдают при работе с большими кодовыми базами, часто охватывающими миллионы строк.
Базовые модели учатся на публичном GitHub, но “кодовая база каждой компании специфична и уникальна”, говорит Гу, что делает проприетарные соглашения кодирования и требования спецификаций принципиально отличающимися от данных обучения [5].
Выглядит правдоподобно, но вызывает несуществующие функции, нарушает внутренние правила стиля и не проходит пайплайны непрерывной интеграции.
Это часто приводит к тому, что ИИ-сгенерированный код “галлюцинирует” — создает контент, который выглядит правдоподобно, но не соответствует специфическим внутренним соглашениям, вспомогательным функциям или архитектурным шаблонам данной компании.
Модели часто ошибочно извлекают информацию, потому что ищут код с похожим названием (синтаксис), а не функциональностью и логикой, что действительно нужно модели, чтобы знать, как написать функцию.
“Стандартные техники поиска очень легко обмануть фрагментами кода, которые делают одно и то же, но выглядят по-разному”, — говорит Солар-Лезама.
Поскольку нет универсального решения для этих проблем, авторы призывают к объединению усилий всего сообщества.
Во-первых, нужны подробные данные, которые отражают процесс написания кода разработчиками — какой код разработчики оставляют, а какой выбрасывают, и как код рефакторится со временем.
Во-вторых, требуются общие бенчмарки для оценки, которые измеряют прогресс по качеству рефакторинга, долговечности исправления багов и корректности миграций.
В-третьих, необходимы прозрачные инструменты, которые позволяют моделям раскрывать неуверенность и приглашать к человеческому руководству, а не к пассивному принятию.
Гу называет эту повестку “призывом к действию” для более крупных open-source коллабораций, которые ни одна лаборатория не могла бы организовать в одиночку.
Солар-Лезама представляет пошаговые улучшения — “исследовательские результаты, которые по частям решают каждый из этих вызовов” — которые затем внедряются в коммерческие инструменты и постепенно превращают ИИ из помощника-автодополнения в настоящего инженерного партнера.
“Программное обеспечение уже лежит в основе финансов, транспорта, здравоохранения и мелочей повседневной жизни, и человеческие усилия, необходимые для безопасного построения и поддержания его, становятся узким местом. ИИ, который может взять на себя рутинную работу — и делать это без введения скрытых сбоев — освободит разработчиков для сосредоточения на креативности, стратегии и этике”, — говорит Гу.
“Но это будущее зависит от признания того, что автодополнение кода — это самая простая часть; сложная часть — это все остальное. Наша цель не заменить программистов. Наша цель — усилить их. Когда ИИ сможет справляться с утомительным и пугающим, инженеры-люди наконец смогут тратить время на то, что могут делать только люди.”
“Учитывая множество новых исследований в области ИИ для программирования и сообщество, часто гонящееся за последними трендами, бывает сложно отступить назад и подумать о том, какие проблемы наиболее важно решать”, — говорит Батист Розьер, ученый по ИИ в Mistral AI, который не участвовал в исследовании. “Мне понравилось читать эту работу, потому что она дает четкий обзор ключевых задач и вызовов в области ИИ для разработки ПО. Она также намечает перспективные направления для будущих исследований.”
Гу и Солар-Лезама написали статью совместно с Кушиком Сеном, профессором Калифорнийского университета в Беркли, и PhD студентами Наманом Джейном и Манишем Шетти, а также с Кевином Эллисом, доцентом Корнелльского университета, и PhD студентом Вен-Дином Ли, с Дии Ян, доцентом Стэнфордского университета, и PhD студентом Ицзя Шао, и с Зияном Ли, будущим доцентом Университета Джонса Хопкинса.
Автор: sherparpa
Источник [6]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/18062
URLs in this post:
[1] MIT News: https://news.mit.edu/2025/can-ai-really-code-study-maps-roadblocks-to-autonomous-software-engineering-0716
[2] интеллект: http://www.braintools.ru/article/7605
[3] “Challenges and Paths Towards AI for Software Engineering”: https://arxiv.org/pdf/2503.22625
[4] логике: http://www.braintools.ru/article/7640
[5] обучения: http://www.braintools.ru/article/5125
[6] Источник: https://habr.com/ru/articles/934858/?utm_source=habrahabr&utm_medium=rss&utm_campaign=934858
Нажмите здесь для печати.