DI kompanija „DeepMind“ pagamino įrankį, galintį sukurti veikiantį kodą, skirtą spręsti sudėtingas programavimo užduotis.
Asociatyvi „Pixabay“ nuotr.
„DeepMind“ tvirtina, kad „AlphaCode“ gali susitvarkyti su programavimo problemomis, kurioms spręsti būtina apjungti logiką, kritinį mąstymą ir gebėjimą suprasti natūralią kalbą. Šis įrankis dalyvavo svetainės „Codeforces“, kur žmonės tikrina savo programavimo įgūdžius, 10-yje programavimo varžybų raundų. „AlphaCode“ atsidūrė medianinio dalyvio lygyje. „DeepMind“ sako, kad tai pirmas kartas, kai programinės įrangos DI sistema programavimo konkurse pasiekė tokį konkurencingą lygį.
„AlphaCode“ buvo sukurtas, neuroninius tinklus treniruojant daugybe kodavimo pavyzdžių iš programinės įrangos repozitorijos „GitHub“ ir ankstesnių „Codeforces“ turnyrų dalyvių. Pateikus sistemai naują problemą, ji sukuria daugybę sprendimų C++ ir Python programavimo kalbomis. Tuomet jie filtruojami ir sudaromas top 10. Kai buvo tikrinamas „AlphaCode“, šiuos sprendimus vertino žmonės ir turnyrui pateikdavo geriausius.
Kodo kūrimas DI – itin kebli problema, nes sunku įvertinti kaip arti sėkmės yra konkretus rezultatas. Užstringantį ir užduoties neatliekantį kodą nuo idealaus sprendimo gali skirti vienas rašybos ženklas, ir daugybė veikiančių sprendimų gali radikaliai skirtis. Be to, kad galėtų spręsti programavimo turnyro užduotis, DI privalo suprasti problemos aprašymą anglų kalba.
„Microsoft“ priklausantis „GitHub“ pernai sukūrė panašų, bet labiau ribotą įrankį „Copilot“. „GitHub“ milijonai žmonių dalinasi programiniu kodu ir organizuoja programinės įrangos projektus. „Copilot“ šiuo kodu treniravo neuroninį tinklą, ir taip šis gebėjo spręsti panašias programavimo užduotis.
Bet tai buvo kontroversiškas įrankis, nes daugelis tvirtino, kad jis gali tiesiog plagijuoti treniravimo duomenis. Armin Ronacher iš programinės įrangos kompanijos „Sentry“ išsiaiškino, kad įmanoma liepti „Copilot“ pasiūlyti autorinėmis teisėmis apsaugotą kodą iš 1999 metų kompiuterinio žaidimo Quake III Arena, kartu su originalaus programuotojo komentarais. Šio kodo be leidimo naujai panaudoti negalima.
Paleidžiant „Copilot“, „GitHub“ sakė, kad ~0,1% jo pateikiamų kodo pasiūlymų gali būti „šiek tiek“ paraidinio treniravimo medžiagos kodo. Kompanija taip įspėjo, kad įmanoma, jog „Copilot“ pateiks tikrus asmeninius duomenis, tokius, kaip telefonų numeriai, e.pašto adresai ar vardai, ir kad pateikiame kode gali būti „šališkų, diskriminuojančių, piktavališkų ar įžeidžiančių rezultatų“ ar juose gali būti saugumo spragų, todėl prieš naudojant, jie turėtų būti patikrinti ir išbandyti.
„AlphaCode“, kaip ir „Copilot“, iš pradžių buvo treniruojamas viešai prieinamu „GitHub“ esančiu kodu. Tuomet patobulintas programavimo konkursų kodu. „DeepMind“ sako, kad „AlphaCode“ ankstesnių pavyzdžių kodo nekopijuoja. Sprendžiant iš „DeepMind“ pranešime pateiktų pavyzdžių, atrodo, problemos buvo išspręstos, ir kopijuojama tik šiek tiek daugiau treniravimo medžiagos duomenų, nei tai daro žmonės, sako Riza Theresa Batista-Navarro iš Manchesterio universiteto, JK.
Bet atrodo, kad „AlphaCode“ buvo taip gerai suderinta spręsti sudėtingas problemas, kad ankstesni geriausi DI kodavimo įrankiai vis dar lenkia jį, atliekant paprastesnes užduotis, sako ji.
„Pastebėjau, kad nors „AlphaCode“ geba pralenkti tokius tobuliausius DI kaip GPT turnyro užduotyse, įžanginio lygio iššūkius jis įveikia santykinai prastai, – sako Batista-Navarro. – Spėju, jie norėjo atlikti turnyro programavimo užduotis, sudėtingesnes nei pradinis lygis programavimo problemas. Bet panašu, kad šis modelis buvo taip gerai suderintas sudėtingoms problemoms, kad jis tam tikra prasme pamiršo pradinio lygio problemas“.
„DeepMind“ interviu nedavė, bet Oriol Vinyals iš „DeepMind“ pranešime sakė: „Niekada nesitikėjau, kad MM [mašininis mokymasis] tarp varžovų pasieks maždaug vidutinį žmonių lygį. Kaip bebūtų, tai rodo, kad dar laukia daug darbo, kad būtų pasiektas geriausių varžovų lygis, ir patobulintos mūsų DI sistemos problemų sprendimo galimybės“.
Matthew Sparkes / www.newscientist.com