Pisanje koda samo je prvi korak u stvaranju nečega. Pročešljavanje koda u potrazi za greškama i njihovo popravljanje oduzima puno vremena i često traje dulje nego što se očekivalo, ali je unatoč tome bitan korak.
Kad bi barem postojao način za automatsko ispravljanje grešaka koji nadilazi sintaktičke pogreške i istinski razumije namjere iza vašeg koda.
Nedavno je Microsoft razvio AI koji je sposoban otkriti i popraviti greške u kodu pomoću dubokog učenja. Ali kako je ovaj komad revolucionarne tehnologije nastao i kako funkcionira?
Što je BugLab i kako radi?
BugLab je Python implementacija umjetne inteligencije koja traži i ispravlja greške unutar koda. Razvili su ga Miltos Alamanis i Marc Brockschmidt, dva istraživača u Microsoft Researchu. Uspjeli su prevladati nedostatak označenih podataka koji se često koriste u strojno učenje pribjegavajući samonadziranom učenju i dopuštajući BugLabu da se trenira kroz igru skrivača s redovima koda.
BugLab je obučen korištenjem dvaju računalnih modela; jedan koji skriva bugove unutar ispravnih isječaka koda, a drugi koji traži i ispravlja greške. Oba modela kontinuirano uče jedni od drugih. S vremenom, selektor bugova postaje bolji u skrivanju grešaka u kodu, a detektor ih postaje bolji u hvatanju i popravljanju.
Razumijevanje koda uz BugLab
Većina bugova koje je BugLab AI osposobljen za otkrivanje i popravljanje ne rezultira logičkim pogreškama, već su pogrešne samo kao rezultat općeg konteksta koda. Razumijevanje namjere programera ključno je za pronalaženje ovih bugova.
Tretiranje isječaka koda na isti način kao i obrada prirodnih jezika daje neoptimalne rezultate. AI je još uvijek teško razumjeti odnos između različitih izjava kada su podijeljene na pojedinačne tokene.
Umjesto toga, BugLab promatra kod kao cjelinu. Na taj su način svaka sintaksa, izraz, simbol i identifikator predstavljeni kao točke u grafu, što omogućuje AI-u da "razumije" vezu i odnos između različitih čvorova.
Arhitekture neuronskih mreža zatim se koriste za treniranje AI za otklanjanje pogrešaka. Oni su u stanju izvući uvide iz bogate strukture kodnog grafa i pružiti razloge za odnos svakog čvora s drugima.
Radi li BugLab na kodu iz stvarnog života?
Važno je napomenuti da BugLab nije zamjena za vještog programera. To je zato što složene greške još uvijek nisu na dohvat ruke.
Microsoftov cilj s umjetnom inteligencijom je otkriti i popraviti uobičajene greške kao što su netočni Booleovi operatori, poput upotrebe "ili" umjesto "i" i obrnuto, uz usporedbu obrnutih vrijednosti i varijable zlouporabe.
Prema Microsoft, rezultati su obećavajući, budući da je BugLab u stanju otkriti i automatski popraviti oko 26 posto bugova u komadu koda. Ipak, značajan postotak točnosti se i dalje gubi zbog lažnih pozitivnih rezultata i propuštenih grešaka.
Buduće primjene Microsoft BugLaba
Microsoftov cilj s BugLab-om je ušteda vremena programerima softvera koje često provode pregledavajući svoj kod tražeći najmanje greške.
Iako je model za otklanjanje pogrešaka umjetne inteligencije još uvijek u tijeku, ima priliku pronalaženje i popravljanje grešaka koji se kreću bilo gdje od nezgodnih do katastrofalnih. Ali za nekoliko godina možete očekivati da će BugLab postati neophodan u kompletu alata svakog programera, čak i ako nije savršen.
Eksponencijalna evolucija umjetne inteligencije za samoučenje
Što više vremena AI modeli kao što je BugLab imaju za treniranje na primjerima iz stvarnog života, to će dati bolje i točnije rezultate.
Jedna od najizazovnijih prepreka s kojima su se Microsoftovi istraživači suočili tijekom razvoja BugLaba bila je korištenje ljudskog razumijevanja koda i namjere u alat. Ali sada kada je to uglavnom riješeno, možete očekivati da će BugLab s vremenom postati bolji.
Pokušavate utvrditi razliku između umjetne inteligencije, strojnog učenja i dubokog učenja? Evo što svi oni znače.
Pročitajte dalje
- Programiranje
- Microsoft
- Savjeti za kodiranje
- Umjetna inteligencija
Anina je slobodna spisateljica o tehnologiji i internet sigurnosti u MakeUseOf-u. Počela je pisati o kibernetičkoj sigurnosti prije 3 godine u nadi da će to učiniti dostupnijim prosječnoj osobi. Željan učenja novih stvari i veliki štreber u astronomiji.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu