Science: Искусственный интеллект учится писать компьютерный код ‘ошеломляющим’ прогрессом

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Программное обеспечение управляет миром. Он управляет смартфонами, ядерным оружием и автомобильными двигателями. Но существует глобальная нехватка программистов. Разве не было бы неплохо, если бы кто-нибудь мог объяснить, что они хотят, чтобы программа делала, и компьютер мог бы перевести это в строки кода?

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

“Это очень впечатляет, производительность, которой они способны достичь в некоторых довольно сложных задачах”, - говорит Армандо Солар-Лезама, руководитель группы компьютерного программирования в Массачусетском технологическом институте.

AlphaCode выходит за рамки предыдущего стандарта написания кода для искусственного интеллекта: Codex, системы, выпущенной в 2021 году некоммерческой исследовательской лабораторией OpenAI. Лаборатория уже разработала GPT-3, “модель большого языка”, которая способна имитировать и интерпретировать человеческий текст после обучения на миллиардах слов из цифровых книг, статей Википедии и других страниц интернет-текста. Путем тонкой настройки GPT-3 на более чем 100 гигабайтах кода из Github, онлайн-репозитория программного обеспечения, OpenAI создала Codex. Программное обеспечение может писать код по запросу с повседневным описанием того, что оно должно делать — например, подсчитывать гласные в строке текста. Но он плохо работает, когда ему поручают сложные задачи.

Создатели AlphaCode сосредоточились на решении этих сложных проблем. Как и исследователи Codex, они начали с того, что загрузили в большую языковую модель много гигабайт кода с GitHub, просто чтобы ознакомить ее с синтаксисом кодирования и соглашениями. Затем они обучили его переводить описания проблем в код, используя тысячи задач, собранных на соревнованиях по программированию. Например, проблема может потребовать, чтобы программа определила количество двоичных строк (последовательностей нулей и единиц) длины n, в которых нет последовательных нулей.

Когда возникает новая проблема, AlphaCode генерирует кодовые решения-кандидаты (на Python или C++) и отфильтровывает плохие. Но в то время как исследователи ранее использовали такие модели, как Codex, для генерации десятков или сотен кандидатов, DeepMind заставил AlphaCode генерировать до более чем 1 миллиона.

Чтобы отфильтровать их, AlphaCode сначала сохраняет только 1% программ, которые проходят тестовые случаи, сопровождающие проблемы. Чтобы еще больше сузить поле, он группирует хранителей на основе сходства их результатов с выдуманными входными данными. Затем он отправляет программы из каждого кластера, одну за другой, начиная с самого большого кластера, пока не остановится на одной успешной или не достигнет 10 заявок (примерно максимум, который люди подают на конкурсах). Отправка из разных кластеров позволяет ит-отделу тестировать широкий спектр тактик программирования. Это самый инновационный шаг в процессе AlphaCode, говорит Кевин Эллис, специалист по информатике из Корнельского университета, который занимается кодированием искусственного интеллекта.

После обучения AlphaCode решил около 34% поставленных задач, сообщает DeepMind на этой неделе в журнале Science. (По аналогичным показателям Codex добился успеха в однозначном проценте.)

Чтобы еще больше проверить свое мастерство, DeepMind ввела AlphaCode в онлайн-соревнования по кодированию. В конкурсах, в которых участвовало не менее 5000 человек, система превзошла 45,7% программистов. Исследователи также сравнили его программы с программами из базы данных обучения и обнаружили, что они не дублируют большие разделы кода или логики. Это породило нечто новое — творческий подход, который удивил Эллиса.

“По-прежнему впечатляет, насколько хорошо работают методы машинного обучения, когда вы их масштабируете”, - говорит он. Результаты “ошеломляющие”, добавляет Войцех Заремба, соучредитель OpenAI и соавтор их статьи Codex.

Кодирование искусственного интеллекта может иметь приложения, выходящие за рамки победы в конкурсах, говорит Юджиа Ли, специалист по информатике в DeepMind и соавтор статьи. Это могло бы выполнять сложную работу с программным обеспечением, освобождая разработчиков для работы на более высоком или более абстрактном уровне, или это могло бы помочь некодерам создавать простые программы.

Дэвид Чой, другой автор исследования в DeepMind, представляет себе запуск модели в обратном порядке: перевод кода в объяснения того, что он делает, что может принести пользу программистам, пытающимся понять чужой код. “Есть гораздо больше вещей, которые вы можете сделать с моделями, которые понимают код в целом”, - говорит он.

На данный момент DeepMind хочет уменьшить количество системных ошибок. Ли говорит, что даже если AlphaCode генерирует функциональную программу, он иногда допускает простые ошибки, такие как создание переменной и неиспользование ее.

Есть и другие проблемы. AlphaCode требует десятков миллиардов триллионов операций для решения каждой задачи — вычислительная мощность, которой обладают только крупнейшие технологические компании. И проблемы, которые он решал на онлайн-соревнованиях по программированию, были узкими и самодостаточными. Но реальное программирование часто требует управления большими пакетами кода в нескольких местах, что требует более целостного понимания программного обеспечения, говорит Солар-Лезама.

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

“Даже если такого рода технология станет сверхуспешной, вы хотели бы относиться к ней так же, как вы относитесь к программисту в организации”, - говорит Солар-Лезама. “Вам никогда не нужна организация, в которой один программист может вывести из строя всю организацию”.


Источник: www.science.org

Комментарии: