Microsoft razvija umjetnu inteligenciju koja može pronaći greške u kodu

Ikona vremena čitanja 2 min. čitati


Čitatelji pomažu pri podršci MSpoweruser. Možda ćemo dobiti proviziju ako kupujete putem naših veza. Ikona opisa alata

Pročitajte našu stranicu za otkrivanje kako biste saznali kako možete pomoći MSPoweruseru da održi urednički tim Čitaj više

Istraživači u Microsoftu razvili su AI koji može pronaći greške u kodu, pomažući programerima da točnije i učinkovitije otklone greške u svojim aplikacijama.

Istraživači Miltos Allamanis, glavni istraživač i Marc Brockschmidt, viši glavni voditelj istraživanja razvili su svoju umjetnu inteligenciju, BugLabs, na sličan način na koji se stvaraju Generativne Adversarial Networks (GAN).

Microsoft je postavio dvije mreže jednu protiv druge – jednu dizajniranu za uvođenje malih bugova u postojeći kod, a drugu usmjerenu na pronalaženje tih bugova. Dvije mreže postajale su sve bolje i bolje, što je rezultiralo umjetnom inteligencijom koja je bila dobra u prepoznavanju grešaka skrivenih u stvarnom kodu.

Prednost ovog pristupa bila je u tome što je proces bio potpuno samonadzoran i nije trebao označene podatke.

Izvještavaju o rezultatima na sljedeći način:

U teoriji, mogli bismo široko primijeniti igru ​​skrivača, podučavajući stroj da identificira proizvoljno složene greške. Međutim, takve greške su još uvijek izvan dosega modernih metoda umjetne inteligencije. Umjesto toga, koncentriramo se na skup grešaka koje se često pojavljuju. To uključuje netočne usporedbe (npr. korištenje “<=” umjesto “<” ili “>”), netočne Booleove operatore (npr. korištenje “and” umjesto “or” i obrnuto), zloupotrebe varijabli (npr. netočnu upotrebu “i” umjesto “j”) i nekoliko drugih. Kako bismo testirali naš sustav, fokusiramo se na Python kod.

Nakon što je naš detektor osposobljen, koristimo ga za otkrivanje i popravljanje grešaka u stvarnom kodu. Da bismo izmjerili performanse, ručno označavamo mali skup podataka o greškama iz paketa u indeksu paketa Python s takvim bugovima i pokazujemo da su modeli obučeni našom metodom skrivanja i traženja do 30% bolji u usporedbi s drugim alternativama, npr. detektori obučeni s nasumično umetnutim bugovima. Rezultati su obećavajući, pokazujući da se oko 26% bugova može pronaći i popraviti automatski. Među bugovima koji je naš detektor pronašao bilo je 19 prethodno nepoznatih bugova u stvarnom otvorenom kodu GitHub. Međutim, rezultati su također pokazali mnoga lažno pozitivna upozorenja, sugerirajući da su potrebna daljnja poboljšanja prije nego što se takvi modeli mogu praktično primijeniti.

Zaključuju da je njihov pristup obećavajući, iako je, naravno, potrebno mnogo više rada kako bi takvi detektori bili pouzdani za praktičnu upotrebu. Dano Microsoftov GPT-3 rad na GitHubu međutim, sasvim je moguće da će se ovaj rad s vremenom komercijalizirati.

Pročitajte njihov cijeli rad ovdje.

Više o temama: ai, programeri, Microsoft