Het schrijven van code is slechts de eerste stap in het creëren van iets. Het doorzoeken van uw code op bugs en het oplossen ervan is tijdrovend en duurt vaak langer dan verwacht, maar het is niettemin een essentiële stap.
Was er maar een manier om bugs automatisch op te lossen die verder gaat dan syntaxisfouten en echt de bedoelingen achter uw code begrijpt.
Onlangs heeft Microsoft een AI ontwikkeld die in staat is om bugs in code te detecteren en op te lossen met behulp van deep learning. Maar hoe is dit stukje revolutionaire technologie ontstaan en hoe werkt het?
Wat is BugLab en hoe werkt het?
BugLab is een kunstmatige intelligentie Python-implementatie die bugs in code opspoort en oplost. Het is ontwikkeld door Miltos Alamanis en Marc Brockschmidt, twee onderzoekers bij Microsoft Research. Ze slaagden erin om het gebrek aan gelabelde gegevens die vaak worden gebruikt in machine learning door toevlucht te nemen tot zelf-gecontroleerd leren en BugLab zichzelf te laten trainen door middel van een "verstoppertje"-spel met coderegels.
BugLab is getraind met behulp van twee computermodellen; een die bugs verbergt in correcte codefragmenten, en een andere die de bugs zoekt en corrigeert. Beide modellen leren continu van elkaar. Na verloop van tijd wordt de bugselector beter in het verbergen van bugs in de code en wordt de detector beter in het opsporen en oplossen ervan.
De code begrijpen met BugLab
De meeste bugs waarvoor BugLab AI is getraind om te detecteren en op te lossen, resulteren niet in logische fouten, maar zijn alleen onjuist als gevolg van de algemene context van de code. Het begrijpen van de bedoeling van de ontwikkelaar is essentieel om deze bugs te vinden.
Het op dezelfde manier behandelen van codefragmenten als het verwerken van natuurlijke talen levert suboptimale resultaten op. Het is nog steeds moeilijk voor AI om de relatie tussen verschillende verklaringen te begrijpen wanneer ze zijn opgesplitst in individuele tokens.
In plaats daarvan kijkt BugLab naar de code als geheel. Op die manier wordt elke syntaxis, uitdrukking, symbool en identifier weergegeven als punten in een grafiek, waardoor de AI de verbinding en relatie tussen verschillende knooppunten kan "begrijpen".
Neurale netwerkarchitecturen worden vervolgens gebruikt om de foutopsporings-AI te trainen. Ze kunnen inzichten halen uit de rijke structuur van de codegrafiek en redenen geven voor de relatie van elk knooppunt met de andere.
Werkt BugLab aan real-life code?
Het is belangrijk op te merken dat BugLab geen vervanging is voor een ervaren programmeur. Complexe bugs zijn namelijk nog steeds niet binnen handbereik.
Het doel van Microsoft met de AI is om veelvoorkomende bugs te detecteren en op te lossen, zoals onjuiste Booleaanse operatoren, zoals het gebruik van "of" in plaats van "en" en vice versa, naast vergelijkingen van omgekeerde waarden en variabele misbruiken.
Volgens Microsoft, zijn de resultaten veelbelovend, aangezien BugLab ongeveer 26 procent van de bugs in een stukje code kan detecteren en automatisch oplossen. Toch gaat een aanzienlijk percentage van de nauwkeurigheid nog steeds verloren als gevolg van valse positieven en gemiste bugs.
Toekomstige toepassingen van Microsoft BugLab
Het doel van Microsoft met BugLab is om softwareontwikkelaars tijd te besparen, die ze vaak besteden aan het doornemen van hun code op zoek naar de kleinste bugs.
Hoewel het AI-foutopsporingsmodel nog steeds in uitvoering is, heeft het de kans om bugs vinden en oplossen die variëren van ongelegen tot catastrofaal. Maar over een paar jaar kun je verwachten dat BugLab een must wordt in de toolkit van elke ontwikkelaar, zelfs als het niet perfect is.
De exponentiële evolutie van zelflerende AI
Hoe meer tijd AI-modellen zoals BugLab hebben om te trainen op praktijkvoorbeelden, hoe beter en nauwkeuriger de resultaten zullen zijn.
Een van de meest uitdagende hindernissen die Microsoft-onderzoekers tegenkwamen tijdens het ontwikkelen van BugLab, was het gebruik van een menselijk begrip van code en intentie in de tool. Maar nu dat grotendeels is opgelost, kun je verwachten dat BugLab met de tijd beter zal worden.
Probeer je het verschil tussen kunstmatige intelligentie, machine learning en deep learning te achterhalen? Dit is wat ze allemaal betekenen.
Lees volgende
- Programmeren
- Microsoft
- Codeertips
- Kunstmatige intelligentie
Anina is een freelance schrijver over technologie en internetbeveiliging bij MakeUseOf. Ze begon 3 jaar geleden met schrijven over cyberbeveiliging in de hoop het toegankelijker te maken voor de gemiddelde persoon. Zin om nieuwe dingen te leren en een enorme astronomie-nerd.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren