DeepMind заявляет, что ее нейросеть пишет программы не хуже среднего программиста

DeepMind создала систему искусственного интеллекта под названием AlphaCode, которая, по ее словам, «пишет компьютерные программы на конкурентоспособном уровне». Систему проверили на соответствие задачам кодирования, используемым в соревнованиях среди людей, и обнаружила, что программа оказалась среди 54% ​​лучших. 

681669d434a36f2983c27a1c1eb8f77d.PNG

По мнению DeepMind, это значительный шаг вперед для автономного кодирования, хотя навыки AlphaCode не обязательно репрезентативны для задач программирования, с которыми сталкивается средний кодер.

Ориол Виньялс, главный научный сотрудник DeepMind, отмечает, что исследование все еще находится на ранней стадии, но его результаты приблизили компанию к созданию гибкого ИИ для решения сложных задач кодирования. «Мы воодушевлены потенциалом AlphaCode для помощи программистам и не-программистам в написании кода, повышении производительности или создании новых способов создания программного обеспечения», — сказал Виньялс. 

В одном примере задачи, где тестировалась AlphaCode, участников просили найти способ преобразовать одну строку случайных повторяющихся букв s и t, используя ограниченный набор входных данных:  

«Вам заданы две строки s и t, каждая из которых состоит из строчных букв латинского алфавита. Вы собираетесь посимвольно напечатать строку s, начиная с первого символа и заканчивая последним.

Когда вы собираетесь напечатать какой-то символ, вместо того, чтобы нажать на кнопку, печатающую этот символ, вы можете нажать кнопку «Backspace». Нажатие на эту кнопку удаляет последний напечатанный символ, который еще не был удален (или ничего не делает, если все напечатанные символы уже удалены или вы еще не напечатали ни одного символа). Например, если строка s — «abcbd», и вы нажимаете на кнопку Backspace вместо печати первого и четвертого символа, в результате получится строка «bd» (первое нажатие Backspace не удалит ни одного символа, а второе нажатие этой кнопки удалит символ «c»). Другой пример: если s равна «abcaa», и вы нажимаете Backspace вместо двух последних букв, получается «a».

Вы должны определить, можно ли получить строку t, если вы попробуете набрать строку s, нажимая Backspace вместо нажатия кнопок, соответствующих некоторым (возможно, ни одному) буквам строки s».

5d4256ae1484591047f9148773119bc6.jpg

AlphaCode сгенерировал большее количество возможных ответов и отсеял их, запустив код и проверив вывод, как это сделал бы человек-конкурент. 

Систему протестировали на 10 задачах, которые решали 5000 пользователей на сайте Codeforces. В среднем она входит в число 54,3% лучших по ответам.

97753f586664f161bf35afba894dc1de.jpg

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

Многие другие компании работают над аналогичными приложениями. Например, в августе 2021 года OpenAI выпустила Codex — новую систему, которая автоматически преобразует в код простые английские фразы. Codex основан на GPT-3.

Однако пока системы далеки от того, чтобы просто взять на себя работу программистов-людей. Код, который они производят, часто содержит ошибки, а, поскольку алгоритмы обычно обучаются на библиотеках общедоступного кода, они иногда воспроизводят материалы, защищенные авторским правом.

Так, в июне 2021 года Microsoft и GitHub представили помощника программиста Copilot на базе нейросети Codex от Open AI. Система обучена работать с различными фреймворками и языками программирования. В августе вышла усовершенствованная версия Codex, которая переводит английские фразы в программный код.

Разработчики заметили, что нейросетевой помощник генерирует строчки из проектов с открытым исходным кодом, не подчиняясь первоначальной лицензии. Они также стали жаловаться, что Copilot вместо нескольких строк нужного кода генерирует десятки строк с цитатами и комментариями из проектов с открытым исходным кодом. GitHub уточнила, что Copilot обычно не воспроизводит точные фрагменты кода, а создает производные работы из ранее полученных входных данных. Компания утверждает, что это происходит лишь в 0,1% случаев. 

Затем GitHub признал, что при обучении Copilot разработчики использовали весь доступный в репозиториях сервиса публичный код без учета типа лицензии.

Также выяснилось, что производимый Copilot код примерно в 40% содержит ошибки и уязвимости. 

© Habrahabr.ru