RAG uitgelegd: zo bouw je een AI die niet liegt
RAG (retrieval-augmented generation) koppelt een taalmodel aan een live zoekopdracht over je eigen documenten, zodat elk antwoord terug te voeren is op een bron. Hoe het werkt, waar het misgaat, en wat er nog bij moet om hallucinatie echt te stoppen.
RAG staat voor retrieval-augmented generation: een taalmodel dat, vóór het antwoordt, eerst een zoekopdracht uitvoert over een verzameling documenten die jij beheert — je kennisbank, je contracten, je jurisprudentie — en de gevonden passages als context meegeeft aan het model. Het model verzint dan niet langer uit het niets, maar leest eerst mee met wat er daadwerkelijk staat.
Het korte antwoord op de titel: een AI die niet liegt bouw je met vier ingrediënten — gedegen retrieval (de juiste passages vinden), een context die het model dwingt zich aan de bron te houden, een generatiestap die expliciet citeert, en een onafhankelijke verificatie die elke bewering terugkoppelt naar de brontekst. Laat je die laatste stap weg, dan heb je RAG gebouwd die hallucinatie vermindert — niet een systeem dat hallucinatie uitsluit. De rest van dit artikel legt uit waarom, en hoe je het wél sluitend maakt.
Wat is RAG precies?
Een taalmodel op zichzelf antwoordt uit twee bronnen: wat het onthouden heeft tijdens training (parametrische kennis, bevroren op een cutoff-datum) en wat je in het gesprek meegeeft. Voor veel vragen is dat genoeg. Maar zodra het antwoord moet steunen op actuele, specifieke of grote hoeveelheden documenten — jurisprudentie, interne procedures, een productcatalogus — schiet parametrische kennis tekort: het model heeft het nooit gezien, heeft het half onthouden, of kent een verouderde versie.
RAG lost dat op door er een retrieval-stap voor te zetten. Bij elke vraag doorzoekt het systeem eerst de eigen documentverzameling, selecteert de meest relevante passages, en stopt die als context in de prompt. Het model genereert vervolgens een antwoord dat geconditioneerd is op die context — in plaats van vrij te associëren vanuit training. Dat is het hele idee: niet het model groter maken, maar het de juiste bijsluiter geven vóór het antwoordt.
Waarom "gewoon een groter model" niet volstaat
De verleiding is om hallucinatie te zien als een modelprobleem dat een volgende generatie wel oplost. Dat is maar ten dele waar. Ook het beste taalmodel heeft geen ingebouwd mechanisme om te zeggen "dit weet ik niet zeker" — het genereert altijd het meest waarschijnlijke vervolg, of dat nu klopt of niet. En zonder retrieval heeft het model bovendien geen toegang tot jouw actuele of interne informatie, hoe groot het ook is. Een taalmodel traint op het publieke internet tot een bepaalde datum; het kent jouw contract van vorige week niet en de uitspraak van gisteren evenmin.
RAG pakt beide problemen deels aan: het geeft toegang tot actuele, eigen data, én het verkleint de kans op verzinsel omdat het model iets heeft om naar te verwijzen. "Deels", want een model kan nog steeds een detail uit de context verkeerd weergeven, twee passages door elkaar halen, of iets beweren dat er net niet staat. Waarom dat zo hardnekkig is en wat daar wél tegen helpt, staat uitgewerkt in Waarom RAG zonder bronvermelding waardeloos is.
De architectuur in vijf stappen
1. Vraag in gewone taal. De gebruiker stelt een vraag zoals hij die ook aan een collega zou stellen — geen zoekwoorden, geen speciale syntax.
2. Retrieval over de eigen data. Een zoeklaag — vectorzoeken, full-text search, of een combinatie — doorzoekt de documentverzameling en selecteert de passages die het dichtst bij de vraag liggen.
3. Context-assemblage. De gevonden passages worden, mét herkomst (documentnaam, artikelnummer, ECLI, paginanummer), samengevoegd tot de context die naar het model gaat.
4. Generatie met citatieplicht. Het model krijgt de instructie om alleen te antwoorden op basis van de meegegeven context, en elke bewering te koppelen aan een bron.
5. Verificatie van elke claim. Een aparte controlestap toetst of elk citaat in het antwoord daadwerkelijk voorkomt in de brontekst die het aanhaalt. Klopt het niet, dan wordt de bewering gemarkeerd of geschrapt in plaats van gepresenteerd als feit.
Zo ziet dat er in de praktijk uit op een schaal die verder gaat dan een demo: in onze eigen Neuralex Legal-showcase doorzoekt precies deze architectuur 3,6 miljoen Nederlandse rechterlijke uitspraken in 70 tot 300 milliseconden, met een bronkaart (ECLI + exact citaat) bij elke bewering in het antwoord.
Waar RAG in productie meestal misgaat
Een RAG-demo bouwen kost een middag; een RAG-systeem dat een dag met echte gebruikers overleeft, is een ander verhaal. De meest voorkomende breekpunten: retrieval die de verkeerde passage bovenaan zet, chunking die een zin halverwege afkapt waardoor context verloren gaat, een generatiestap die toch los van de bron gaat associëren, en het simpelweg ontbreken van een meetlat om te zien of het beter of slechter wordt na een wijziging. Een uitgebreide sectie-voor-sectie ontleding van die vijf breekpunten staat in Van RAG-demo naar productie: de vijf dingen die stukgaan.
Hoe je zeker weet dat het werkt
"Het antwoord klinkt goed" is geen meetlat. Een RAG-systeem dat je serieus wilt inzetten, heeft een evaluatieharnas nodig: een vaste set testvragen met een bekend goed antwoord (een goldenset), waartegen je elke wijziging aan retrieval, chunking of het prompt automatisch afzet. Zonder die meetlat stuur je op onderbuikgevoel, en ontdek je een regressie pas wanneer een klant of collega hem tegenkomt — te laat.
Veelgestelde vragen
Is RAG hetzelfde als een model fine-tunen? Nee. Fine-tunen verandert de gewichten van het model op basis van voorbeelden; RAG laat het model ongemoeid en voegt bij elke vraag relevante documenten toe aan de context. RAG is doorgaans goedkoper, direct bij te werken zodra er nieuwe documenten zijn, en maakt bronvermelding mogelijk — fine-tuning niet.
Voorkomt RAG hallucinatie volledig? Niet vanzelf. Het model kan nog steeds iets beweren dat niet in de aangeleverde context staat. Alleen een aparte verificatiestap die elke claim terugkoppelt naar de brontekst sluit dat gat.
Heb je een vectordatabase nodig? Niet per se. Vectorzoeken is één manier om relevante passages te vinden, maar full-text search of een hybride aanpak werkt in veel domeinen minstens zo goed — vooral bij exacte termen, nummers en juridische verwijzingen.
Conclusie
RAG is geen trucje maar een architectuurkeuze: geef een taalmodel iets om naar te verwijzen, dwing het om te citeren, en controleer die citaten onafhankelijk. Doe je dat laatste niet, dan heb je een demo die minder vaak liegt. Doe je het wel, dan heb je een systeem waar je een besluit op durft te baseren — en dat is precies het verschil tussen "AI die indruk maakt" en "AI die je kunt vertrouwen".