Koodin kirjoittaminen on vasta ensimmäinen askel jonkun luomisessa. Virheiden koodin selvittäminen ja niiden korjaaminen vie aikaa ja kestää usein odotettua kauemmin, mutta se on kuitenkin välttämätön vaihe.
Jos vain olisi tapa korjata vikoja automaattisesti, mikä ylittää syntaksivirheet ja todella ymmärtää koodisi taustalla olevat tarkoitukset.
Äskettäin Microsoft kehitti tekoälyn, joka pystyy havaitsemaan ja korjaamaan virheitä koodissa syväoppimisen avulla. Mutta miten tämä vallankumouksellinen tekniikka syntyi ja miten se toimii?
Mikä on BugLab ja miten se toimii?
BugLab on tekoälyn Python-toteutus, joka etsii ja korjaa koodissa olevia vikoja. Sen ovat kehittäneet Miltos Alamanis ja Marc Brockschmidt, kaksi Microsoft Researchin tutkijaa. He onnistuivat voittamaan usein käytetyn merkittyjen tietojen puutteen koneoppiminen turvautumalla itseohjautuvaan oppimiseen ja antamalla BugLabin harjoitella itseään "piilosta" -pelissä koodiriveillä.
BugLab koulutettiin käyttämällä kahta laskentamallia; yksi, joka piilottaa virheet oikeisiin koodikatkelmiin, ja toinen, joka etsii ja korjaa vikoja. Molemmat mallit oppivat jatkuvasti toisiltaan. Ajan myötä virhevalitsin pystyy paremmin piilottamaan virheitä koodissa, ja ilmaisin oppii paremmin havaitsemaan ja korjaamaan ne.
Koodin ymmärtäminen BugLabin avulla
Suurin osa bugeista, jotka BugLab AI on koulutettu havaitsemaan ja korjaamaan, ei johda loogisiin virheisiin, vaan ne ovat vain virheellisiä koodin yleisen kontekstin seurauksena. Kehittäjän tarkoituksen ymmärtäminen on välttämätöntä näiden virheiden löytämiseksi.
Koodinpätkien käsitteleminen samalla tavalla kuin luonnollisten kielten käsittely tuottaa epäoptimaalisia tuloksia. Tekoälyn on edelleen vaikea ymmärtää eri lausuntojen välistä suhdetta, kun ne on jaettu yksittäisiksi tunnisteiksi.
Sen sijaan BugLab tarkastelee koodia kokonaisuutena. Tällä tavalla jokainen syntaksi, lauseke, symboli ja tunniste esitetään pisteinä kaaviossa, jolloin tekoäly voi "ymmärtää" eri solmujen välisen yhteyden ja suhteen.
Neuraaliverkkoarkkitehtuurit käytetään sitten virheenkorjausälyn kouluttamiseen. He pystyvät saamaan oivalluksia koodikaavion rikkaasta rakenteesta ja antamaan syitä kunkin solmun suhteelle muihin.
Toimiiko BugLab tosielämän koodissa?
On tärkeää huomata, että BugLab ei korvaa ammattitaitoista ohjelmoijaa. Tämä johtuu siitä, että monimutkaiset virheet eivät ole vieläkään ulottuvilla.
Microsoftin tavoitteena tekoälyllä on havaita ja korjata yleisesti esiintyviä virheitä, kuten virheellisiä Boolen operaattoreita, kuten "tai":n käyttö "ja"-asemilla ja päinvastoin käänteisten arvovertailujen ja muuttujan lisäksi väärinkäytöksiä.
Mukaan Microsoft, tulokset ovat lupaavia, sillä BugLab pystyy havaitsemaan ja korjaamaan automaattisesti noin 26 prosenttia virheistä koodinpalassa. Silti merkittävä prosenttiosuus tarkkuudesta menetetään edelleen väärien positiivisten tulosten ja huomaamattomien virheiden vuoksi.
Microsoft BugLabin tulevat sovellukset
Microsoftin tavoite BugLabin kanssa on säästää ohjelmistokehittäjien aikaa, joka kuluu usein koodin läpikäymiseen pienimpien virheiden etsimiseen.
Vaikka tekoälyn debug-malli on vielä keskeneräinen, sillä on mahdollisuus vikojen etsiminen ja korjaaminen jotka vaihtelevat epämukavista katastrofaalisiin. Mutta muutaman vuoden kuluttua voit odottaa, että BugLabista tulee jokaisen kehittäjän työkalupakki, vaikka se ei olisi täydellinen.
Itseoppivan tekoälyn eksponentiaalinen kehitys
Mitä enemmän aikaa tekoälymalleilla, kuten BugLab, on harjoitella tosielämän esimerkeillä, sitä parempia ja tarkempia tuloksia ne tuottavat.
Yksi haastavimmista esteistä, joita Microsoftin tutkijat kohtasivat kehittäessään BugLabia, oli koodin ja tarkoituksen inhimillisen ymmärryksen käyttäminen työkalussa. Mutta nyt, kun se on suurimmaksi osaksi ratkaistu, voit odottaa BugLabin paranevan ajan myötä.
Yritätkö selvittää eroa tekoälyn, koneoppimisen ja syväoppimisen välillä? Tässä on mitä ne kaikki tarkoittavat.
Lue Seuraava
- Ohjelmointi
- Microsoft
- Koodausvinkkejä
- Tekoäly
Anina on freelance-teknologia- ja Internet-tietoturvakirjoittaja MakeUseOfissa. Hän aloitti kyberturvallisuuden kirjoittamisen 3 vuotta sitten toivoen tekevänsä sen helpommin keskivertoihmisen ulottuville. Innokas oppimaan uusia asioita ja valtava tähtitieteen nörtti.
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi