Фото 65.jpg
ИИ автоматизирует всё, но может ли он заменить программистов? Фото: Midjourney

Группа исследователей только что опубликовала подробную карту проблем, с которыми сталкивается искусственный интеллект (ИИ) при разработке программного обеспечения, и предложила план исследований для дальнейшего развития этой области.

Представьте себе будущее, в котором ИИ незаметно берёт на себя рутинные задачи разработки программного обеспечения: рефакторинг сложного кода, миграцию устаревших систем и выявление состояний гонки, чтобы инженеры-программисты могли сосредоточиться на архитектуре системы, дизайне и творческих задачах, которые машины пока не могут решить. Последние достижения в области ИИ, похоже, приближают эту мечту к реальности.

Однако новое исследование, проведенное учеными Лаборатории компьютерных наук и искусственного интеллекта (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