Microsoft ontwikkelt AI die bugs in code kan vinden

Pictogram voor leestijd 2 minuut. lezen


Lezers helpen MSpoweruser ondersteunen. We kunnen een commissie krijgen als u via onze links koopt. Tooltip-pictogram

Lees onze openbaarmakingspagina om erachter te komen hoe u MSPoweruser kunt helpen het redactieteam te ondersteunen Lees meer

Onderzoekers bij Microsoft hebben een AI ontwikkeld die bugs in code kan vinden, waardoor ontwikkelaars hun applicaties nauwkeuriger en efficiënter kunnen debuggen.

Onderzoekers Miltos Allamanis, hoofdonderzoeker en Marc Brockschmidt, senior hoofdonderzoeksmanager, ontwikkelden hun AI, BugLabs, op vrijwel dezelfde manier waarop Generative Adversarial Networks (GAN's) worden gecreëerd.

Microsoft zette twee netwerken tegen elkaar op: een ontworpen om kleine bugs in bestaande code te introduceren en een ander gericht op het vinden van die bugs. De twee netwerken werden steeds beter, wat resulteerde in een AI die goed was in het identificeren van bugs die verborgen waren in echte code.

Het voordeel van deze aanpak was dat het proces volledig in eigen beheer was en geen gelabelde gegevens nodig waren.

Ze rapporteren de resultaten zoals hieronder:

In theorie zouden we het verstoppertje-spel breed kunnen toepassen, door een machine te leren willekeurig complexe bugs te identificeren. Dergelijke bugs zijn echter nog steeds buiten het bereik van moderne AI-methoden. In plaats daarvan concentreren we ons op een reeks veelvoorkomende bugs. Deze omvatten onjuiste vergelijkingen (bijv. "<=" gebruiken in plaats van "<" of ">"), onjuiste Booleaanse operatoren (bijv. "en" gebruiken in plaats van "of" en vice versa), misbruik van variabelen (bijv. onjuist gebruik van "i" in plaats van "j") en een paar andere. Om ons systeem te testen, richten we ons op Python-code.

Zodra onze detector is getraind, gebruiken we hem om bugs in real-life code te detecteren en te repareren. Om de prestaties te meten, annoteren we handmatig een kleine dataset van bugs uit pakketten in de Python Package Index met dergelijke bugs en laten we zien dat modellen die zijn getraind met onze "verstoppertje"-methode tot 30% beter zijn in vergelijking met andere alternatieven, bijv. detectoren getraind met willekeurig ingevoegde bugs. De resultaten zijn veelbelovend en laten zien dat ongeveer 26% van de bugs automatisch kan worden gevonden en verholpen. Onder de bugs die onze detector vond, waren 19 voorheen onbekende bugs in real-life open-source GitHub-code. De resultaten lieten echter ook veel vals-positieve waarschuwingen zien, wat suggereert dat verdere verbeteringen nodig zijn voordat dergelijke modellen praktisch kunnen worden ingezet.

Ze concluderen dat hun aanpak veelbelovend is, hoewel er natuurlijk veel meer werk nodig is om dergelijke detectoren betrouwbaar te maken voor praktisch gebruik. Gegeven Microsoft's GPT-3 werkt aan GitHub het is echter heel goed mogelijk dat dit werk uiteindelijk gecommercialiseerd wordt.

Lees hun volledige paper hier.

Meer over de onderwerpen: ai, ontwikkelaars, microsoft