← Terug
Nieuwe methode met AI verbetert automatisch herstel van softwarefouten

Nieuwe methode met AI verbetert automatisch herstel van softwarefouten

Een team onderzoekers, onder leiding van David de-Fitero-Dominguez, heeft een innovatieve techniek ontwikkeld om Automated Program Repair (APR) te optimaliseren. Door gebruik te maken van een zogenaamd 'self-bootstrapping' paradigma, kunnen systemen nu effectiever programmeerfouten herstellen door hun eigen trainingsmateriaal te creëren en te verfijnen.

Het fundamentele probleem bij het automatiseren van softwareherstel is het gebrek aan hoogwaardige trainingsdata. Bestaande datasets bieden vaak onvoldoende variatie in programmeertalen en fouttypen, waardoor systemen minder robuust zijn. Om dit op te lossen, hebben de onderzoekers een tweestapsbenadering geïmplementeerd waarbij Large Language Models (LLMs) centraal staan. Volgens een publicatie op arxiv.org stelt deze methode systemen in staat om minder afhankelijk te zijn van schaarse, handmatig samengestelde datasets.

In de eerste fase van dit proces werden diverse geavanceerde LLMs ingezet om synthetische voorbeelden te genereren. Dit resulteerde in ongeveer 30.000 paren van foutieve code en de bijbehorende correcties, verspreid over 13 categorieën bugs en 12 verschillende programmeertalen. Om de betrouwbaarheid van deze data te garanderen, volgde een tweede fase van kwaliteitscontrole. Hierbij werden de samples via een cross-model evaluatie getoetst op vijf criteria: de correctheid van de oplossing, de algehele codekwaliteit, beveiligingsaspecten, de prestaties van de code en de volledigheid van de reparatie.

De praktische effectiviteit van deze aanpak werd getoetst aan de VulRepair-dataset. De resultaten laten een duidelijke verbetering zien in de 'Perfect Prediction rates'. Bij de Top@1-meting, waarbij gekeken wordt naar de beste voorspelling, steeg de score van 11,68% naar 17,18%, wat een relatieve winst van 47% betekent. Ook bij de Top@5-meting was een stijging zichtbaar, van 18,88% naar 23,00%. Statistische analyses, waaronder de post-hoc Tukey's Honest Significant Difference test en ANOVA, bevestigden de validiteit van deze resultaten.

De inzet van LLMs voor dergelijke complexe taken is mogelijk dankzij hun specifieke architectuur. Zoals uitgelegd door google.com, maken deze modellen gebruik van de Transformer-architectuur, waardoor ze in staat zijn om complexe patronen in zowel tekst als code te herkennen en te reproduceren. Dit stelt hen in staat om foutieve code te transformeren naar functionele code.

Om de prestaties van een model op een specifiek domein, zoals bug-repair, verder te optimaliseren, worden vaak technieken zoals fine-tuning toegepast. In een handleiding van geeksforgeeks.org wordt toegelicht dat methoden zoals Instruction Tuning of Supervised Fine-Tuning (SFT) worden gebruikt om LLMs aan te passen aan specifieke taken.

Het gebruik van synthetische data is bovendien een bredere trend binnen de kunstmatige intelligentie. Volgens ibcom is het genereren van synthetische data een essentiële methode om datasets aan te vullen, zeker wanneer echte data beperkt is of privacygevoelig.

Met deze resultaten wordt een belangrijke stap gezet richting adaptieve tools voor softwareonderhoud. Deze systemen kunnen zichzelf continu verbeteren zonder dat er constant nieuwe, handmatig geannoteerde data door mensen moet worden toegevoegd.

Lees origineel artikel — Nieuws
Waardering
0
Stem mee op dit artikel
Discussie
Nog geen reacties. Wees de eerste!