DeepMind, mis on tuntud oma tehisintellekti ja närvivõrkude arenduste poolest, mis suudavad mängida arvuti- ja lauamänge inimtasemel, esitles projekti AlphaCode, mis arendab masinõppesüsteemi koodi genereerimiseks, mis suudab osaleda programmeerimiskonkurssidel Codeforces platvormil ja näidata keskmisi tulemusi. Arenduse peamiseks omaduseks on võime genereerida koodi Pythonis või C++-s, kasutades sisendi tekstina ingliskeelset ülesannet.
Süsteemi testimiseks valiti 10 uut Codeforces konkurssi, millel osales üle 5000 osaleja, mis toimusid pärast masinõppemudeli koolituse lõppu. Ülesannete täitmise tulemused võimaldasid AlphaCode'il jõuda antud konkursside edetabelis ligikaudu keskmisele tasemele (54,3%). Prognoositav üldine reiting AlphaCode’ile on 1238 punkti, mis tagab sisenemise 28% parima hulka kõigi Codeforces'i osalejate seas, kes on viimase 6 kuu jooksul vähemalt korra konkurssidel osalenud. Määratletakse, et projekt on hetkel arendamise algfaasis ja tulevikus on plaanis parandada genereeritud koodi kvaliteeti ning arendada AlphaCode'i suunas süsteemide, mis aitavad koodi kirjutamisel, või rakendus arendusvahendite poole, mida saavad kasutada inimesed, kellel ei ole programmeerimise oskusi.
Projektis kasutatakse närvivõrgu arhitektuuri "Transformer" koos proovivõtumeetodite ja filtreerimisega, mis võimaldavad genereerida erinevaid ettearvamatuid koodivariante, mis vastavad loomuliku keele tekstile. Pärast filtreerimist, klasterdamist ja järjestamist valitakse genereeritud variantide voost kõige optimaalsem töökindel kood, millele järgneb kontroll selle kohta, kas saadud tulemus on õige (iga konkurssiülesande puhul on olemas näidis sisendandmetest ja vastav tulemus, mis peaks olema saadud programmi töötamise tulemusena).

Masinõppe süsteemi esialgseks treeninguks kasutati avalikes GitHubi repositorios saadaolevat koodibaasi. Pärast esialgse mudeli ettevalmistamist viidi läbi optimeerimisetapp, mis tugines koodikogumile, kus oli näiteid probleemidest ja lahendustest, mida pakuti Codeforces, CodeChef, HackerEarth, AtCoder ja Aizu konkurside osalistele. Kokku kasutati treenimiseks 715 GB GitHubi koodi ja rohkem kui miljon lahenduse näidet tüüpiliste konkursite ülesannete osas. Enne koodi genereerimise etappi läbis ülesande tekst normaliseerimise, kus kõrvaldatakse kõik üleliigne ja jäetakse alles vaid olulised osad.

Allikas: opennet.ru
