CI-Repair-Bench: A Repository-Aware Benchmark for Automated Patch Validation via CI Workflows
Dit artikel introduceert CI-Repair-Bench, een repository-georiënteerde benchmark opgebouwd uit echte GitHub Actions-uitvoeringen die geautomatiseerde programmareparatie uitsluitend evalueert via volledige CI-hervoorvoering, en blootlegt dat terwijl LLM's effectief lokaal door hulpmiddelen afgedwongen fouten aanpakken, ze worstelen met complexe omgevings- en afhankelijkheidsproblemen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een chef bent die een drukke restaurant runt. Je hebt een complex recept (jouw softwarecode) en een strikte set keukenregels (jouw Continuous Integration, of CI, systeem). Elke keer dat je een recept aanpast, controleert de geautomatiseerde inspecteur van de keuken het. Deze inspecteur proeft niet alleen het eten; hij controleert of het fornuis aanstaat, of de ingrediënten vers zijn, of de chef de veiligheidsregels heeft gevolgd en of de presentatie er goed uitziet.
Soms wijst de inspecteur het gerecht af. Misschien is het zout verkeerd, misschien staat de oventemperatuur niet goed, of misschien vereist het recept een ingrediënt dat niet meer in de voorraadkast staat. Het oplossen van deze afwijzingen is moeilijk, omdat het probleem misschien niet het recept zelf is, maar de keukenopstelling of de regels.
Het Probleem: De "Black Box" van Oplossen
Momenteel zijn computerprogramma's die zijn ontworpen om code te repareren (Automated Program Repair) als koks die alleen naar het receptenboek kijken. Ze zijn uitstekend in het herstellen van een typefout in de ingrediëntenlijst, maar ze falen vaak wanneer het probleem is dat de oven kapot is, de verkeerde kruiden zijn gekocht of de keukenregels zijn gewijzigd. Bestaande tests voor deze reparatieprogramma's zijn te eenvoudig; ze doen alsof de keuken perfect is en controleren alleen of het eten goed smaakt, terwijl ze de rommelige realiteit van de hele keuken negeren.
De Oplossing: CI-Repair-Bench
De auteurs van dit artikel hebben een nieuwe, realistische trainingsomgeving gebouwd die CI-Repair-Bench heet. Denk hierbij aan een "Simulatie van een echte, rommelige restaurantkeuken".
- Realistische Data: In plaats van nepproblemen hebben ze 567 echte voorbeelden van "afgewezen gerechten" verzameld uit 103 daadwerkelijke softwareprojecten op GitHub.
- De Volledige Inspectie: Om te bewijzen dat een oplossing werkt, voert het systeem niet alleen een proefje uit. Het voert het hele keukeninspectieproces opnieuw uit: het controleert het fornuis, de ingrediënten, de veiligheidsregels en de uiteindelijke smaak. Als het gerecht een van deze controles niet haalt, wordt de oplossing beschouwd als een mislukking.
- De Variatie: Ze hebben de mislukkingen gecategoriseerd in 12 types, variërend van "De presentatie is rommelig" (opmaak) tot "De oven is kapot" (omgevingsfouten) tot "We hebben niet het juiste meel" (afhankelijkheidsproblemen).
Het Experiment: Kunnen AI-koks het Oplossen?
De onderzoekers testten vier verschillende "AI-koks" (Large Language Models) om te zien of ze deze afgewezen gerechten konden oplossen met uitsluitend de aantekeningen van de inspecteur (de foutmeldingen).
Hier is wat ze ontdekten:
- De "Eenvoudige" Oplossingen: De AI was verrassend goed in het oplossen van "presentatie"-problemen. Als de fout was "jouw code is niet correct opgemaakt" of "je hebt een komma vergeten", kon de AI het ongeveer 35% van de tijd oplossen. Het is als een kok die er goed in is om het bord schoon te vegen.
- De "Moeilijke" Oplossingen: De AI had het verschrikkelijk moeilijk met de complexe zaken. Toen het probleem was "de oven is kapot" (omgevingsproblemen) of "we hebben een specifiek merk meel nodig dat niet is geïnstalleerd" (afhankelijkheidsproblemen), daalde het slagingspercentage tot bijna nul (vaak minder dan 9%). De AI kon niet doorgronden dat het probleem niet het recept was, maar de keuken zelf.
- De "Aantekeningen Lezen"-Factor: Het succes van de AI hing sterk af van hoe goed het de aantekeningen van de inspecteur las.
- Slim Lezen (Agent-gebaseerd): Wanneer de AI werd gevraagd om de lange, rommelige aantekeningen zorgvuldig te lezen, ze samen te vatten en stap voor stap na te denken, deed het het veel beter.
- Zoeken op Trefwoorden (Retrieval-gebaseerd): Wanneer de AI gewoon zocht naar trefwoorden in de aantekeningen (zoals een simpele zoekbalk), raakte het in de war en faalde het veel vaker.
- Analogie: Het is het verschil tussen een kok die de hele klachtenbrief leest om de context te begrijpen, versus een kok die alleen zoekt naar het woord "verbrand" en ervan uitgaat dat het eten verbrand is.
De Grote Conclusie
Het artikel concludeert dat AI, hoewel het beter wordt in het oplossen van kleine, specifieke codefouten, nog steeds zeer slecht is in het begrijpen van het grotere plaatje van hoe software in de echte wereld werkt.
- Huidige Beperking: AI kan de "typefouten" en "stijl"-problemen oplossen, maar het raakt in de war wanneer het probleem gaat over de omgeving, afhankelijkheden of complexe systeemconfiguraties.
- De Kloof: Er is een enorme kloof tussen "een patch toepassen" (de code wijzigen) en "de volledige inspectie doorstaan" (het hele systeem werkend maken). De meeste patches die de AI maakte, leken correct, maar faalden bij de volledige keukeninspectie omdat ze de onderliggende omgevings- of afhankelijkheidsproblemen niet oplosten.
Kortom, CI-Repair-Bench is een nieuwe, strengere test die ons precies laat zien waar onze AI-reparatietools sterk zijn (het oplossen van kleine code-details) en waar ze zwak zijn (het oplossen van de complexe, realistische systemen die de code draaien). Het bewijst dat we, om software in de echte wereld te repareren, AI nodig hebben die de hele keuken begrijpt, niet alleen het recept.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.