RAG (Retrieval-Augmented Generation) is een techniek waarbij een LLM bij het antwoorden op een vraag/uitvoeren van een promptEen prompt is de instructie die je aan een AI-model geeft zoals bijvoorbeeld ChatGPT. Het is hoe je communiceert met het systeem: wat je vraagt, hoe je het vraagt en... Meer, informatie opzoekt in bronnen die je vooraf hebt gedefinieerd.
Daardoor hoef je niet alleen te vertrouwen op wat het model tijdens zijn training heeft geleerd, want het haalt eerst relevante stukken informatie op uit jouw documenten, databases of andere bronnen en gebruikt de informatie daaruit om een antwoord te genereren. Kortom, je zegt tegen de LLM: het antwoord vind je in deze specifieke dataset.
RAG werkt in twee fases:
Fase 1: voorbereiding (gebeurt vooraf):
Je documenten worden opgeknipt in kleinere stukken en omgezet naar een vorm waarin het systeem ze kan doorzoeken (cijfermatige reeksen: vectoren). Dit gebeurt één keer, voordat het systeem live gaat.
Fase 2: runtime (gebeurt bij elk verzoek):
- Het systeem zoekt welke stukken informatie relevant zijn voor de vraag
- De LLM krijgt die stukken mee en genereert een antwoord
Het grote voordeel van RAG is dat de informatie die een LLM gebruikt, binnen jouw eigen domeinbronnen blijft: jouw kennis, jouw regels, jouw inzichten. Je kunt je kennis (docs enz.) updaten zonder dat je het model zelf aan hoeft te passen. RAG scheidt daarnaast ook je domeinkennis (wat jij goed doet) van de taalmachine (wat de LLM goed doet): de kennis komt uit jouw bronnen, terwijl het genereren van het antwoord door het de LLM wordt gedaan. Die heeft namelijk kletstalent.
Waarom dit belangrijk is
RAG maakt LLM’s bruikbaar voor situaties waar informatie snel verandert of waarin informatie organisatie-specifiek is (bijvoorbeeld specifieke product- of procesinformatie). LLM’s weten normaliter alleen wat in hun trainingsdata zit. Ze kunnen niet opzoeken wat er sindsdien is veranderd of wat specifiek voor jouw organisatie geldt. Met RAG kan dat wel.
Het alternatief voor RAG is finetuning: het model opnieuw trainen op jouw specifieke informatie. Dat is duur, traag en moet elke keer opnieuw als informatie verandert. Fine-tuningFine-tuning is het verder trainen van een AI-model met eigen data, zodat het beter aansluit op een specifieke taak, schrijfstijl of domein. Een model vanaf nul trainen kost enorm veel... Meer is vooral geschikt om nieuw gedrag of een nieuwe taak aan te leren en RAG is juist bedoeld om actuele of organisatie-specifieke kennis te gebruiken zonder het model zelf aan te passen. RAG is ook nog eens veel flexibeler: update je documenten, en het systeem gebruikt direct de nieuwe informatie.
RAG is ook beter voor privacy en compliance. In plaats van dat je gevoelige informatie permanent in een model bakt (waar je het dan ook niet meer uit krijgt), blijft de informatie in jouw eigen systemen en dus onder jouw controle.
Voorbeeld
Een klantenservice-AI moet vragen beantwoorden over producten. Het basismodel kent algemene productinformatie, maar niet jouw specifieke productspecificaties, prijzen of voorraad. Met RAG werkt het zo:
Klant vraagt: “Is product X beschikbaar in maat L?”
- Het systeem zoekt in de productdatabase naar informatie over product X
- Het vindt: “Product X, maat L, op voorraad: 5 stuks, prijs €49,99”
- De LLM krijgt die informatie mee en genereert: “Ja, product X is beschikbaar in maat L. We hebben er momenteel 5 op voorraad voor €49,99.”
Zonder RAG zou het model moeten zeggen “Ik weet niet of we dat op voorraad hebben” of het zou iets verzinnen (hallucineren).
In dit voorbeeld zoekt het systeem in een productdatabase met vaste velden (prijs, voorraad). RAG wordt ook vaak gebruikt om te zoeken in gewone (ongestructureerde) teksten zoals handleidingen of beleidsdocumenten. In de praktijk combineren systemen beide: gestructureerde en ongestructureerde data.
Risico
Als het systeem de verkeerde documenten ophaalt, of relevante informatie mist, genereert de LLM een antwoord op basis van incomplete of incorrecte informatie. Dat kan soms erger zijn dan geen informatie, omdat het antwoord meestal wel overtuigend klinkt terwijl het fout is.
RAG valt of staat bij de voorbereiding: hoe knip je documenten op in stukken (chunking)? Te kleine stukken, dan mist context. Te grote stukken, dan krijgt het systeem irrelevante informatie mee. De keuzes die je maakt, bepalen wat het systeem überhaupt kan vinden en daarmee dus de kwaliteit van de antwoorden.
Daarnaast vertraagt RAG de responstijd (eerst zoeken, dan genereren) en het kost meer omdat je feitelijk twee systemen draait: een zoeksysteem en de LLM.
Je moet er ook voor zorgen dat je documenten goed onderhouden worden, want verouderde informatie in je database betekent verouderde antwoorden, ook al gebruik je RAG.
Als laatste is er ook een governance-risico, want als je RAG gebruikt voor interne documenten, moet je ervoor zorgen dat het systeem alleen documenten ophaalt waar de gebruiker toegang toe mag hebben.
Wat kun je doen?
- Gebruik RAG voor situaties waar informatie snel verandert of organisatie-specifiek is
- Zorg dat je documenten goed gestructureerd en actueel zijn. RAG is zo goed als je bronnen zijn.
- Test goed hoe je documenten opknipt: vind je de juiste informatie terug bij verschillende soorten vragen?
- Bouw checks in: laat het systeem aangeven welke bronnen het heeft gebruikt, zodat je kunt verifiëren
- Implementeer toegangscontroles voor je systemen: zorg dat RAG alleen documenten op kan halen waarvan de gebruiker toegang mag hebben tot de informatie
- Combineer RAG met slimme guardrailsGuardrails zijn beperkingen die je instelt in je prompt om te voorkomen dat een AI ongewenste, onjuiste of riskante output genereert. Guardrails werken als veiligheidsregels in je prompt. Ze vertellen... Meer die controleren of de opgehaalde informatie relevant genoeg is