RAG (Retrieval-Augmented Generation): definitie en werking

RAG (Retrieval-Augmented Generation, generatie versterkt door zoeken) laat een taalmodel eerst in een documentbasis zoeken voordat het zijn antwoord genereert.

Geschreven door de Atako-agents · Nagelezen en goedgekeurd door Romain Laodicina · CTO bij Atako

Korte definitie

RAG (Retrieval-Augmented Generation) is een methode die een documentzoekmachine combineert met een taalmodel: voordat het antwoordt, zoekt het model relevante passages in een externe bron, en genereert het vervolgens zijn antwoord op basis daarvan. Dit beperkt verzinsels en maakt het mogelijk recente of interne bedrijfsinformatie te gebruiken.

RAG is een van de technische bouwstenen die de huidige autonome AI-agents voeden, naast tool-aanroepen en persistent geheugen. De afkorting komt uit een onderzoeksartikel gepubliceerd in mei 2020 door een team van Facebook AI Research (nu Meta), met Patrick Lewis voorop. Destijds was de vaststelling eenvoudig: grote taalmodellen slaan een indrukwekkende hoeveelheid kennis op in hun parameters, maar kunnen die niet eenvoudig bijwerken, noch precies naar een bron verwijzen. RAG stelt een oplossing voor: het model op het moment van antwoorden informatie laten opzoeken in een externe bron, in plaats van alles te laten steunen op zijn bij de training vastgelegde geheugen.

Definitie in detail

Retrieval-Augmented Generation, of generatie versterkt door zoeken, verwijst naar een architectuur die twee afzonderlijke bouwstenen combineert: een zoekmechanisme (retrieval) dat relevante passages opzoekt in een externe documentbasis, en een tekstgeneratiemodel dat het uiteindelijke antwoord opstelt op basis van die passages. In het grondleggende artikel van Lewis en zijn co-auteurs (NeurIPS 2020) combineert RAG een parametrisch geheugen (de interne kennis van het voorgetrainde model) en een niet-parametrisch geheugen (een documentbasis die tijdens het proces wordt geraadpleegd), om de prestaties te verbeteren op taken die precieze kennis vereisen.

De consensus rond deze definitie is breed: of het nu gaat om academische literatuur of om uitleg voor een breed publiek zoals die van NVIDIA, RAG komt altijd neer op datzelfde mechanisme in twee stappen, eerst zoeken, dan genereren. De verschillen betreffen vooral de technische uitvoering (type vectordatabase, methode om documenten op te delen, aantal opgehaalde passages), niet de definitie van het principe zelf.

RAG pakt twee bekende beperkingen van taalmodellen aan: hallucinaties, wanneer het model een plausibel maar onjuist antwoord verzint, en veroudering, wanneer informatie is veranderd sinds de trainingsdatum van het model. Door de generatie te verankeren op echte, actuele documenten vermindert RAG beide problemen zonder het model opnieuw te hoeven trainen.

Hoe het werkt

Het typische verloop van een RAG-aanvraag volgt drie stappen. Eerst wordt de vraag van de gebruiker (of de behoefte van een agent) omgezet in een zoekopdracht in een documentbasis, vaak via een gelijkenis-zoekopdracht op vectoriële tekstrepresentaties, soms gecombineerd met een klassieke trefwoordzoekopdracht. Vervolgens worden de meest relevante passages die deze zoekopdracht oplevert, samen met de oorspronkelijke vraag in de context ingevoegd die naar het taalmodel wordt gestuurd. Ten slotte genereert het model zijn antwoord op basis van deze passages, idealiter door ernaar te verwijzen of zich erop af te stemmen in plaats van te improviseren.

Deze mechaniek leent zich goed voor gebruik door een autonome AI-agent: de documentzoekopdracht kan worden aangeboden als een tool die de agent zelf aanroept, op het moment dat hij oordeelt dat hij die nodig heeft, in plaats van systematisch vóór elk antwoord te worden geactiveerd. Dat is het verschil tussen een "statische" RAG, vooraf op elke aanvraag aangesloten, en een "agentische" RAG, waarbij het model beslist wanneer te zoeken, wat te zoeken, en of het opnieuw moet zoeken als het eerste resultaat niet volstaat.

Concreet voorbeeld met Atako

De publieke documentatie van Atako geeft geen details over de interne documentzoekarchitectuur die door zijn agents wordt gebruikt, dus kan hier niet worden gesteld dat Atako RAG gebruikt in de strikte zin van het artikel van Lewis et al. Wat wel gedocumenteerd is, is het meest verwante mechanisme: elke agent beschikt over een door het bedrijf gedeelde bestandsbibliotheek, georganiseerd in mappen, met voorvertoonbare formaten (Markdown, CSV, JSON, PDF, HTML, afbeeldingen, tekst, broncode). Deze bestanden kunnen met een agent worden gedeeld in leesmodus, of rechtstreeks worden toegevoegd aan een map die aan de agent is toegewezen, door een mens of door de agent zelf.

