29.06.2022

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

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

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

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

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

Источник.