When LLMs Lag Behind: Knowledge Conflicts from Evolving APIs in Code Generation
Dit onderzoek toont aan dat Large Language Models ondanks het gebruik van externe documentatie vaak vastlopen in verouderde kennis bij het genereren van code voor geëvolueerde API's, waarbij alleen redeneerstrategieën zoals Self-Reflection de uitvoerbaarheid van de gegenereerde code significant verbeteren.
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 zeer slimme, maar ouderwetse kok hebt. Deze kok (de AI) is jarenlang getraind met duizenden kookboeken. Hij kent elke recept uit zijn hoofd en kan in een flits een perfecte pasta maken. Maar er is een probleem: de kookwereld verandert snel. Soms verdwijnt een ingrediënt, verandert de naam van een pan, of komt er een heel nieuw, revolutionair apparaat op de markt.
Deze kok heeft echter geen internetverbinding om de nieuwste kookboeken te checken. Hij werkt alleen met wat hij in zijn hoofd heeft. Als je hem vraagt om een recept te maken met een nieuw apparaat dat na zijn training is uitgevonden, probeert hij het vaak te doen met de oude, verouderde methodes die hij kent. Dat werkt niet, en de maaltijd (de code) is onbruikbaar.
Dit is precies wat deze wetenschappelijke paper onderzoekt: Hoe goed kunnen AI-modellen omgaan met verouderde kennis wanneer ze nieuwe instructies krijgen?
Hier is de uitleg in simpele taal:
1. Het Probleem: De "Kennisstrijd"
De onderzoekers noemen dit een kennisconflict.
- Het geheugen van de AI (Parametrische kennis): Dit is wat de AI al weet uit haar training. Het is als een oude, stoffige kookboekencollectie.
- De nieuwe instructies (Context): Dit is wat jij haar vertelt nu, bijvoorbeeld: "Gebruik niet meer de oude pan, maar deze nieuwe!"
Het probleem is dat de AI vaak luistert naar haar oude geheugen in plaats van naar jouw nieuwe instructie. Ze zegt: "Nee, ik weet zeker dat je de oude pan moet gebruiken," terwijl jij zegt: "Die is afgeschaft!" De AI is zo overtuigd van haar eigen oude kennis dat ze de nieuwe regels negeert.
2. De Experimenten: Een Testkeuken
De onderzoekers hebben een enorme testkeuken gebouwd met 270 nieuwe kookregels uit 8 populaire Python-bibliotheken (zoals NumPy en Pandas, die data-wetenschappers gebruiken). Ze hebben gekeken naar drie soorten veranderingen:
- Verouderd: Een oude pan is weg, gebruik een nieuwe.
- Aangepast: De pan is nog hetzelfde, maar de handgreep zit nu aan de andere kant.
- Nieuw: Een volledig nieuw apparaat dat nog nooit eerder bestond.
Ze lieten verschillende AI-modellen (van kleine tot zeer grote) proberen code te schrijven voor deze nieuwe regels.
3. De Resultaten: Wat Werken?
A. Gewone instructies zijn niet genoeg
Als je de AI alleen vertelt: "Gebruik de nieuwe pan," zonder uitleg, faalt ze vaak. Ze maakt code die niet werkt.
- Resultaat: Slechts 42% van de code werkte echt. De rest was onbruikbaar.
B. Geef haar het nieuwe receptboekje (Documentatie)
Als je de AI niet alleen vertelt wat er verandert, maar haar ook het nieuwe handleiding (de documentatie) geeft, gaat het veel beter.
- Resultaat: De code die ze probeert te maken, is nu 93% correct in de intentie. Maar... slechts 66% werkt echt. Ze begrijpen wat ze moeten doen, maar maken nog steeds fouten in de uitvoering (zoals de verkeerde schroeven gebruiken).
C. De "Denk- en Controleer"-truc (Redenering)
Dit is het meest interessante deel. De onderzoekers probeerden twee slimme trucs:
- Chain-of-Thought (CoT): De AI moet eerst hardop nadenken ("Oké, ik zie dat de pan veranderd is, dus ik moet...") voordat ze de code schrijft.
- Self-Reflection (Zelfreflectie): De AI schrijft eerst de code, kijkt er dan kritisch op ("Wacht, heb ik de juiste schroeven gebruikt?"), en corrigeert zichzelf als dat nodig is.
Het resultaat:
- Het "nadenken" (CoT) hielp niet heel veel.
- Maar het zelf-corrigeren (Self-Reflection) was een game-changer! Het zorgde ervoor dat 11% meer code daadwerkelijk werkte. Het was alsof de kok na het koken even proefde en zei: "Oh, te zout, ik doe er water bij," voordat hij het bord op de tafel zet.
4. Waarom Lukt het Niet Altijd?
De onderzoekers keken naar de fouten:
- Vergeten: De AI negeerde de nieuwe regels volledig en deed gewoon wat ze altijd deed (42% van de fouten).
- Verouderd: Ze gebruikte de oude pan, terwijl die weg was.
- Hallucineren: Ze verzon een pan die niet bestond (vooral bij nieuwe apparaten).
- Fouten in details: Ze gebruikte de juiste pan, maar de verkeerde schroeven of de verkeerde volgorde.
5. De Belangrijkste Les voor de Toekomst
Deze paper leert ons drie dingen:
- Geef altijd het nieuwe boekje: Als je een AI iets laat doen met nieuwe software, moet je haar de actuele handleiding geven. Zonder die handleiding is ze vaak nutteloos.
- Laat haar zichzelf controleren: De beste manier om fouten te voorkomen, is de AI vragen om haar eigen werk te controleren en te verbeteren voordat ze het oplevert.
- Wees kritisch: AI is niet onfeilbaar. Zelfs als je haar de juiste instructies geeft, kan ze vastzitten in oude patronen. We moeten nieuwe testmethodes ontwikkelen die kijken naar hoe AI omgaat met nieuwe veranderingen, niet alleen met dingen die ze al kent.
Kortom: AI is een briljante kok, maar ze heeft een oude kop. Als je haar een nieuw recept geeft, moet je haar het nieuwe boekje geven én haar dwingen om na te denken en zichzelf te corrigeren, anders krijg je een maaltijd die niet eetbaar is.
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.