Retrieval-Augmented Generation

Retrieval-Augmented Generation

Wat is RAG?

RAG (retrieval-augmented generation) geeft een LLM toegang tot jouw eigen data zonder het model te hertrainen. Wat is RAG precies, hoe werkt het technisch, en wanneer kies je het boven fine-tuning?

Buzzword met een kern

RAG staat op elke AI-slide zodra het over 'AI met je eigen data' gaat. Bijna niemand legt uit wat er technisch onder de motorkap gebeurt.

Opzoeken voor je antwoordt

RAG haalt eerst de relevante stukken uit jouw bronnen op en geeft die aan het model mee, zodat het antwoordt op basis van jouw data.

De winst zit in het ophalen

Een model met goede retrieval antwoordt uit jouw echte documenten, met minder verzinsels en een bron die je kunt nakijken.

“AI met je eigen data” heet meestal RAG

Zodra een bedrijf een AI wil die zijn eigen handleidingen, contracten of tickets kent, valt al snel het woord RAG: retrieval-augmented generation. Het staat op elke AI-conferentie en in elke salespitch over “een chatbot op jullie documenten”. Net als AI agents klinkt het groot, terwijl de techniek erachter goed te volgen is.

De aanleiding is een bekend probleem. Een LLM weet ontzettend veel over de wereld in het algemeen en helemaal niets over jouw bedrijf. Vraag ChatGPT naar je eigen prijslijst, je leveringsvoorwaarden of de status van order 4815 en hij kan twee dingen doen: zeggen dat hij het niet weet, of een plausibel antwoord verzinnen. Geen van beide kun je aan een klant laten zien.

Een LLM heeft de halve wereld gelezen en jouw intranet nooit. RAG is de simpelste manier om dat recht te zetten: laat hem de bron erbij pakken voordat hij antwoordt.

RAG lost dit op zonder het model aan te raken. Je traint niets opnieuw. Je geeft het model op het moment van de vraag de juiste stukken uit jouw data mee, en laat het daaruit antwoorden.

Retrieval, augmented, generation: drie stappen

De naam is letterlijk de uitleg. RAG doet drie dingen op een rij.

1

Retrieval (ophalen)

Bij een vraag zoekt het systeem eerst in jouw bronnen naar de stukken tekst die er het meest toe doen: de paar passages die het antwoord bevatten, in plaats van het hele archief.

2

Augmented (aanvullen)

Die opgehaalde stukken plakt het systeem bij de vraag in de prompt. Het model krijgt dus de vraag én de relevante bron in één keer voorgeschoteld.

3

Generation (genereren)

Het LLM schrijft het antwoord uit de meegegeven bron, in plaats van uit zijn eigen geheugen. De stof staat er net bij, het model verwoordt het netjes.

De vergelijking die het meteen duidelijk maakt: een open-boek-examen. Zonder RAG laat je het model het tentamen uit zijn hoofd maken en hoop je dat het de stof nog weet. Met RAG leg je precies de juiste bladzijde voor zijn neus en vraag je het antwoord daaruit te halen. Het model wordt er niet slimmer van. Het krijgt op het juiste moment het juiste materiaal bij de hand.

Zonder RAG vraag je het model het uit zijn hoofd te doen. Met RAG schuif je de juiste bladzijde onder zijn neus. Dezelfde AI, een heel ander betrouwbaarheidsniveau.

Hoe het ophalen werkt: embeddings en de vectorstore

De magie zit in stap één. Hoe vindt een systeem in duizenden pagina’s de drie passages die bij een vraag horen? Een gewone zoekopdracht op trefwoorden schiet tekort, want de klant typt zelden exact de woorden die in jouw document staan. RAG zoekt daarom op betekenis, en dat gaat via embeddings.

