Новое исследованиепоказало, что представленная в феврале нейросеть DeepMind AlphaCodeспособна стать полноценным помощником опытных программистов, но всё ещё не сможет их заменить полностью.
AlphaCode изучила синтаксисы большого объема кода из GitHub, а затем научилась переводить описания задач в код, используя тысячи задач с соревнований по программированию. AlphaCode может генерировать до 1 млн. решений задачи (на Python или C++) и отсеивает неподходящие. После обучения AlphaCode решила около 34% поставленных задач.
Чтобы отфильтровать лишние решения:
- AlphaCode сначала сохраняет только 1% программ, которые проходят тестовые случаи.
- Чтобы еще больше сузить поиск решения, он группирует хранителей на основе сходства их выходных данных со сгенерированными входными данными;
- Затем он отправляет программы из каждого кластера одну за другой, начиная с самого большого кластера, пока не остановится на успешной или не достигнет 10 представлений (средний максимум, который люди представляют на соревнованиях). Отправка из разных кластеров позволяет протестировать широкий спектр тактик программирования.
В онлайн-соревнованиях по программированию AlphaCode обыграла более 45% (из 5000) программистов. Более того, при решении задач AlphaCode не использовала готовые шаблоны, а генерировала новый код.
По словам DeepMind, нейросеть может выполнять рутинную работу с ПО, освобождая от этого опытных разработчиков, чтобы они могли сфокусироваться на задачах более высокого уровня. Также AlphaCode способна помочь людям без навыков программирования создавать простые программы, но иногда она допускает ошибки – например, создает переменные и не использует их.
В DeepMind отмечают, что текущие навыки AlphaCode применимы только для соревнований программистов, но в будущем AlphaCode сделает программирование полностью автоматизированным.