A fejlesztők szempontjából mindig is fontos kérdés volt, hogy melyik programozási nyelvbe ássák bele magukat, rengeteg időt fektetve a tanulásba. Az ő szempontjukból nem feltétlenül örömhír, de lehet, hogy ez a dilemma belátható időn belül eltűnik, ahogy a mesterséges intelligencia fejlődésével az új modellek is egyre hatékonyabbá válnak a problémák leírásának helyes értelmezésében és azzal összefüggésben a kódok generálásában.
A DeepMindnek a kutatói azt állítják, hogy az AlphaCode nevű, programok fejlesztésére alkalmas rendszer megoldásai medián szintű pontszámokat értek el az általuk kiválasztott programozási versenyeken. Vagyis a legjobb szakemberekkel még bőven nem veszi fel a versenyt, de a teljesítményük nagyjából megfelel az ott megjelenő, átlagos programozói tudásnak, ami a kódolás mellett a természetes nyelven leírt problémák megértését is feltételezi.
A február elején közzétett, nem lektorált tanulmány alapján az AlphaCode 10 programozási versenyen a több mint 5000 résztvevő átlagának 54,3 százalékát hozta a Codeforces kódverseny-platformon. A DeepMind szerint az AlphaCode az első olyan mesterségesintelligencia-alapú kódgeneráló rendszer, amely stabilan jól teljesít a humán fejlesztők számára kiírt kódversenyeken.
Nem csak programoznia kellett
A DeepMind fejlesztése ezzel nem csak a programozó szakemberek termelékenységét javíthatja, de segíthet a szaktudással nem rendelkezőknek is a problémák megoldásában. A fentieket összefüggésbe helyezi, hogy a szóban forgó programozási versenyek nagyobb kihívást jelentenek a gépi intelligencia számára, mint ha mondjuk a GitHub adatait használva kellene betanítani egy-egy modellt valamilyen kódolási kihívás megoldására.
Az emberekhez hasonlóan ugyanis az AlphaCode-nak is meg kellett értenie a felvetett problémák több bekezdésből álló, szöveges leírását, különös tekintettel a háttérben húzódó narratíva részleteire, valamint a kívánt megoldás ismertetését a bemenet és a kimenet tekintetében. Ugyanígy szempont lehet a megfelelő programozási nyelvet kiválasztása is, ami szintén fontos lehet a feladatok hatékonyabb megoldásának szempontjából.
Az AlphaCode saját adatkészlete egyébként a betanítás előtt 715 gigabájt kódot tartalmazott a GitHub-tárolókból származó, a C++, a C#, a Go, a Java, a JavaScript/TypeScript, a Lua, a Python, a PHP, a Ruby, a Rust és a Scala nyelveken írt fájlokból. A fejlesztők a Codeforces-ból és más adatkészletekből összegyűjtött, kompetitív programozási problémák adatkészleteinek segítségével hangolták a modellt.
Egyre jobb lesz egyre gyorsabban
A DeepMind szerint az AlphaCode teljesítményének ilyen mértékű felfutása a nagyméretű transzformátormodellek kombinációjára épül: ilyen például az OpenAI GPT-3 vagy a Google BERT nyelvi modellje. A DeepMind is transzformátor alapú nyelvi modelleket használt a programkódok generálására, majd a kimenetet megszűrte, hogy az ígéretesnek minősített programok kis csoportját nyújtsa be az értékelésre.
Azzal elvileg a DeepMind is tisztában van, hogy a fejlesztéseinek lehetséges árnyoldalai is vannak. Az AlphaCode vagy más modellek könnyen generálhatnak olyan kódokat, amelyek egyszerűen kihasználható sebezhetőségekkel rendelkeznek, sőt a dolognak környezeti hatásai is vanna, hiszen a modell betanítása "több száz petaFLOPS-napot" igényelt a Google adatközpontjaiban.
Az MI ilyen irányú alkalmazása ugyanakkor hosszabb olyan rendszerek megalkotásához vezethet, amelyek képesek rekurzív módon írni és alakítani magukat, ezzel pedig egyre gyorsabban egyre fejlettebbé válnak. Fennáll persze annak a veszélye, hogy az automatizálással a fehlesztők munkája iránti igány is csökken, de a DeepMind ezzel a ma is használt kódkiegészítő eszközök korlátozottságát állítja szembe, amelyek így is nagymértékben javítják a programozás termelékenységét.
Rendszerek és emberek: a CIO választásai egy új magyar felmérés tükrében
"Nehéz informatikusnak lenni egy olyan cégben, ahol sok az IT-s" – jegyezte meg egy egészségügyi technológiákat fejlesztő cég informatikai vezetője, amikor megkérdeztük, milyennek látja házon belül az IT és a többi osztály közötti kommunikációt.
Így lehet sok önálló kiberbiztonsági eszközéből egy erősebbet csinálni
A kulcsszó a platform. Ha egy cég jó platformot választ, akkor az egyes eszközök előnyei nem kioltják, hanem erősítik egymást, és még az üzemeltetés is olcsóbb lesz.
Nyílt forráskód: valóban ingyenes, de használatának szigorú szabályai vannak