DeNovoSWE: Scaling Long-Horizon Environments for Generating Entire Repositories from Scratch
Dit artikel introduceert DeNovoSWE, een grootschalige, automatisch gecureerde dataset van 4.818 whole-repository generatie-instanties ontworpen om LLM-agenten te trainen voor langdurige software engineering-taken, wat de prestaties op de BeyondSWE-Doc2Repo benchmark aanzienlijk verhoogt van 5,8% naar 47,2%.
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 meesterarchitect hebt die ongelooflijk getalenteerd is in het repareren van één enkele kapotte baksteen in een muur. Ze kunnen naar een specifieke barst kijken, begrijpen waarom deze is ontstaan, en deze perfect dichten. Dit is waar huidige AI-code-assistenten goed in zijn: het oplossen van kleine bugs in bestaande software.
Maar wat als je diezelfde architect zou vragen om een hele wolkenkrabber vanaf de grond af op te bouwen, beginnend met slechts een vage schets op een servetje? Dat is een veel moeilijkere taak. Het vereist het plannen van de fundering, het ontwerpen van de liften, het aanleggen van de elektriciteit en het ervoor zorgen dat elke kamer logisch met elkaar verbonden is. Tot nu toe heeft AI moeite gehad met deze "gehele gebouw"-taak omdat het niet genoeg oefening heeft gehad.
Het Probleem: Een Gebrek aan Blauwdrukken
De belangrijkste reden dat AI moeite heeft met het bouwen van volledige software-"wolkenkrabbers" (repositories) is een gebrek aan trainingsdata. De meeste bestaande trainingsdata zijn als een lijst met "repareer deze lekkende kraan" of "repareer dit gebarsten raam". Er is heel weinig data die een AI leert hoe ze van een hoogwaardige beschrijving (zoals een gebruikershandleiding) een volledig functioneel, complex gebouw vanaf de grond op kan bouwen.
De Oplossing: DeNovoSWE
Het artikel introduceert DeNovoSWE, een enorme nieuwe trainingsdataset die specifiek is ontworpen om AI te leren hoe ze volledige softwareprojecten vanaf de grond af op te bouwen. Denk aan een gigantische bibliotheek van 4.818 "constructie-uitdagingen". In elke uitdaging krijgt de AI een gedetailleerde set instructies (documentatie) en moet ze het volledige softwaresysteem bouwen dat precies aan die instructies voldoet.
Hoe Ze de Trainingsdata Hebben Gebouwd (De "Verdeel en Heers"-Strategie)
Het bouwen van een dataset hiervoor is moeilijk omdat je niet zomaar een AI kunt vragen om "een handleiding voor een complexe app te schrijven" en dan te hopen dat het perfect is. De auteurs gebruikten een slim, geautomatiseerd team van AI-agenten om het zware werk te doen:
- De "Verdeel"-fase: Stel je voor dat je een handleiding probeert te schrijven voor een enorme stad. Dat is te groot om in één keer te doen. Dus breekt de AI de stad eerst af in wijken (capaciteiten). Het identificeert wat elke wijk doet en welke gebouwen (codebestanden) erbij horen.
- De "Heers"-fase: Nu schrijven gespecialiseerde AI-agenten de handleiding voor slechts één wijk tegelijk.
- De Draft Agent: Schrijft de eerste versie van de handleiding.
- De Critic Agent: Fungeert als een strenge redacteur. Het controleert de handleiding: "Ben je vergeten uit te leggen hoe de verkeerslichten werken? Is het bedradingsdiagram duidelijk?"
- De Repair Agent: Herstelt de fouten die de Critic heeft gevonden.
Dit proces herhaalt zich totdat de handleiding perfect is.
- De "Gouden" Test: Zodra de handleiding is geschreven, creëert het systeem een "schone kamer" (sandbox). Het neemt de originele code, gooit deze weg en laat alleen de handleiding over. Daarna vraat het een andere AI-agent om de software opnieuw op te bouwen met alleen die handleiding. Als de nieuwe software alle tests doorstaat, wordt de handleiding als hoogwaardig beschouwd en toegevoegd aan de dataset.
De AI Eerlijk Houden (Anti-Spieken)
Een grote zorg is dat de AI zou kunnen "spieken" door naar de originele code te kijken die het juist moest reconstrueren. De auteurs hebben een rigoureus beveiligingssysteem gebouwd om dit te voorkomen:
- Ze verwijderen alle geschiedenis, caches en verborgen bestanden.
- Ze blokkeren de AI om online te gaan om de originele code te downloaden.
- Ze zorgen ervoor dat de AI echt "closed-book" is, waardoor het gedwongen wordt om volledig te vertrouwen op de documentatie die het gekregen heeft.
De "Moeilijkheidsbewuste" Filter
Niet elk constructieproject is hetzelfde. Sommige zijn kleine schuurtjes; andere zijn wolkenkrabbers. Als je alleen de trainingsvoorbeelden behoudt waarbij de AI in de eerste poging een perfecte wolkenkrabber bouwde, verlies je alle waardevolle lessen van de moeilijke projecten waarbij de AI bijna slaagde, maar een paar fouten maakte.
De auteurs creëerden een slimme filter die kijkt naar hoe moeilijk een project is.
- Voor gemakkelijke projecten (een klein schuurtje) eisen ze een perfecte score.
- Voor moeilijke projecten (een wolkenkrabber) accepteren ze een iets lagere score (bijv. 80% succes) omdat het bouwen van een perfecte wolkenkrabber ongelooflijk moeilijk is.
Dit zorgt ervoor dat de AI leert van zowel de gemakkelijke overwinningen als de "bijna-succes"-momenten bij moeilijke taken.
De Resultaten
Wanneer ze een AI-model trainden met deze nieuwe dataset, waren de resultaten spectaculair.
- Vóór de training kon de AI slechts ongeveer 5,8% van de vereiste software correct bouwen.
- Na de training met DeNovoSWE steeg het succespercentage naar 47,2%.
Dit bewijst dat door AI de juiste soort "constructie-oefening" te geven—het opdelen van grote problemen, het gebruiken van strikte redacteurs en het leren van gedeeltelijke successen—we de AI kunnen leren om van een eenvoudige "baksteen-reparateur" te veranderen in een echte "software-architect".
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.