A mesterséges intelligencia területén végzett fejlesztéseiről ismert DeepMind valamint a közelmúltban bemutatott, emberi szinten számítógépes és társasjátékozásra alkalmas neurális hálózatok kiépítése az AlphaCode projekt amely leírja, hogyan gépi tanulási rendszer kódgeneráláshoz hogy programozási versenyeken vehetsz részt a Codeforces platformon és átlagos eredményt mutathatsz fel.
Megemlítik, hogy a projekt a „Transformer” neurális hálózati architektúrát használja más mintavételi és szűrési módszerekkel kombinálva a természetes nyelvű szövegnek megfelelő különféle, előre nem látható kódváltozatokat generál.
A módszer, hogyan működik Alfakód szűrésen, csoportosításon és rendezésen alapul, majd a generált opciófolyamból kiválasztja a legoptimálisabb működő kódot, amelyet ezután ellenőrzi a megfelelő eredmény elérése érdekében (a verseny minden feladatában egy példa a bemeneti adatok és a megfelelő eredmény) ehhez a példához, amelyet a program végrehajtása után kell megszerezni).
Részletezzük az AlphaCode-ot, amely transzformátor alapú nyelvi modelleket használ a kód létrehozásához, soha nem látott méretekben, majd intelligensen kiszűri az ígéretes programok kis halmazát.
Teljesítményünket a Codeforces-en, egy népszerű platformon rendezett versenyek segítségével érvényesítjük, amely rendszeres versenyeknek ad otthont, és több tízezer jelentkezőt vonz a világ minden tájáról, hogy teszteljék kódolási képességeiket. 10 legutóbbi versenyt választottunk ki értékelésre, mindegyik újabb, mint a képzési adataink. Az AlphaCode nagyjából egy szinten volt az átlagos versenytársakéval, ami az első alkalom, hogy egy AI kódgeneráló rendszer elérte a versenyképes teljesítményszintet a programozási versenyeken.
Hozzávetőleges rendszerképzéshez gépi tanulás, kiemeljük, hogy a nyilvános GitHub-tárolókban elérhető alapkódot használták. A kezdeti modell elkészítése után a Codeforces, CodeChef, HackerEarth, AtCoder és Aizu versenyek résztvevői számára felkínált kódgyűjtemény alapján egy optimalizálási fázist hajtottak végre.
Összességében az AlphaCode kialakításához 715 GB GitHub kód használt és több mint millió példa a verseny tipikus problémáinak megoldására. A kódgenerálás megkezdése előtt a feladat szövege egy normalizálási fázison ment keresztül, melyben minden fölösleges kizárásra került, és csak a lényeges részek maradtak meg.
A rendszer tesztelésére 10 új Codeforces versenyt választottak ki több mint 5.000 résztvevővel, amelyeket a gépi tanulási modell képzésének befejezése után tartottak.
Nyugodtan állíthatom, hogy az AlphaCode eredményei felülmúlták a várakozásomat. Szkeptikus voltam, mert az egyszerű versenyproblémáknál is gyakran nem csak az algoritmus megvalósítása, hanem (és ez a legnehezebb) kitalálása is szükséges. Az AlphaCode egy ígéretes új versenytárs szintjén teljesített. Alig várom, hogy lássam, mi jön!
A feladatok eredményei megengedettek az AlphaCode rendszer belépéséhez ezeknek a versenyeknek a minősítésének körülbelül a közepén (54,3%). Az AlphaCode előrejelzett összpontszáma 1238 pont volt, ami garantálja a bejutást a Top 28%-ba azon Codeforces résztvevők között, akik legalább egyszer részt vettek versenyeken az elmúlt 6 hónapban.
Megjegyzendő, hogy a projekt még a fejlesztés kezdeti szakaszában van, és a jövőben tervezik a generált kód minőségének javítását, valamint az AlphaСode fejlesztését a kódírást segítő rendszerek felé, vagy olyan alkalmazásfejlesztő eszközöket, amelyeket programozási ismeretekkel nem rendelkező emberek használhatnak.
Végül ha érdekel, hogy többet tudjon meg róla, tudnod kell, hogy a kulcsfontosságú fejlesztési funkció az a képesség, hogy Pythonban vagy C++-ban kódot állíthatsz elő, szövegbevitelként a probléma angol nyelvű megfogalmazását.
A részleteket ellenőrizheti A következő linken.