Microsoft kehittää tekoälyä, joka voi löytää virheitä koodista

Lukuajan kuvake 2 min. lukea


Lukijat auttavat tukemaan MSpoweruseria. Saatamme saada palkkion, jos ostat linkkien kautta. Työkaluvihje-kuvake

Lue ilmoitussivumme saadaksesi selville, kuinka voit auttaa MSPoweruseria ylläpitämään toimitustiimiä Lue lisää

Microsoftin tutkijat ovat kehittäneet tekoälyn, joka voi löytää virheitä koodista ja auttaa kehittäjiä korjaamaan sovelluksiaan tarkemmin ja tehokkaammin.

Tutkijat Miltos Allamanis, johtava tutkija ja Marc Brockschmidt, vanhempi tutkimuspäällikkö, kehittivät tekoälynsä, BugLabs, samalla tavalla kuin luodaan GAN-verkkoja (Generative Adversarial Networks).

Microsoft asetti kaksi verkkoa toisiaan vastaan ​​– toinen on suunniteltu tuomaan pieniä bugeja olemassa olevaan koodiin ja toinen etsimään kyseiset viat. Kaksi verkkoa paranivat ja paranivat, mikä johti tekoälyyn, joka oli hyvä tunnistamaan todelliseen koodiin piilotetut viat.

Tämän lähestymistavan etuna oli, että prosessi oli täysin itsevalvottu, eikä se tarvinnut merkittyjä tietoja.

He raportoivat tulokset seuraavasti:

Teoriassa voisimme soveltaa piilostelua laajasti ja opettaa koneen tunnistamaan mielivaltaisen monimutkaisia ​​vikoja. Tällaiset virheet ovat kuitenkin edelleen nykyaikaisten tekoälymenetelmien ulottumattomissa. Sen sijaan keskitymme joukkoon yleisesti esiintyviä virheitä. Näitä ovat virheelliset vertailut (esim. "<=":n käyttäminen "<" tai ">" sijaan), virheelliset Boolen operaattorit (esim. "ja"-sanan "tai" sijaan ja päinvastoin), muuttujien väärinkäyttö (esim. "i" "j":n sijaan) ja muutama muu. Testaaksemme järjestelmäämme keskitymme Python-koodiin.

Kun tunnistimemme on koulutettu, käytämme sitä todellisen koodin virheiden havaitsemiseen ja korjaamiseen. Suorituskyvyn mittaamiseksi merkitsemme manuaalisesti pienen tietojoukon bugeja sellaisista Python Package Indexin paketeista, joissa on tällaisia ​​bugeja ja näytämme, että "piilosta ja etsi" -menetelmällämme koulutetut mallit ovat jopa 30 % parempia verrattuna muihin vaihtoehtoihin, esim. ilmaisimia, jotka on koulutettu satunnaisesti lisätyillä bugeilla. Tulokset ovat lupaavia, ja ne osoittavat, että noin 26 % vioista voidaan löytää ja korjata automaattisesti. Ilmaisimemme löytämien bugien joukossa oli 19 aiemmin tuntematonta bugia tosielämän avoimen lähdekoodin GitHub-koodissa. Tulokset osoittivat kuitenkin myös monia vääriä positiivisia varoituksia, mikä viittaa siihen, että lisäkehitystä tarvitaan ennen kuin tällaisia ​​malleja voidaan ottaa käytännössä käyttöön.

He päättelevät, että heidän lähestymistapansa on lupaava, vaikka tietysti paljon enemmän työtä tarvitaan, jotta tällaisista ilmaisimista saadaan luotettavia käytännön käyttöön. Annettu Microsoftin GPT-3 toimii GitHubissa on kuitenkin täysin mahdollista, että tämä teos kaupallistetaan lopulta.

Lue koko lehti tätä.

Käyttäjäfoorumi

0-viestit