Инженеры подразделения Alphabet DeepMind AI разработали систему искусственного интеллекта AlphaCode, которая может генерировать код и решать задачи из чемпионатов по программированию. Нейросеть обучали пониманию постановки задачи и поискам её решения.
Инженеры Google применили новый подход к обучению ИИ. Они предположили, что описание задачи — это выражение того, что должен делать алгоритм, а её решение — то же самое, но изложенное на другом языке. Сначала нейросеть обучили пониманию описаний задачи, а затем — созданию программного кода на основании своего внутреннего представления.
Для обучения Alphabet использовали архив GitHub с более чем 700 Гбайт кода, а также комментарии к нему на естественном языке. Затем в DeepMind организовали внутренний чемпионат по программированию, и на его материалах обучили ИИ. Ему показали полный цикл: постановка задачи, работающий и неработающий код, а также тестовые примеры для его проверки. Инженеры отметили, что этот подход не новый, но в этот раз для обучения выделили больше ресурсов.
Изначально более 40% предлагаемых нейросетью решений либо требовали слишком больших аппаратных ресурсов, либо решение занимало слишком много времени. После анализа кода инженеры обнаружили, что при решении различных задач система часто использовала схожие фрагменты кода, которые выдавали одинаковые ответы при одинаковых исходных данных.
В DeepMind отсеяли некорректные варианты, и AlphaCode смогла решать задачи на уровне программистов с опытом работы от нескольких месяцев до года. В итоге нейросеть попала в число справившихся с задачами 54% конкурсантов на чемпионате.
Чтобы улучшить работу нейросети, инженеры ввели автоматизированную проверку по 100 тысячам предлагаемых системой решений. Это приводило к пропорциональному росту доли правильных ответов, но одновременно росла и ресурсоёмкость вычислительной системы. Изначально для обучения требовался объём энергии, в 16 раз превышающий годовую потребность средней американской семьи.
В итоге инженеры сделали вывод, что система предлагает корректные решения, но при усложнении условий задачи растёт её ресурсоёмкость. Таким образом, по их словам, AlphaCode может выступать в качестве помощника программистов, но не способна заменить их.
В феврале DeepMind впервые представила AlphaCode, которая, по ее словам, «пишет компьютерные программы на конкурентоспособном уровне».
В мае компания выпустила систему искусственного интеллекта «общего назначения», которую можно научить выполнять множество различных типов задач. Исследователи обучили систему под названием Gato выполнять 604 задания, в том числе добавлять подписи к изображениям, участвовать в диалогах, складывать блоки с помощью роборуки и играть в игры Atari.
В ноябре сообщалось, что Google запустила новый секретный проект Pitchfork, в рамках которого компания намерена обучить искусственный интеллект писать и исправлять код.