
Группа исследователей только что опубликовала подробную карту проблем, с которыми сталкивается искусственный интеллект (ИИ) при разработке программного обеспечения, и предложила план исследований для дальнейшего развития этой области.
Представьте себе будущее, в котором ИИ незаметно берёт на себя рутинные задачи разработки программного обеспечения: рефакторинг сложного кода, миграцию устаревших систем и выявление состояний гонки, предоставляя инженерам-программистам возможность сосредоточиться на архитектуре системы, дизайне и творческих задачах, которые машины пока не могут решить. Последние достижения в области ИИ, похоже, приближают эту мечту к реальности.
Однако новое исследование, проведенное учеными Лаборатории компьютерных наук и искусственного интеллекта (CSAIL) Массачусетского технологического института и партнерских исследовательских институтов, показало, что: чтобы реализовать это будущее, мы должны сначала напрямую взглянуть на вполне реальные проблемы настоящего времени.
«Многие говорят, что программисты больше не нужны, потому что ИИ может автоматизировать всё», — сказал Армандо Солар-Лезама, профессор электротехники и информатики Массачусетского технологического института, старший научный сотрудник CSAIL и ведущий автор исследования. «На самом деле, мы добились значительного прогресса. Инструменты, которыми мы располагаем сегодня, гораздо мощнее, чем были раньше. Но нам ещё предстоит пройти долгий путь, чтобы полностью реализовать потенциал автоматизации».
Профессор Армандо Солар-Лезама утверждает, что распространённое восприятие программной инженерии заключается в том, что это задача, похожая на студенческое задание по программированию: взять небольшую функцию и написать код для её обработки или выполнить упражнение в стиле LeetCode. Реальность гораздо сложнее: от рефакторинга кода для оптимизации дизайна до масштабных миграций с миллионами строк кода с COBOL на Java, которые меняют весь технологический стек компании.
Измерение и коммуникация остаются сложными проблемами
Оптимизации кода промышленного масштаба, такие как доработка ядра графического процессора или многоуровневые улучшения в движке Chrome V8, всё ещё сложно оценить. Текущие бенчмарки в основном предназначены для небольших, локальных задач. Наиболее практичная метрика, SWE-Bench, просто просит модель ИИ исправить ошибку на GitHub — это низкоуровневое упражнение по программированию, которое включает несколько сотен строк кода и потенциально раскрывает данные, игнорируя широкий спектр реальных сценариев, таких как рефакторинг с помощью ИИ, парное программирование человек-машина или высокопроизводительное переписывание систем с миллионами строк кода. Пока бенчмарки не расширятся и не охватят эти высокорисковые сценарии, измерение прогресса — и, следовательно, его ускорение — останется открытой задачей.
Кроме того, взаимодействие человека и машины также является серьёзным препятствием. Аспирант Алекс Гу, ведущий автор, отметил, что в настоящее время взаимодействие с ИИ всё ещё похоже на «хрупкую линию связи». Когда ИИ запрашивает генерацию кода, он часто получает в ответ большие, неструктурированные файлы вместе с несколькими простыми и схематичными наборами тестов. Этот пробел также отражается в том, что ИИ не может эффективно использовать программные инструменты, знакомые человеку, такие как отладчики, статические анализаторы и т. д.
Призыв к действию от сообщества
Авторы утверждают, что не существует волшебной палочки для решения этих проблем, и призывают к усилиям в масштабе сообщества: созданию данных, которые отражают реальный процесс разработки программистов (какой код сохранить, какой код удалить, как код рефакторится с течением времени и т. д.); созданию общих инструментов оценки качества рефакторинга, устойчивости исправлений и точности перехода системы; а также созданию прозрачных инструментов, которые позволяют ИИ выражать неопределенность и приглашать человеческое вмешательство.
Аспирант Алекс Гу видит в этом «призыв к действию» для крупных сообществ разработчиков ПО с открытым исходным кодом, который ни одна лаборатория не может обеспечить в одиночку. Solar-Lezama предполагает, что прогресс будет происходить постепенно, небольшими шагами — «результатами исследований, которые решают одну часть проблемы за раз», — превращая ИИ из «инструмента для подсказки кода» в настоящего инженерного партнёра.
«Почему это важно? Программное обеспечение уже лежит в основе финансов, транспорта, здравоохранения и практически любой повседневной деятельности. Но человеческие усилия по его созданию и безопасной поддержке становятся узким местом», — сказал Гу. «ИИ, способный выполнять тяжёлую работу, не допуская скрытых ошибок, освободил бы программистов для сосредоточения на творчестве, стратегии и этике. Но чтобы добиться этого, нам нужно понимать, что завершение кода — это лёгкая часть, а всё остальное — сложная часть».
(Краткий перевод из новостей MIT)
Источник: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html
Комментарий (0)