Een embedding is een stuk tekst vertaald naar een rij getallen die de betekenis vastlegt. Teksten die over hetzelfde gaan, krijgen getallen die dicht bij elkaar liggen, ook als er compleet andere woorden in staan. “Hoe zeg ik mijn abonnement op” en “opzeggen contract” belanden zo naast elkaar, zonder één gedeeld trefwoord. Die getallenrijen bewaar je in een vectordatabase, gemaakt om snel te vinden wat het dichtst bij elkaar ligt.

1

Knippen in stukken

Je documenten worden opgedeeld in hapklare brokken, een paar alinea's per stuk. Te grof en je haalt ruis op, te fijn en de context valt weg. Dit knippen bepaalt meer aan de kwaliteit dan mensen denken.

2

Omzetten naar embeddings

Elk brok gaat door een embedding-model en wordt een getallenrij die de betekenis vangt. Eenmalig vooraf, en opnieuw zodra een document verandert.

3

Opslaan in een vectorstore

Alle getallenrijen komen in een vectordatabase. Die is gebouwd om razendsnel de brokken te vinden die het dichtst bij een vraag liggen.

4

Zoeken bij de vraag

De vraag van de klant wordt op dezelfde manier een getallenrij. Het systeem pakt de paar brokken die er het dichtst bij liggen en geeft die aan het model mee.

De eerste drie stappen doe je vooraf, één keer, en je werkt ze bij als je data verandert. De vierde gebeurt live bij elke vraag. Dat is het hele mechanisme. Geen bewustzijn, geen model dat “jouw bedrijf leert kennen”, gewoon slim zoeken op betekenis met een LLM erachter dat de gevonden tekst netjes verwoordt.

RAG of het model fine-tunen?

Dit is de vraag die het vaakst verkeerd valt. Als je wilt dat een AI jouw data kent, lijkt “train het model erop” de logische route. Voor bijna alle gevallen is dat het verkeerde gereedschap. Fine-tunen en RAG lossen verschillende problemen op.

📚

RAG geeft het model kennis

Wil je dat de AI jouw feiten, documenten en actuele cijfers kent? Dat is RAG. Je voegt of vervangt een document en het antwoord klopt meteen, zonder iets te hertrainen.

🎭

Fine-tunen verandert gedrag

Wil je dat de AI een vaste toon, structuur of taal aanhoudt, of een heel specifiek soort taak leert? Dat is fine-tunen. Je verschuift de manier waarop het model antwoordt; de feiten die het paraat heeft, blijven hetzelfde.

Het verschil zit in vers versus vast. RAG haalt de bron op het moment zelf op, dus actuele data is een kwestie van het document bijwerken. Een fine-getuned model heeft de stof op trainingsmoment ingebakken en loopt achter zodra je prijzen of voorwaarden veranderen. Voor “de AI moet onze kennis kennen” is RAG daarom bijna altijd het startpunt, en fine-tunen iets dat je er pas later eventueel bovenop legt.

Fine-tunen leert het model een vak. RAG geeft het de juiste map erbij. De meeste bedrijven denken dat ze het eerste nodig hebben en zoeken eigenlijk het tweede.

Waar RAG misgaat: het ophalen is alles

RAG klinkt eenvoudig en een demo bouw je in een middag. Het verschil tussen die demo en een systeem waar je klanten op vertrouwen, zit volledig in de retrieval. Haalt stap één de verkeerde brokken op, dan schrijft het model een vloeiend, overtuigend en fout antwoord. Het model is zo goed als wat je het voert.

✂️

Slecht geknipt

Brokken die een tabel of een zin doormidden hakken, leveren context op die half klopt. De helft van de RAG-problemen in de praktijk is eigenlijk een knipprobleem.

🕰️

Verouderde index

De vectorstore loopt achter op je echte documenten. Het model haalt zelfverzekerd het beleid van vorig jaar op. Bijwerken is een doorlopende klus, geen eenmalige import.

⚖️

Te veel of te weinig opgehaald

Te weinig brokken en het antwoord mist context. Te veel en de echte passage verzuipt in ruis, waardoor het model alsnog de mist in gaat.

📊

Geen manier om kwaliteit te meten

