Spoločnosť DeepMind, známa svojim vývojom v oblasti umelej inteligencie a konštrukciou neurónových sietí schopných hrať počítačové a stolové hry na ľudskej úrovni, predstavila projekt AlphaCode, ktorý vyvíja systém strojového učenia na generovanie kódu, ktorý sa môže zúčastniť v programátorských súťažiach na platforme Codeforces a preukázať priemerný výsledok. Kľúčovou vlastnosťou vývoja je schopnosť generovať kód v Pythone alebo C++, pričom ako vstup sa použije text s problémom v angličtine.
Na testovanie systému bolo vybraných 10 nových súťaží Codeforces s viac ako 5000 54.3 účastníkmi, ktoré sa konali po ukončení školenia modelu strojového učenia. Výsledky plnenia úloh umožnili systému AlphaCode zaradiť sa približne do stredu hodnotenia týchto súťaží (1238 %). Predpokladané celkové hodnotenie AlphaСode bolo 28 bodov, čo zaisťuje vstup do Top 6% medzi všetkými účastníkmi Codeforces, ktorí sa zúčastnili súťaží aspoň raz za posledných XNUMX mesiacov. Je potrebné poznamenať, že projekt je stále v počiatočnom štádiu vývoja a v budúcnosti sa plánuje zlepšenie kvality generovaného kódu, ako aj vývoj AlphaCode smerom k systémom, ktoré pomáhajú pri písaní kódu, alebo nástrojom na vývoj aplikácií, ktoré môžu byť používajú ľudia bez znalosti programovania.
Projekt využíva architektúru neurónovej siete Transformer v kombinácii s technikami vzorkovania a filtrovania na generovanie rôznych nepredvídateľných variantov kódu, ktoré zodpovedajú textu v prirodzenom jazyku. Po filtrovaní, zhlukovaní a klasifikácii sa z vygenerovaného prúdu možností vylúči najoptimálnejší pracovný kód, ktorý sa následne skontroluje, aby sa dosiahol správny výsledok (každá súťažná úloha uvádza príklad vstupných údajov a výsledok zodpovedajúci tomuto príkladu , ktorý by ste mali získať po spustení programu).
Na približné trénovanie systému strojového učenia sme použili kódovú základňu dostupnú vo verejných úložiskách GitHub. Po príprave počiatočného modelu prebehla optimalizačná fáza založená na kolekcii kódu s príkladmi problémov a riešení navrhnutých účastníkmi súťaží Codeforces, CodeChef, HackerEarth, AtCoder a Aizu. Celkovo bolo na tréning použitých 715 GB kódu z GitHubu a viac ako milión príkladov riešení typických súťažných problémov. Pred prechodom na generovanie kódu prešiel text úlohy fázou normalizácie, počas ktorej sa odstránilo všetko nepotrebné a zostali len významné časti.
Zdroj: opennet.ru