Byam: Fixing Breaking Dependency Updates with Large Language Models
Dit onderzoek toont aan dat Large Language Models, met name OpenAI's o3-mini, effectief kunnen worden ingezet om automatisch code-updates te genereren die doorbrekende afhankelijkheidsupdates in Java-projecten repareren, met een succespercentage van 27% op build-niveau en 78% op het niveau van individuele compilatiefouten.
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
Het Probleem: De "Rijstijl" van Software
Stel je voor dat je een prachtige, complexe maaltijd bereidt (je software-applicatie). Je gebruikt daarvoor ingrediënten van buitenaf, zoals specerijen of sauzen die je koopt in de supermarkt. In de programmeerwereld heten deze ingrediënten bibliotheken of afhankelijkheden.
Elke keer als de supermarkt een nieuwe versie van die saus levert (een update), is dat meestal goed. Maar soms gebeurt er iets vervelends: de fabrikant verandert de verpakking.
- De dop zit nu aan de andere kant.
- De maat van het flesje is veranderd.
- Of de naam van het ingrediënt op het etiket is gewijzigd.
Als jij in je recept (je code) nog steeds schrijft: "Giet de saus uit het flesje met de rode dop", maar de supermarkt levert nu alleen nog maar flesjes met een blauwe dop, dan past je flesje niet meer in je recept. Je keuken staat vol met rommel, en je maaltijd kan niet worden klaargemaakt.
In de programmeertaal noemen we dit een brekende update. Je code "breekt" omdat de nieuwe versie van de bibliotheek niet meer samenwerkt met je oude code. Voor programmeurs is het zoeken naar de oorzaak en het aanpassen van het recept vaak een saaie, tijdrovende klus.
De Oplossing: Byam, de Slimme Keukenassistent
De auteurs van dit paper hebben een nieuwe tool bedacht die Byam heet. Je kunt Byam zien als een super-slimme keukenassistent (een kunstmatige intelligentie) die je helpt om je recept aan te passen aan de nieuwe saus.
In plaats dat jij urenlang moet zoeken in de handleiding van de supermarkt, doet Byam het volgende:
- Hij kijkt wat er mis is: Byam leest de foutmelding van je computer (de "keukenalarm"). Hij ziet precies welke regel in je recept niet meer werkt.
- Hij vergelijkt de verpakkingen: Byam kijkt naar de oude en de nieuwe versie van de saus. Hij ziet precies wat er is veranderd (bijvoorbeeld: "Ah, de naam van de dop is veranderd van 'rood' naar 'blauw'").
- Hij denkt na (Chain of Thought): Dit is het slimme deel. Byam denkt niet direct in één keer een oplossing op. Hij denkt stap voor stap na: "Oké, de naam is veranderd. Ik moet de regel aanpassen. Maar wacht, als ik dit doe, moet ik ook een andere import gebruiken." Dit noemen ze Chain-of-Thought (keten van gedachten).
- Hij schrijft het nieuwe recept: Byam schrijft de aangepaste code voor je.
Het Experiment: Wie is de beste kok?
De onderzoekers hebben Byam getest met vijf verschillende modellen van kunstmatige intelligentie (zoals Google Gemini, OpenAI GPT, en andere). Ze hebben gekeken welke "assistent" het beste kon helpen bij 103 verschillende gevallen van kapotte software.
Ze hebben ook gekeken welke "instructies" (prompts) het beste werkten. Stel je voor dat je de assistent vraagt:
- Optie A: "Maak het goed." (Te vaag)
- Optie B: "Kijk naar regel 15, en kijk naar de veranderingen in de nieuwe saus, en denk dan stap voor stap na." (Duidelijk en gedetailleerd)
De resultaten:
- De slimste assistent was o3-mini (van OpenAI).
- Met de beste instructies (Optie B) kon deze assistent 27% van alle kapotte projecten volledig repareren. Dat betekent dat de software weer werkte zonder dat de mens er iets aan hoefde te doen!
- Zelfs als hij niet alles 100% kon repareren, kon hij 78% van de individuele fouten oplossen. Dat is alsof je een rommelige keuken hebt, en de assistent 78% van de borden en potten opruimt, zodat jij alleen nog maar een paar kleine dingen hoeft te doen.
Waarom is dit belangrijk?
Vroeger moesten programmeurs zelf de handleidingen van duizenden bibliotheken lezen om te zien wat er veranderde. Dat is als proberen te raden hoe een nieuwe flesje saus eruitziet zonder het etiket te lezen.
Met Byam kunnen programmeurs:
- Tijd besparen: Ze hoeven niet meer urenlang te zoeken naar de fout.
- Veiliger zijn: Omdat het makkelijker is om updates te doen, houden ze hun software actueel. Dat is belangrijk voor veiligheid (zoals het vervangen van een oud slot door een nieuw, veilig slot).
- Focus houden: Ze kunnen zich richten op het creatieve deel van het programmeren, terwijl de AI het saaie "recept-aanpassen"-werk doet.
Conclusie
Kortom: Byam is een slimme robot-assistent die helpt wanneer software-updates je code kapotmaken. Door de robot niet alleen te laten "gissen", maar hem de juiste details te geven (wat is er veranderd, waar zit de fout, en denk stap voor stap na), kan hij een groot deel van het werk voor zijn rekening nemen. Het is een grote stap in de richting van software die zichzelf onderhoudt, net als een robot die je keuken opruimt terwijl jij aan het koken bent.
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.