Deze bestandsbibliotheek, gecombineerd met het persistente geheugen van een agent dat herstarts en pauzes overleeft, speelt de rol van externe kennisbasis die de agent kan raadplegen voordat hij antwoordt of handelt, wat in essentie overeenkomt met het principe van RAG: echte informatie opzoeken in plaats van uitsluitend te steunen op wat het model tijdens de training heeft onthouden. Een agent die is geconfigureerd voor klantenservice, kan bijvoorbeeld productdocumentatiebestanden raadplegen die in zijn map zijn gedeeld voordat hij op een ticket antwoordt, in plaats van het antwoord te gokken.

Veelgemaakte fouten

Eerste veelvoorkomende verwarring: denken dat RAG een functie is die u met één klik activeert, zoals een knop in software. In werkelijkheid is het een architectuur, met concrete technische keuzes (hoe documenten op te delen, hoe ze te indexeren, hoeveel passages op te halen) die rechtstreeks de kwaliteit van de antwoorden bepalen.

Tweede fout: denken dat RAG hallucinaties volledig elimineert. Het vermindert ze door de generatie op controleerbare documenten te verankeren, maar een model kan nog steeds een passage verkeerd interpreteren, of een antwoord genereren op basis van irrelevante documenten die door een gebrekkige zoekopdracht zijn opgehaald. RAG verschuift het risico, het neemt het niet weg.

Derde fout: RAG en fine-tuning door elkaar halen. Fine-tuning wijzigt het model duurzaam door het opnieuw te trainen op specifieke data; RAG laat het model ongewijzigd en voegt er een externe basis aan toe die bij elke aanvraag wordt geraadpleegd, wat sneller bij te werken en doorgaans goedkoper is.

Ten slotte is het onderschatten van het belang van de kwaliteit van de documentbasis een klassieke fout. Een RAG-systeem dat is aangesloten op verouderde, slecht gestructureerde of onvolledige documenten, levert antwoorden van slechte kwaliteit op, ongeacht hoe krachtig het onderliggende generatiemodel is.

Verwante termen

Veelgestelde vragen

RAG, wat betekent dat in kunstmatige intelligentie?

RAG staat voor Retrieval-Augmented Generation, generatie versterkt door zoeken. Het is een methode die het taalmodel eerst relevante documenten laat opzoeken voordat het zijn antwoord opstelt, in plaats van uitsluitend te antwoorden op basis van wat het tijdens de training heeft geleerd.

Waarom RAG gebruiken in plaats van alleen een model?

Een model op zichzelf antwoordt met wat het tijdens de training heeft onthouden, wat achterhaald of onvolledig kan zijn voor onderwerpen die specifiek zijn voor een bedrijf. RAG voegt een zoekstap toe in een actuele bron, wat verzonnen antwoorden vermindert en het mogelijk maakt precieze, controleerbare bronnen te citeren.

Elimineert RAG hallucinaties van een AI-model volledig?

Nee, het vermindert ze zonder ze volledig weg te nemen. Als de documentzoekopdracht irrelevante passages oplevert of als het model ze verkeerd interpreteert, blijft een onjuist antwoord mogelijk. RAG verbetert de betrouwbaarheid door het antwoord op bronnen te verankeren, maar het is geen absolute garantie.

Wat is het verschil tussen RAG en het fine-tunen van een model?

Fine-tuning wijzigt de interne parameters van het model door het opnieuw te trainen op specifieke data, wat duur is en de kennis bevriest op het moment van training. RAG laat het model ongewijzigd en voegt er een externe documentbasis aan toe die bij elke aanvraag wordt geraadpleegd, en die op elk moment kan worden bijgewerkt zonder het model aan te passen.

Wat hierna te lezen

Bronnen

Romain Laodicina

CTO bij Atako

Deze inhoud is geschreven door de AI-agents van Atako en vervolgens nagelezen, gecorrigeerd en goedgekeurd door Romain Laodicina, CTO van Atako.

Implementeer uw eerste AI-agenten

Maak gratis een account aan en lanceer een agent in enkele minuten, zonder code.

Blijf voorop lopen op het gebied van AI.

Ontvang productnieuws, nieuwe agenten en onze AI-analyses rechtstreeks in uw mailbox. Geen spam, u kunt zich op elk moment uitschrijven.