Zonder een vaste set testvragen weet je niet of een aanpassing de antwoorden beter of slechter maakt. Meten hoort bij RAG, anders stuur je blind.

Daarom is een goede bronvermelding zo belangrijk: een serieus RAG-systeem laat zien uit welk document een antwoord komt, zodat een mens het kan nakijken. Dat is precies het verschil met een kale LLM die overtuigend gokt. De engineering zit in het ophalen betrouwbaar maken en houden, en dat is waar wij voor klanten het echte werk doen.

Een demo overtuigt iedereen. De echte vraag is of je systeem na een jaar nog de juiste bron ophaalt, terwijl je documenten elke week veranderen.

RAG, knowledge graphs en agents

RAG staat zelden op zichzelf. Het is een bouwsteen in het grotere AI-landschap waar we eerder over schreven.

Klassieke RAG zoekt in een vectorstore naar losse tekstfragmenten die op de vraag lijken. Dat werkt prima zolang het antwoord in één passage staat. Zit het verspreid over meerdere, met elkaar verbonden feiten, dan loopt die aanpak vast en kom je uit bij GraphRAG en knowledge graphs: daar volgt het systeem de relaties tussen feiten in plaats van losse stukjes tekst. In de praktijk combineer je ze: vectorzoeken om snel een ingang te vinden, de graph om vandaar de verbanden uit te breiden.

En in een agentic workflow is RAG simpelweg een van de tools die een AI agent kan aanroepen. Waar de ene tool een mail stuurt en de andere een ticket aanmaakt, beantwoordt de RAG-tool de vraag “wat staat hierover in onze eigen documenten?” De agent haalt het feit op het moment dat hij het nodig heeft, gebruikt het in zijn volgende stap en houdt zo zijn antwoorden gegrond.

Wanneer RAG loont

RAG verdient zich terug zodra het juiste antwoord in jouw tekst staat en het model er alleen bij moet kunnen. De vuistregel draait om waar de kennis zit.

Kies RAG

Je hebt een hoop eigen tekst die ertoe doet: handleidingen, beleid, contracten, een kennisbank, supporttickets. En je wilt dat de AI daaruit antwoordt, met een bron erbij, ook als die documenten morgen veranderen.

🚫

RAG is overbodig

Het antwoord zit al in algemene kennis die het model toch al heeft, of je vraag heeft helemaal geen brondocument nodig. Dan voegt een ophaalstap alleen complexiteit toe.

Begin ook hier zo simpel mogelijk. Een goede chunking-strategie en een nette bronvermelding brengen je verder dan de nieuwste vectordatabase. Elke laag die je toevoegt, is er ook één die je moet bouwen, meten en bijhouden.

Conclusie: laat het model opzoeken in plaats van gokken

RAG wordt begrijpelijk zodra je het ziet als een open-boek-examen voor een AI. Je zoekt de relevante stukken uit jouw data op, geeft ze aan het model mee en laat het daaruit antwoorden. Het model wordt er niet slimmer van. Het krijgt op het juiste moment het juiste materiaal bij de hand.

🔎

Ophalen, aanvullen, genereren

Zoek de relevante brokken uit jouw bronnen, plak ze bij de vraag en laat het model daaruit antwoorden. Drie stappen, geen magie.

📚

Jouw data zonder hertraining

Het model blijft ongemoeid. Je werkt een document bij en het antwoord klopt meteen, met een bron die je kunt nakijken.

🎯

De winst zit in het ophalen

Knippen, bijwerken en meten maken het verschil tussen een leuke demo en een systeem waar je klanten op kunnen vertrouwen.

Begin klein, zorg dat het ophalen klopt en geef je AI een bron om uit te putten. Dan stopt hij met overtuigend gokken en begint hij met opzoeken.

Veelgestelde vragen

Wat is RAG?

