Компания DeepMind, известна със своите разработки в областта на изкуствения интелект и изграждането на невронни мрежи, способни да играят компютърни и настолни игри на ниво на човека, представи проекта AlphaСode, който развива система за машинно обучение за генериране на код, способна да участва в състезания по програмиране на платформата Codeforces и да демонстрира средни резултати. Ключовата характеристика на разработката е способността да генерира код на езици Python или C++, приемайки текст с постановка на задачата на английски език.
За тестването на системата бяха избрани 10 нови състезания Codeforces с над 5000 участника, проведени след завършването на обучението на модела за машинно обучение. Резултатите от изпълнението на задачите позволиха на системата AlphaСode да влезе в средата на класирането на посочените състезания (54.3%). Прогнозираният общ рейтинг на AlphaСode е 1238 точки, което осигурява влизане в топ 28% сред всички участници в Codeforces, участвали поне веднъж в състезания през последните 6 месеца. Отбелязва се, че проектът все още е в начален етап на развитие и в бъдеще се планира да се увеличи качеството на генерирания код, както и да се развива AlphaСode в посока на системи, помагащи в написването на код, или инструменти за разработка на приложения, които могат да използват хора без умения за програмиране.
В проекта се използва архитектура на невронната мрежа „Transformer“ в съчетание с методи за семплиране и филтриране, позволяващи генерирането на различни непредсказуеми варианти на код, които съответстват на текста на естествения език. След филтрирането, кластеризирането и подреждането, от потока на генерираните варианти се отсява най-оптималният работещ код, който след това се проверява за получаване на верен резултат (във всяка задача на състезанието се посочва пример за входни данни и съответстващ на него резултат, който трябва да бъде получен след изпълнението на програмата).

За груба тренировка на системата за машинно обучение бе използвана кодова база, налична в публични хранилища на GitHub. След подготовката на началния модел, се извърши фаза на оптимизация, осъществявана на основата на колекция от код с примери за задачи и решения, предлагани на участниците в състезанията Codeforces, CodeChef, HackerEarth, AtCoder и Aizu. Общо за тренировката бяха използвани 715 GB код от GitHub и над един милион примери за решения на стандартни задачи от състезания. Преди да преминем към генериране на код, текстът на задачата премина през фаза на нормализация, при която бе изключено всичко излишно и останаха само значимите части.

Източник: opennet.ru
