Кампанія DeepMind, якая атрымала вядомасць сваімі распрацоўкамі ў галіне штучнага інтэлекту і пабудовы нейронавых сетак, здольных гуляць у кампутарныя і настольныя гульні на ўзроўні чалавека, прадставіла праект AlphaСode, які развівае сістэму машыннага навучання для генерацыі кода, здольную ўдзельнічаць у спаборніцтвах па праграмаванні на платформе Codefor сярэдні вынік. Ключавой асаблівасцю распрацоўкі з'яўляецца здольнасць генераваць код на мовах 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 і больш за мільён прыкладаў рашэнняў тыпавых задач спаборніцтваў. Перад пераходам да генерацыі кода тэкст задачы праходзіў фазу нармалізацыі, на якой выключалася ўсё лішняе і пакідаліся толькі значныя часткі.
Крыніца: opennet.ru