A DeepMind, amely a mesterséges intelligencia és az emberi szintű számítógépes és társasjátékokban való részvételre képes neurális hálózatok fejlesztésével vált ismertté, bemutatta az AlphaCode projektet, amely egy gépi tanulási rendszert fejleszt a kódgeneráláshoz. Ez a rendszer képes részt venni a Codeforces programozói versenyein, és átlagos teljesítményt mutat. A fejlesztés kulcsfontosságú jellemzője, hogy kódot tud generálni Python vagy C++ nyelveken, angol nyelvű feladatmegfogalmazás alapján.
A rendszer teszteléséhez 10 új Codeforces versenyt választottak ki, amelyekben több mint 5000 résztvevő indult, és amelyek a gépi tanulási modell tréningje után zajlottak. Az AlphaCode feladatainak elvégzésének eredményei alapján a rendszer körülbelül a versenyteljesítmények középmezőnyében helyezkedett el (54,3%-os teljesítménnyel). Az AlphaCode várható összesített pontszáma 1238 pont, ami a Codeforces összes résztvevőjének legjobb 28%-ába való bekerülést jelenti, akik az elmúlt 6 hónapban legalább egyszer részt vettek versenyeken. Megjegyzik, hogy a projekt még kezdeti fejlesztési szakaszban van, és a jövőben tervezik a generált kód minőségének javítását, valamint az AlphaCode olyan rendszerekké történő fejlesztését, amelyek segítik a kódírást vagy alkalmazásfejlesztő eszközökké válnak, amelyeket programozási ismeretek nélkül is használhatnak az emberek.
A projekt a „Transformer” neurális hálózati architektúráját alkalmazza szampling és szűrési módszerekkel, amelyek lehetővé teszik a természetes nyelvű szövegnek megfelelő különböző, nem kiszámítható kódvariánsok generálását. A szűrés, klaszterezés és rangsorolás után a generált opciók áramából a legoptimálisabb működő kódot választják ki, amelyet ezután ellenőriznek annak érdekében, hogy helyes eredményt kapjanak (minden egyes versenydolgozatban meg van adva egy bemeneti adat példa és a megfelelő eredmény, amelyet a program futtatása után el kell érni).

A gépi tanulási rendszer durva edzéséhez az GitHub nyilvános repozitóriumaiban elérhető kódalap volt használva. A kezdeti modell előkészítése után az optimalizálási fázis valósult meg, amely egy kódgyűjteményt alapul véve készült, amelyben a Codeforces, CodeChef, HackerEarth, AtCoder és Aizu versenyeinek feladatmegoldási példáit találhatók. Összesen 715 GB GitHub kódot és több mint egymillió tipikus versenypéldafeladat megoldását használták az edzés során. A kódgenerálás előtt a feladat szövege egy normalizáló fázison ment keresztül, amely során minden felesleges részletet eltávolítottak, így csak a jelentős részek maradtak meg.

Forrás: opennet.ru
