← Nieuwste papers
🤖 AI

Evaluating Inference-Time Defenses Against Package Hallucination in LLM-Generated Code

Dit artikel behandelt het kritieke probleem van door LLM's gegenereerde code die hallucineert over niet-bestaande softwarepakketten door evaluatiebiases te corrigeren, zeven inferentie-tijd verdedigingen systematisch te beoordelen over meerdere modellen en talen, en aan te tonen dat hoewel Greedy decoding de beste utiliteitsafweging biedt, RAG en Self-Refine essentieel zijn voor robuuste bescherming tegen adversariële prompts.

Oorspronkelijke auteurs: Alberick Euraste Djire, Iyiola E. Olatunji, Melissa Tessa, Earl T. Barr, Jacques Klein, Tegawendé F. Bissyandé

Gepubliceerd 2026-08-25
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Alberick Euraste Djire, Iyiola E. Olatunji, Melissa Tessa, Earl T. Barr, Jacques Klein, Tegawendé F. Bissyandé

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

In de moderne wereld van softwareontwikkeling vertrouwen programmeurs vaak op kunstmatige intelligentie-assistenten om code te schrijven. Deze systemen, bekend als grote taalmodellen, fungeren als onvermoeibare partners die hele functies kunnen voorstellen of fouten in enkele seconden kunnen herstellen. Om hun suggesties werkend te maken, bevelen deze modellen vaak aan om externe softwarepakketten toe te voegen—vooraf geschreven collecties code die specifieke taken afhandelen, zoals het verbinden met een database of het maken van een grafiek. Het probleem ontstaat wanneer de kunstmatige intelligentie een pakketnaam verzint die volkomen echt klinkt, maar die in werkelijkheid niet bestaat in enige officiële softwarebibliotheek. Dit fenomeen wordt een pakkethallucinatie genoemd. Als een ontwikkelaar blindelings de suggestie vertrouwt en probeert dit niet-bestaande pakket te installeren, kan hij onbedoeld een kwaadaardig bestand downloaden dat is gemaakt door een hacker die de nepnaam heeft geregistreerd. Dit creëert een gevaarlijke achterdeur in de softwareleveringsketen, waardoor aanvallers schadelijke code kunnen injecteren in applicaties die mogelijk door miljoenen mensen worden gebruikt.

Een team van onderzoekers zette zich in om te begrijpen hoe vaak deze hallucinaties voorkomen en of specifieke technieken ze konden stoppen voordat de code zelfs maar voltooid is. Ze richtten zich op kleinere, open-source kunstmatige intelligentiemodellen, die veel worden gebruikt omdat ze minder duur zijn om te draaien, ook al zijn ze gevoeliger voor het maken van fouten dan hun grotere tegenhangers. De onderzoekers testten deze modellen in vier verschillende programmeertalen: Python, JavaScript, Ruby en Rust. Ze ontdekten dat eerdere methoden om deze fouten te meten gebrekkig waren. Veel eerdere studies telden standaard, ingebouwde hulpmiddelen die bij een programmeertaal horen als hallucinaties, simpelweg omdat deze hulpmiddelen niet in de externe pakketbibliotheken staan vermeld. Door deze telfout te corrigeren, vonden de onderzoekers dat het percentage hallucinaties voor Python lager was dan eerder gedacht, hoewel nog steeds aanzienlijk.

De kern van hun werk bestond uit het testen van zeven verschillende strategieën om te zien of ze het aantal nep-pakketnamen dat de modellen genereerden, konden verminderen. Sommige van deze strategieën hielden in dat de manier waarop het model het volgende woord selecteert werd gewijzigd, terwijl andere het model vroegen om zijn eigen werk te controleren of informatie op te zoeken in een geverifieerde database voordat het antwoord geeft. De onderzoekers ontdekten dat geen enkele methode in elke situatie het beste werkte. Een techniek genaamd Retrieval-Augmented Generation, die het model dwingt om een echte database van bestaande pakketten te raadplegen voordat het spreekt, bleek zeer effectief voor de meeste talen en verlaagde de foutmarge aanzienlijk. Echter, dezezelfde techniek maakte het voor JavaScript soms juist erger, wat suggereert dat de oplossing sterk afhangt van de specifieke programmeertaal die wordt gebruikt. Een andere aanpak, waarbij het model wordt gevraagd zijn eigen suggesties te bekritiseren en te herschrijven, werkte goed voor grotere modellen, maar faalde voor de kleinste modellen, die vaak niet in staat waren hun eigen fouten te herkennen.

Het team introduceerde ook een nieuwe manier om te meten of de suggesties van het model daadwerkelijk nuttig waren, en niet alleen correct. Ze ontdekten dat sommige strategieën die erin slaagden hallucinaties te stoppen, ook het model ervan weerhielden om überhaupt pakketten voor te stellen, waardoor de ontwikkelaar met niets kwam te zitten. De meest gebalanceerde aanpak, die fouten verminderde terwijl nog steeds nuttige suggesties bood, was een eenvoudige methode waarbij het model simpelweg het meest waarschijnlijke volgende woord kiest, in plaats van een kans te wagen op minder waarschijnlijke opties. Deze "greedy" aanpak bood de beste afweging tussen veiligheid en bruikbaarheid voor de geteste modellen.

Misschien wel de meest opvallende bevinding kwam naar voren toen de onderzoekers deze verdedigingen testten tegen een vijandige omgeving. Ze creëerden prompts die er doelbewust op gericht waren de modellen te misleiden om nep-pakketten aan te bevelen door de nepnamen direct in de instructies in te bedden. Onder deze vijandige omstandigheden schoten de foutpercentages omhoog, met een stijging van maar liefst 45 procentpunten vergeleken met normale verzoeken. In deze vijandige setting faalden de eenvoudige trucs om de manier waarop het model woorden kiest volledig. Alleen de methoden die vertrouwden op het controleren tegen een echte database of het dwingen van het model om zijn eigen logica te dubbelchecken, konden de aanval weerstaan. De onderzoekers concludeerden dat hoewel eenvoudige aanpassingen kunnen helpen bij normaal gebruik, het beschermen van software tegen vastberaden aanvallers een systeem vereist dat feiten kan verifiëren tegen de buitenwereld of de eigen logica rigoureus kan controleren. De studie benadrukt dat de beste verdediging geen eenheidsoplossing is, maar een keuze die zorgvuldig is afgestemd op de specifieke dreiging en de betreffende programmeertaal.

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.

Probeer Digest →