Podjetje DeepMind, znano po svojih razvojih na področju umetne inteligence in gradnji nevronskih mrež, ki so sposobne igrati računalniške in namizne igre na ravni človeka, je predstavilo projekt AlphaCode, ki razvija sistem strojnega učenja za generiranje kode, sposoben sodelovati na programskih tekmovanjih na platformi Codeforces in pokazati povprečen rezultat. Ključna značilnost razvoja je sposobnost generiranja kode v programskih jezikih Python ali C++, pri čemer sprejema besedilo z opredelitvijo naloge v angleščini.
Za testiranje sistema je bilo izbranih 10 novih tekmovanj Codeforces z več kot 5000 udeleženci, ki so potekala po koncu usposabljanja modela strojnega učenja. Rezultati reševanja nalog so omogočili sistemu AlphaCode, da je dosegel približno sredino lestvice omenjenih tekmovanj (54,3 %). Napovedana skupna ocena AlphaCode je znašala 1238 točk, kar zagotavlja uvrstitev v najvišjih 28 % vseh udeležencev Codeforces, ki so vsaj enkrat sodelovali na tekmovanjih v zadnjih 6 mesecih. Opaženo je, da projekt trenutno še vedno v fazi razvoja in da se v prihodnosti načrtuje izboljšanje kakovosti generirane kode ter razvoj AlphaCode v smeri sistemov, ki pomagajo pri pisanju kode ali orodij za razvoj aplikacij, ki jih lahko uporabljajo ljudje brez znanja programiranja.
V projektu se uporablja arhitektura nevronske mreže »Transformer«, ki združuje metode vzorčenja in filtriranja, kar omogoča generiranje različnih nepredvidljivih variant kode, ki ustrezajo besedilu v naravnem jeziku. Po filtriranju, klasifikaciji in razvrščanju se iz oblikovanega toka variant odstrani najbolj optimalna delujoča koda, ki se nato preveri glede pravilnosti rezultata (v vsakem nalogu tekmovanja so navedeni primeri vhodnih podatkov in ustrezen rezultat, ki ga mora program vrniti po izvedbi).

Za grobu obučavanje sistema mašinskog učenja korišćena je kodna baza dostupna u javnim GitHub repozitorijumima. Nakon pripreme početnog modela, izvršavano je optimizovanje faze, zasnovano na kolekciji koda sa primerima zadataka i rešenjima ponuđenim učesnicima takmičenja Codeforces, CodeChef, HackerEarth, AtCoder i Aizu. Ukupno je za obučavanje korišćeno 715 GB koda sa GitHub-a i više od milion primera rešenja standardnih zadataka takmičenja. Pre prelaska na generisanje koda, tekst zadatka prolazi kroz fazu normalizacije, tokom koje se isključuju sve nepotrebne stvari i ostavljaju samo značajni delovi.

Izvor: opennet.ru
