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






Комментарий (0)