DeepMind представил систему машинного обучения для генерации кода по текстовому описанию задачи

Компания DeepMind, получившая известность своими разработками в области искусственного интеллекта и построения нейронных сетей, способных играть в компьютерные и настольные игры на уровне человека, представила проект AlphaСode, развивающий систему машинного обучения для генерации кода, способную участвовать в соревнованиях по программированию на платформе Codeforces и демонстрировать средний результат. Ключевой особенностью разработки является является способность генерировать код на языках Python или C++, принимая на входе текст с постановкой задачи на английском языке.

Для тестирования системы были отобраны 10 новых соревнований Codeforces с более 5000 участниками, проведённые после завершения тренировки модели машинного обучения. После выполнения задания система AlphaСode вошла примерно в середину рейтинга указанных соревнований (54.3%). Прогнозируемый общий рейтинг AlphaСode составил 1238 балов, что обеспечивает вхождение в Top 28% среди всех участников, хотя бы раз участвующих в соревнованиях за последние 6 месяцев. Отмечается, что проект пока находится на начальной стадии развития и в будущем планируется повысить качество генерируемого кода, а также развивать AlphaСode в сторону систем, помогающих в написании кода, или средств разработки приложений, которыми смогут пользоваться люди без навыков программирования.

В проекте используется архитектура нейронной сети “Transformer” в сочетании с методами семплирования и фильтрации, позволяющими генерировать различные непредсказуемые варианты кода, соответствующие тексту на естественном языке. После фильтрации, кластеризации и ранжирования из формируемого потока вариантов отсеивается наиболее оптимальный рабочий код, который затем проверяется на предмет получения верного результата (в каждом задании соревнований указывается пример входных данных и соответствующий этому примеру результат, который должен быть получен после выполнении программы).


Для грубой тренировки системы машинного обучения использовалась кодовая база, доступная в публичных репозиториях GitHub. После подготовке начальной модели выполнялась фаза оптимизации модели, реализуемая на основе коллекции кода с примерами задач и решений, предлагаемых участникам соревнований Codeforces, CodeChef, HackerEarth, AtCoder и Aizu. Перед переходом к генерации кода текст задачи проходит фазу нормализации, на которой исключается всё лишнее и оставляются только значимые части.


Release. Ссылка here.