Hoe werkt Retrieval Augmented Generation?

Wat als je de kracht van grote taalmodellen zou kunnen combineren met kennis uit je eigen organisatie? Dat kan, dankzij Retrieval Augmented Generation (RAG). Maar hoe werkt RAG onder de motorkap? Hoe kun je zelf aan de slag met het ontwikkelen van een RAG? En zijn er al praktijkvoorbeelden waar je van kunt leren? In deze podcast gaat Jerrel Arkes in gesprek met Chief AI Architect Willem Meints en Area lead Data & AI Niels Naglé.

In dit artikel belichten we een van de onderwerpen die zijn besproken: hoe werkt een RAG-systeem eigenlijk? En op wat voor manier werken de verschillende onderdelen van RAG samen om nauwkeurige en relevante output te genereren?

Retrieval Augmented Generation is de logische volgende stap na GPT, zo legt Willem uit in de podcast: “Een groot taalmodel kun je zien als een soort motorblok, dat een computer in staat stelt om menselijke taal te interpreteren en weer terug te praten. Zie het als een soort input-output interface; het systeem interpreteert wat je zegt en genereert een antwoord. Het heeft nog geen specifieke kennis van jou en je bedrijf. Met een RAG-systeem zet je de volgende stap, door het systeem te voeden met kennis waaraan het kan refereren, zodat het antwoord kan geven op specifieke vragen.”

De bouwstenen van een RAG-systeem

Een RAG-systeem bestaat uit drie hoofdcomponenten die nauw samenwerken.

Het groot taalmodel, zoals GPT, vormt de basis van het RAG-systeem. Dit model is getraind op enorme hoeveelheden tekst en kan antwoorden geven op vragen of prompts.

De vector database/zoekmachine (het ‘retrieval’ in de afkorting RAG) is verantwoordelijk voor het vinden van relevante informatie in relatie tot je prompt. Wanneer een gebruiker een vraag stelt of een prompt geeft, doorzoekt deze component de (vector) database op zoek naar de meest relevante informatie. Een RAG-systeem kan worden gevoed met interne documenten en data. Dit maakt het mogelijk om geautomatiseerd antwoord te geven op veelvoorkomende vragen die specifiek zijn voor je organisatie, zoals vragen over producten, processen, contracten of beleid.

Wanneer een gebruiker een vraag of prompt invoert in het RAG-systeem, komt er een zorgvuldig ontworpen proces op gang om de meest relevante informatie op te halen en te gebruiken bij het genereren van een antwoord.

Het retrieval-component van het RAG-systeem gaat aan de slag met de invoer van de gebruiker en doorzoekt de vector database op zoek naar informatie die het meest relevant is voor de gestelde vraag. Hierbij wordt gebruik gemaakt van geavanceerde algoritmen die de semantische gelijkenis tussen de vraag en de opgeslagen informatie bepalen. De meest relevante stukken informatie worden vervolgens doorgegeven aan het generatieve taalmodel.

Zodra het generatieve taalmodel de informatie heeft ontvangen van de retrieval-component, gaat het aan de slag met het genereren van een antwoord op de vraag of prompt. Om het antwoord te kunnen geven geeft het RAG systeem de gevonden passages door in de prompt naar het taal model. Zoals Willem het omschrijft: “GPT is een soort papegaai, het citeert uit de tekst  van de documenten die je erin hebt gestopt.”

Feedback ophalen en evalueren

Om optimaal gebruik te maken van een RAG-systeem, is het essentieel om prestaties voortdurend te monitoren en feedback van gebruikers te verzamelen. Willem: “Door regelmatig te evalueren hoe het systeem presteert en welke verbeterpunten er zijn, kan het RAG-systeem steeds verder worden geoptimaliseerd en afgestemd op de veranderende behoeften van de organisatie.

Tenslotte is het vooral belangrijk om vooraf goed na te denken over de use cases waarvoor je een RAG-systeem wil inzetten. “Er komt echt wel wat bij kijken om je eigen RAG-systeem te ontwikkelen. Stel jezelf altijd de vraag: welke business case kunnen we hiervoor maken?”, aldus Niels. “Als die er niet is, waarom zou je dan gebruik maken van AI?”

“Als helpdeskmedewerkers elke dag tien keer dezelfde vraag beantwoorden, dan is het zinvol om na te denken over het inzetten van AI”, vult Willem aan. “Maar de allereerste en allerbelangrijkste vraag is: wat willen we hier eigenlijk precies mee bereiken? Pas als je weet wat de use case is, kun je specifieke instructies geven, en relevante documenten toevoegen aan het systeem.”

Kijk en luister de podcast