Microsoft razvija umetno inteligenco, ki lahko najde napake v kodi

Ikona časa branja 2 min. prebrati


Bralci pomagajo pri podpori MSpoweruser. Če kupujete prek naših povezav, lahko prejmemo provizijo. Ikona opisa orodja

Preberite našo stran za razkritje, če želite izvedeti, kako lahko pomagate MSPoweruser vzdrževati uredniško skupino Preberi več

Raziskovalci pri Microsoftu so razvili umetno inteligenco, ki lahko najde napake v kodi, s čimer pomaga razvijalcem pri natančnejšem in učinkovitejšem odpravljanju napak v svojih aplikacijah.

Raziskovalca Miltos Allamanis, glavni raziskovalec in Marc Brockschmidt, višji glavni vodja raziskav, sta razvila svojo umetno inteligenco, BugLabs, na skoraj enak način, kot so ustvarjena generativna nasprotovalna omrežja (GAN).

Microsoft je postavil dve omrežji drug proti drugemu – eno je zasnovano za vnašanje majhnih hroščev v obstoječo kodo, drugo pa za iskanje teh hroščev. Omrežji sta postajali vse boljši in boljši, kar je povzročilo AI, ki je bila dobra pri prepoznavanju hroščev, skritih v resnični kodi.

Prednost tega pristopa je bila, da je bil proces popolnoma samonadzorovan in ni potreboval označenih podatkov.

Poročajo o rezultatih, kot sledi:

V teoriji bi lahko igro skrivalnic uporabili na splošno in naučili stroj prepoznati poljubno zapletene napake. Vendar so takšne napake še vedno zunaj dosega sodobnih metod umetne inteligence. Namesto tega se osredotočamo na vrsto hroščev, ki se pogosto pojavljajo. Sem spadajo napačne primerjave (npr. uporaba »<=« namesto »<« ali »>«), napačne logične operatorje (npr. uporaba »in« namesto »ali« in obratno), zlorabe spremenljivk (npr. napačna uporaba »i« namesto »j«) in nekaj drugih. Za testiranje našega sistema se osredotočimo na kodo Python.

Ko je naš detektor usposobljen, ga uporabimo za odkrivanje in popravljanje napak v resnični kodi. Za merjenje zmogljivosti ročno označimo majhen nabor hroščev iz paketov v indeksu paketov Python s takšnimi napakami in pokažemo, da so modeli, usposobljeni z našo metodo skrivanja in iskanja, do 30 % boljši v primerjavi z drugimi alternativami, npr. detektorji, usposobljeni z naključno vstavljenimi hrošči. Rezultati so obetavni in kažejo, da je približno 26 % napak mogoče najti in odpraviti samodejno. Med hrošči, ki jih je našel detektor, je bilo 19 prej neznanih hroščev v resnični odprtokodni kodi GitHub. Vendar pa so rezultati pokazali tudi številna lažna pozitivna opozorila, kar kaže, da je potreben nadaljnji napredek, preden se takšni modeli lahko praktično uporabijo.

Ugotavljajo, da je njihov pristop obetaven, čeprav je seveda potrebno veliko več dela, da bodo takšni detektorji zanesljivi za praktično uporabo. dano Microsoftov GPT-3 deluje na GitHubu vendar je povsem možno, da bo to delo sčasoma komercializirano.

Preberite njihov celoten dokument tukaj.

Več o temah: ai, Razvijalci, microsoft