Новая система искусственного интеллекта DeepMind под названием AlphaCode смогла «достичь производительности примерно человеческого уровня» в соревновании по программированию. Результаты были опубликованы в журнале Science.
Создатели AlphaCode сосредоточились на решении сложных проблем. Они начали с того, что загрузили в большую языковую модель много гигабайт кода из GitHub просто для ознакомления с синтаксисом кодирования и его правилами. Затем они научили AlphaCode переводить описания задач в код, используя тысячи задач, собранных на соревнованиях по программированию. Например, задача может потребовать от программы определить количество двоичных строк (последовательностей нулей и единиц) длины n, в которых нет последовательных нулей. Когда появляется новая проблема, AlphaCode генерирует кодовые решения-кандидаты (на Python или C++) и отфильтровывает плохие. Но в то время, как исследователи ранее использовали такие модели, как Codex, для генерации десятков или сотен кандидатов, DeepMind заставил AlphaCode генерировать до 1 млн.
Чтобы отфильтровать их, AlphaCode сначала сохраняет только 1% программ, которые проходят тестовые случаи, сопровождающие проблемы. Чтобы еще больше сузить поле, он группирует программы на основе сходства их выходных данных с выдуманными входными данными. Затем отправляет программы из каждого кластера одну за другой, начиная с самого большого кластера, пока не остановится на успешной или не достигнет 10 представлений (приблизительно максимум, который люди представляют на соревнованиях). Отправка из разных кластеров позволяет протестировать широкий спектр тактик программирования. Это самый инновационный шаг в процессе AlphaCode, говорит Кевин Эллис, ученый-компьютерщик из Корнельского университета, занимающийся кодированием ИИ.
После обучения AlphaCode решил около 34% поставленных задач, сообщает DeepMind в журнале Science. Чтобы еще раз проверить свое мастерство, DeepMind представила AlphaCode в онлайн-соревнованиях по программированию. В конкурсах с числом участников не менее 5000 система обыграла 45,7% программистов. Исследователи также сравнили его программы с программами в обучающей базе данных и обнаружили, что они не дублируют большие участки кода или логики. Это породило нечто новое – креативность, которая удивила Эллиса. В исследовании отмечается долгосрочный риск программного обеспечения, которое рекурсивно самосовершенствуется. Некоторые эксперты говорят, что такое самосовершенствование может привести к сверхразумному ИИ, который захватит мир. Хотя этот сценарий может показаться маловероятным, исследователи по-прежнему хотят, чтобы область кодирования ИИ установила барьеры, встроенные системы сдержек и противовесов.