RAG staat voor retrieval-augmented generation. Het is een techniek waarbij een AI-systeem bij een vraag eerst de relevante stukken uit jouw eigen bronnen ophaalt, die aan het taalmodel meegeeft en het antwoord daaruit laat genereren. Zo antwoordt een LLM op basis van jouw documenten en data, in plaats van alleen op de algemene kennis waarmee het is getraind. Het model wordt niet hertraind; het krijgt op het moment van de vraag het juiste materiaal mee.

Hoe werkt RAG technisch?

RAG werkt in drie stappen: retrieval, augmentation en generation. Vooraf worden je documenten in stukken geknipt, met een embedding-model omgezet naar getallenrijen die de betekenis vastleggen en opgeslagen in een vectordatabase. Bij een vraag wordt die vraag op dezelfde manier omgezet, zoekt het systeem de brokken die er qua betekenis het dichtst bij liggen (retrieval), plakt het die bij de vraag in de prompt (augmentation) en laat het taalmodel daaruit een antwoord schrijven (generation).

Wat is het verschil tussen RAG en fine-tunen?

RAG geeft een model kennis, fine-tunen verandert zijn gedrag. Met RAG haalt het model op het moment van de vraag de juiste feiten uit jouw bronnen op, dus actuele data is een kwestie van een document bijwerken. Fine-tunen past het model zelf aan zodat het een vaste toon, structuur of taak aanhoudt, maar bakt de kennis in op trainingsmoment en loopt achter zodra je data verandert. Voor 'de AI moet onze documenten kennen' is RAG bijna altijd het startpunt; fine-tunen leg je er hooguit later bovenop.

Waarom hallucineert een LLM minder met RAG?

Een LLM verzint een plausibel antwoord wanneer het iets niet zeker weet. RAG vermindert dat door de relevante bron bij de vraag mee te geven, zodat het model uit echte tekst put in plaats van uit zijn geheugen. Een goed RAG-systeem laat bovendien zien uit welk document een antwoord komt, zodat een mens het kan nakijken. De kwaliteit hangt wel volledig af van het ophalen: worden de verkeerde stukken opgehaald, dan schrijft het model alsnog een overtuigend fout antwoord.

Wat is het verschil tussen RAG en GraphRAG?

Klassieke RAG zoekt in een vectordatabase naar losse tekstfragmenten die op de vraag lijken en werkt goed wanneer het antwoord in één passage staat. GraphRAG haalt context op door door een knowledge graph te lopen en de relaties tussen feiten te volgen, wat nodig is wanneer het antwoord uit meerdere met elkaar verbonden gegevens bestaat. In de praktijk worden ze gecombineerd: vectorzoeken vindt snel een ingang, de graph breidt vandaar de verbanden uit.

Wanneer heb ik RAG nodig?

Je hebt RAG nodig zodra je wilt dat een AI antwoordt uit jouw eigen tekst: handleidingen, beleid, contracten, een kennisbank of supporttickets, met een bron erbij en ook als die documenten regelmatig veranderen. Heeft je vraag geen brondocument nodig, of zit het antwoord al in de algemene kennis van het model, dan voegt RAG alleen complexiteit toe. De vuistregel: begin zo simpel mogelijk en voeg RAG pas toe als het juiste antwoord echt in jouw documenten staat.

Een AI die jouw eigen documenten kent?

Wij bouwen de laag onder een betrouwbaar RAG-systeem: het knippen, de embeddings, de bronvermelding en de meting die het ophalen scherp houden terwijl jouw data verandert. Van eerste opzet tot beheer.

Laten we je project bespreken

Van AI-prototypes die productie-klaar moeten worden tot strategisch advies, code audits of doorlopende development support. We denken graag vrijblijvend met je mee over de beste aanpak.

010 Coding Collective gratis consult
gratis

Gratis consult

In anderhalf uur bespreken we je project, uitdagingen en doelen. Eerlijk advies van senior developers, geen verkooppraatje.

1,5 uur met senior developer(s)
Analyse van je huidige situatie
Schriftelijke samenvatting achteraf
Concrete next steps