Techniek
Hoe retrieval-augmented generation werkt, wat het verschil is met uploaden en fine-tuning, waarom het fouten vermindert en welke privacyvragen je stelt.
Met RAG, retrieval-augmented generation. Je documenten worden vooraf in passages geknipt en in een zoekindex gezet. Stelt iemand een vraag, dan zoekt het systeem de best passende passages op en geeft die samen met de vraag aan een taalmodel. Het model schrijft een antwoord op basis van die passages en noemt de bron.
Wie zoekt op RAG AI of op een AI-zoekmachine voor eigen documenten, komt bij dezelfde techniek uit. Waarom een dossier in een chatvenster plakken geen goede route is, staat op de hoofdpagina over AI-chatbots en de AVG.
Een taalmodel weet wat in zijn training zat en wat jij in het gesprek zet. Je eigen dossiers, contracten en notities horen daar niet bij. RAG lost dat op door het model per vraag de relevante tekst aan te reiken, in plaats van het model iets nieuws te leren.
De naam komt uit een onderzoeksartikel uit mei 2020 van Patrick Lewis en elf medeauteurs. Zij combineerden een taalmodel met een doorzoekbare index van Wikipedia. De kennis in het model zelf noemden ze parametrisch geheugen, de index ernaast niet-parametrisch geheugen. Ze noemden twee open problemen van taalmodellen: nagaan waar een antwoord vandaan komt, en de kennis in een model bijwerken. Hun modellen schreven volgens het artikel specifiekere en feitelijkere tekst dan een model zonder index.
Een gewone zoekmachine geeft je een lijst documenten en laat het lezen aan jou. Een AI-zoekmachine op basis van RAG doet twee dingen meer: ze zoekt op betekenis in plaats van op exacte woorden, en ze laat een taalmodel de gevonden passages samenvatten tot een antwoord. De zoekmachine doet het vinden, het taalmodel het formuleren.
Het model beslist dus niet wat er in je documenten staat. Het krijgt een handvol passages en de opdracht daar een antwoord op te baseren.
Er zijn twee fasen: vooraf indexeren, en per vraag zoeken en antwoorden.
Zoeken op betekenis werkt met embeddings. Een embeddingmodel zet een stuk tekst om in een reeks getallen die de betekenis vastlegt. Passages over hetzelfde onderwerp krijgen getallen die dicht bij elkaar liggen, ook als ze andere woorden gebruiken. De vraag "wanneer kan de huurder opzeggen" vindt zo een passage over "beëindiging van de overeenkomst door de gebruiker van het pand".
Dat heet semantisch zoeken. Het is sterk bij omschrijvingen en zwak bij exacte kenmerken, zoals een dossiernummer of een artikelcode. Daarom combineren veel systemen het met zoeken op letterlijke woorden. Anthropic beschrijft die combinatie en een extra stap erna: een eerste, ruime selectie wordt opnieuw gerangschikt, en alleen de beste passages gaan naar het model.
Het model krijgt geen toegang tot de index. Het krijgt tekst: de vraag, een instructie en de gevonden passages. Omdat elke passage haar vindplaats draagt, kan het antwoord verwijzen naar document en pagina.
Door die verwijzing kun je een antwoord nalopen: je opent de bron en leest wat er staat.
Het zoeksysteem kan onderdeel zijn van dezelfde toepassing als het model, of een aparte dienst waar een AI-assistent verbinding mee maakt. In dat tweede geval gaat het vaak via het Model Context Protocol. Hoe zo'n koppeling werkt en hoe een assistent zich aanmeldt, lees je in Wat is een MCP-server?.
Het zijn drie manieren om een model met je eigen informatie te laten werken. Ze verschillen in wat het model ziet, wat het onderhoud kost en wat er met persoonsgegevens gebeurt.
Je zet een document in het gesprek en stelt er een vraag over. Dat is snel en vraagt geen inrichting. Het hele bestand gaat naar de aanbieder, ook de pagina's waar je niets over vroeg. Het werkt voor een paar documenten, niet voor een archief. De risico's staan in Documenten uploaden in een AI-chatbot.
Heb je maar weinig tekst, dan is uploaden technisch soms de eenvoudigste oplossing. Anthropic schrijft dat een kennisbank die klein genoeg is, in haar geheel aan het model kan worden meegegeven, en dat RAG pas nodig wordt als de hoeveelheid groeit. Dat is een technisch argument. Het zegt niets over de vraag of die tekst naar de aanbieder mag.
Bij fine-tuning train je een bestaand model verder op eigen voorbeelden. OpenAI maakt in zijn handleiding over nauwkeurigheid een helder onderscheid. RAG geeft het model toegang tot kennis die het mist. Fine-tuning verandert hoe het model zich gedraagt: de vorm, de toon, de manier van redeneren. Mist het model informatie, dan helpt fine-tuning niet. De twee sluiten elkaar volgens OpenAI niet uit.
Voor wie een model wil laten antwoorden uit dossiers, is fine-tuning dus meestal het verkeerde gereedschap. Er komt een privacybezwaar bij. Wat in een model is getraind, haal je er niet eenvoudig uit. De Europese toezichthouders schreven in december 2024 in hun advies over AI-modellen dat per geval moet worden beoordeeld of een model dat met persoonsgegevens is getraind, als anoniem geldt. Dat is alleen zo als het zeer onwaarschijnlijk is dat personen te herleiden zijn of dat hun gegevens met vragen uit het model te halen zijn.
| Aanpak | Wat het model ziet | Onderhoud | Privacy |
|---|---|---|---|
| Bestand uploaden | Het hele bestand, per gesprek | Geen inrichting; elke keer opnieuw uploaden | Alles in het bestand gaat naar de aanbieder; geen rechten per persoon; geen controle vooraf |
| Fine-tuning | Niets per vraag: de voorbeelden zijn verwerkt in het model | Opnieuw trainen bij elke wijziging; kennis veroudert | Gegevens zitten in het model en zijn moeilijk te verwijderen of te corrigeren |
| RAG | Alleen de passages die bij de vraag zijn gevonden | Index bijwerken als documenten veranderen; het model blijft gelijk | Hangt af van de inrichting: wat in de index staat, wie mag zoeken en welke passages naar welke aanbieder gaan |
De laatste cel is de eerlijke: RAG kan zuinig zijn met gegevens, maar is dat niet vanzelf.
Een taalmodel zonder bron vult aan wat waarschijnlijk klinkt. Krijgt het de passage waarin het antwoord staat, dan hoeft het niet te gokken. Dat verklaart waarom RAG verzonnen antwoorden vermindert. Uitsluiten doet het niet, om drie redenen.
Vindt het systeem de verkeerde passages, dan antwoordt het model op basis van de verkeerde tekst. OpenAI noemt in dezelfde handleiding nog een variant: te veel passages die er weinig toe doen, overstemmen de ene die het antwoord bevat.
Ook met de juiste passage kan het model er iets anders van maken. OpenAI zegt het zo: het model kan de juiste context krijgen en er het verkeerde mee doen. Een opzegtermijn van drie maanden wordt dan drie weken, of een uitzondering uit de volgende alinea verdwijnt.
RAG haalt op wat er staat. Staat er een verouderde versie van een contract in de index, dan is het antwoord verouderd. De kwaliteit van het antwoord is nooit beter dan de kwaliteit van de map.
Drie vragen, in de volgorde waarin de gegevens stromen: wat staat er in de index, wie mag wat vinden, en wat gaat er naar het model.
Een zoekindex is een kopie van je documenten in stukken. Staan er persoonsgegevens in de documenten, dan staan ze ook in de passages. Ook de embeddings zijn uit die tekst afgeleid. Vraag daarom aan een leverancier:
Een index die alles doorzoekbaar maakt voor iedereen, maakt ook zichtbaar wat verkeerd was gedeeld. Een stuk dat diep in een map stond en dat niemand ooit vond, komt nu boven bij de eerste passende vraag. Goede RAG controleert bij elke zoekvraag wat de vrager mag zien, en filtert de resultaten daarop. Controleert het systeem alleen bij het indexeren, dan loopt het achter zodra iemand van afdeling wisselt. Hoe dat uitpakt bij een assistent die een hele omgeving doorzoekt, staat in Microsoft 365 Copilot en de AVG.
De gevonden passages worden onderdeel van het gesprek. Draait het taalmodel bij een andere partij dan de index, dan gaan die passages daarheen, met alles wat erin staat, en vallen ze onder het bewaarbeleid van die partij. De eigen vraag van de gebruiker gaat er ook heen.
Dat is het punt waar dataminimalisatie concreet wordt. Artikel 5 lid 1 onder c van de AVG vraagt dat gegevens beperkt blijven tot wat noodzakelijk is. Bij RAG vertaalt dat zich in drie knoppen: hoeveel passages gaan er per vraag mee, hoe lang zijn ze, en staan er nog namen in. Welke aanbieder welke afspraken biedt, lees je in Welk abonnement voor zakelijk gebruik?.
Een RAG-toepassing op dossiers is een verwerking en hoort in je register, met de partijen die de index, de embeddings en het taalmodel leveren. Of een DPIA nodig is, hangt af van wat er in de documenten staat en op welke schaal. Een opzet staat in DPIA voor AI-tools.
Een korte lijst om naast een aanbod te leggen.
PrivaSearch is een zoeksysteem volgens dit patroon, met één stap ervoor: voordat een document doorzoekbaar wordt, worden persoonsgegevens herkend en vervangen door pseudoniemen, en keurt een collega het resultaat goed. Dezelfde naam krijgt binnen een project steeds hetzelfde pseudoniem, zodat een passage leesbaar blijft. Tot de goedkeuring is een document niet doorzoekbaar. De stappen staan op Hoe PrivaSearch werkt.
In de index staat dus gecontroleerde, gepseudonimiseerde tekst. Het semantisch zoeken gebruikt een Europese AI-aanbieder, met een verwerkersovereenkomst, en alleen op die tekst. Het herkennen van persoonsgegevens gebeurt binnen PrivaSearch zelf, zonder externe AI-aanbieder. Er is één uitzondering, en die staat op Hosting in de EU: een scan zonder tekstlaag gaat als bestand naar dezelfde Europese aanbieder om te worden uitgelezen, waarna dezelfde pseudonimisering en controle volgen. Originelen, zoekindex en herkenning draaien in datacenters in de EU. Welke partij bij welke schakel hoort, staat in het subverwerkersoverzicht.
Zoeken gaat per project en levert passages met een bronverwijzing op, alleen voor wie toegang heeft. Bij een gekoppelde SharePoint-bibliotheek wordt bij elk verzoek live gecontroleerd of de gebruiker het document daar nog mag zien. Typt iemand een naam in het zoekveld van PrivaSearch, dan wordt die vervangen voordat de vraag het model bereikt. Per project geldt een einddatum. Daarna worden kopieën, fragmenten en pseudoniemen opgeruimd, tenzij een juridische bewaarplicht geldt.
Wil je een assistent een antwoord laten schrijven, dan koppel je Claude, ChatGPT Business of Mistral Vibe (voorheen Le Chat). De assistent krijgt per zoekvraag hooguit acht passages uit dezelfde vrijgegeven tekst, nooit een bestand. Wat teruggaat, wordt onderdeel van het gesprek en komt bij de aanbieder van die assistent terecht. Daarom is het gepseudonimiseerd en begrensd. Gepseudonimiseerde gegevens blijven voor jouw organisatie persoonsgegevens: het is geen anonimiseren. Het verschil staat in Pseudonimiseren of anonimiseren.
Wil je zien hoe een vraag met bronverwijzing eruitziet op eigen, fictieve documenten? Vraag een demo aan.
RAG staat voor retrieval-augmented generation. Een systeem zoekt eerst de best passende passages in een eigen verzameling documenten en geeft die samen met de vraag aan een taalmodel. Het model schrijft een antwoord op basis van die passages, vaak met een verwijzing naar de bron. Het model leert daarbij niets bij: de documenten staan in een zoekindex naast het model.
RAG geeft een model per vraag de informatie die het mist, uit een index die je los van het model bijwerkt. Fine-tuning traint het model zelf verder op voorbeelden en verandert vooral hoe het zich gedraagt: vorm, toon en werkwijze. Wil je antwoorden uit eigen dossiers, dan is RAG meestal de passende aanpak. Gegevens die in een model zijn getraind, zijn bovendien moeilijk te verwijderen.
Dat hangt af van de inrichting, niet van de techniek. Stel drie vragen: wat staat er in de index, wie mag wat vinden, en welke passages gaan naar welke aanbieder. Een systeem dat rechten per zoekvraag controleert, weinig tekst per antwoord meegeeft en persoonsgegevens vooraf vervangt, verwerkt veel minder dan een systeem dat alles voor iedereen doorzoekbaar maakt.
Ja. RAG vermindert verzonnen antwoorden, omdat het model de tekst krijgt waarin het antwoord staat. Maar het zoeken kan de verkeerde passages opleveren, het model kan een juiste passage verkeerd weergeven, en de bron zelf kan verouderd zijn. Daarom hoort bij elk antwoord een bronverwijzing die je opent voordat je op het antwoord vertrouwt.
Een embedding is een reeks getallen die de betekenis van een stuk tekst vastlegt. Een embeddingmodel maakt er een voor elke passage en voor elke zoekvraag. Teksten met een vergelijkbare betekenis krijgen getallen die dicht bij elkaar liggen. Zo vindt een zoeksysteem passages die over hetzelfde gaan, ook als ze andere woorden gebruiken. Embeddings zijn afgeleid van de tekst en horen dus bij dezelfde bewaartermijn.
Niet de documenten als geheel. Wel de passages die bij een vraag zijn gevonden: die worden onderdeel van het gesprek en vallen onder het bewaarbeleid van de aanbieder van het model. Ook de vraag van de gebruiker gaat daarheen. Hoeveel er meegaat, hangt af van het aantal passages, hun lengte en of er nog persoonsgegevens in staan. Vraag je leverancier naar alle drie.
Wat het Model Context Protocol is, hoe een koppeling verschilt van een bestand uploaden, wat een assistent dan krijgt en op welke risico's je let.
Wat een taalmodel doet, wat tokens en een contextvenster zijn, waarom een model dingen verzint en wat het wel en niet onthoudt van je invoer.
Wat een AI-detector meet, waarom de uitslag een kans is en geen bewijs, en wat je regelt voordat je er een leerling of medewerker op aanspreekt.
We laten het zien met fictieve dossiers uit jouw branche: upload, herkenning, review, zoeken en de koppeling met je AI-assistent. Daarna weet je precies wat je team veilig kan gebruiken.
Plan een demo →