Wat is Retrieval-Augmented Generation (RAG)?

Alan Zeichick | Tech Content Strategist | 19 september 2023

De kracht van generatieve kunstmatige intelligentie (AI) zit hem in het creëren van tekstresponsen op basis van omvangrijke taalmodellen (large language models, LLM's) waarbij de AI wordt getraind aan de hand van een groot aantal gegevenspunten. De gegenereerde tekst is meestal gemakkelijk te lezen en biedt gedetailleerde antwoorden die in grote lijnen van toepassing zijn op de vragen (prompts) die door de software worden gesteld.

De informatie die wordt gebruikt om de respons te genereren, is echter beperkt tot de informatie die wordt gebruikt om de AI te trainen, vaak een gegeneraliseerd LLM. De gegevens van het LLM kunnen weken, maanden of zelfs jaren oud zijn en omvatten in een zakelijke AI-chatbot mogelijk geen specifieke informatie over de producten of diensten van de organisatie. Dat kan leiden tot onjuiste responsen die het vertrouwen in de technologie bij klanten en werknemers wegnemen.

Wat is Retrieval-Augmented Generation (RAG)?

Dat is waar retrieval-augmented generation (RAG) van pas komt. Met RAG kan de output van een LLM worden geoptimaliseerd met gerichte informatie zonder dat het onderliggende model zelf wordt gewijzigd. Die gerichte informatie kan meer up-to-date zijn dan het LLM en specifiek zijn voor een bepaalde organisatie of bedrijfstak. Dit betekent dat het generatieve AI-systeem contextueel beter passende antwoorden kan geven op prompts en dat deze antwoorden kunnen worden gebaseerd op extreem actuele gegevens.

RAG kwam voor het eerst onder de aandacht van ontwikkelaars van generatieve AI na de publicatie van de paper "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" uit 2020 die werd gepubliceerd door Patrick Lewis en een team bij Facebook AI Research. Het RAG-concept is overgenomen door vele academische en industriële onderzoekers, die dit zien als een manier om de waarde van generatieve AI-systemen aanzienlijk te verbeteren.

Retrieval-augmented generation: uitleg

Stel dat de organisatoren van een sportcompetitie willen dat fans en de media via een chatprogramma toegang kunnen krijgen tot de gegevens en vragen kunnen stellen over spelers, teams, de geschiedenis en regels van de sport en de actuele statistieken en standen. Met een gegeneraliseerd LLM kunnen vragen over de geschiedenis en regels worden beantwoord en misschien ook het stadion van een bepaald team worden beschreven. Maar de wedstrijd van gisteravond bespreken of actuele informatie verstrekken over het letsel van een bepaalde speler is niet mogelijk, omdat het LLM die informatie niet heeft. En omdat er aanzienlijk wat rekenkracht nodig is om een LLM opnieuw te trainen, is het niet haalbaar om het model actueel te houden.

Vanuit de sportcompetitie kan niet alleen toegang worden verkregen tot het grote, vrij statische LLM, maar ook tot vele andere informatiebronnen, waaronder databases, datawarehouses, documenten met spelersbiografieën en nieuwsfeeds waarin elke wedstrijd uitgebreid wordt besproken. Met RAG kan deze informatie worden opgenomen in de generatieve AI. De chat kan nu informatie bieden die actueler, contextueel passender en nauwkeuriger is.

Eenvoudig gezegd: dankzij RAG kunnen LLM's betere antwoorden geven.

Voornaamste conclusies

  • RAG is een relatief nieuwe kunstmatige-intelligentietechniek waarmee de kwaliteit van generatieve AI kan worden verbeterd door het large language model (LLM) aanvullende gegevensbronnen te laten raadplegen zonder dat het opnieuw moet worden getraind.
  • Met RAG-modellen worden kennisrepository's gebouwd op basis van de eigen gegevens van de organisatie. Deze repository's kunnen voortdurend worden bijgewerkt, zodat de generatieve AI actuele, contextuele antwoorden kan bieden.
  • Chatbots en andere gesprekssystemen die gebruikmaken van natuurlijke taalverwerking, kunnen sterk profiteren van RAG en generatieve AI.
  • Voor het implementeren van RAG zijn technologieën nodig zoals vectordatabases, waarmee nieuwe gegevens snel kunnen worden gecodeerd, en zoekopdrachten waarmee die gegevens in het LLM kunnen worden ingevoerd.

Hoe werkt retrieval-augmented generation?

Denk eens aan alle informatie waarover een organisatie kan beschikken: gestructureerde databases, ongestructureerde pdf's en andere documenten, blogs, nieuwsfeeds, chattranscripties van eerdere klantenservicesessies. In RAG wordt deze enorme hoeveelheid dynamische gegevens vertaald naar een gemeenschappelijke indeling en opgeslagen in een kennisbibliotheek die toegankelijk is voor het generatieve AI-systeem.

De gegevens in die kennisbibliotheek worden vervolgens verwerkt tot numerieke representaties met behulp van een speciaal type algoritme dat een ingesloten taalmodel wordt genoemd, en opgeslagen in een vectordatabase die snel kan worden doorzocht en kan worden gebruikt om de juiste contextuele informatie op te halen.

RAG en large language models (LLM's)

Stel nu dat een eindgebruiker het generatieve AI-systeem een specifieke prompt stuurt, bijvoorbeeld: “Waar wordt de wedstrijd van vanavond gespeeld, welke spelers zijn opgesteld en wat zeggen verslaggevers over de ontmoeting tussen beide teams?” De query wordt omgezet in een vector en gebruikt om een zoekopdracht los te laten op de vectordatabase, waarmee informatie wordt opgehaald die relevant is voor de context van die vraag. Die contextuele informatie plus de oorspronkelijke prompt worden vervolgens ingevoerd in het LLM, dat een tekstrespons genereert op basis van zowel de enigszins verouderde algemene kennis als de extreem actuele contextuele informatie.

Hoewel het trainen van het algemene LLM tijdrovend en duur is, geldt voor het bijwerken van het RAG-model precies het tegenovergestelde. Nieuwe gegevens kunnen in het ingesloten taalmodel worden geladen en op continue, stapsgewijze basis worden omgezet in vectoren. De antwoorden van het gehele generatieve AI-systeem kunnen zelfs worden teruggevoerd naar het RAG-model, waardoor de prestaties en nauwkeurigheid worden verbeterd, omdat dit weet hoe een vergelijkbare vraag eerder al werd beantwoord.

Een bijkomend voordeel van RAG is dat de generatieve AI dankzij het gebruik van de vectordatabase de specifieke bron kan geven van de gegevens die in het antwoord worden genoemd, iets wat een LLM niet kan doen. Dus als er een onnauwkeurigheid is in de uitvoer van de generatieve AI, kan snel worden bepaald welk document de foutieve informatie bevat. Dit document kan vervolgens worden gecorrigeerd en de gecorrigeerde informatie kan in de vectordatabase worden ingevoerd.

Kortom, RAG voegt actualiteit, context en nauwkeurigheid toe aan generatieve AI, die verdergaan dan wat het LLM zelf kan bieden.

Retrieval-augmented generation versus semantisch zoeken

RAG is niet de enige techniek die wordt gebruikt om de nauwkeurigheid van generatieve AI op basis van LLM te verbeteren. Een andere techniek is semantisch zoeken, waarmee het AI-systeem de betekenis van een query kan achterhalen door diepgaand inzicht te verkrijgen in de specifieke woorden en zinnen in de prompt.

Een traditionele zoekopdracht is gericht op trefwoorden. Bij een eenvoudige query over een inheemse boomsoort in Frankrijk, kan de database van het AI-systeem bijvoorbeeld worden doorzocht aan de hand van de trefwoorden "bomen" en "Frankrijk" en kunnen resultaten worden opgehaald die beide trefwoorden bevatten. Maar het systeem begrijpt misschien niet echt de betekenis van bomen in Frankrijk en kan daarom te veel informatie, te weinig informatie of zelfs de verkeerde informatie ophalen. Bij die zoekopdracht op basis van trefwoorden kan ook informatie worden gemist, omdat de zoekopdracht te letterlijk is: de bomen in Normandië kunnen worden gemist, ook al bevinden deze zich in Frankrijk, omdat dat niet als trefwoord werd opgegeven.

Semantisch zoeken gaat verder dan zoeken op trefwoorden door de betekenis van vragen en brondocumenten te bepalen en die betekenis te gebruiken om nauwkeurigere resultaten op te halen. Semantisch zoeken vormt een integraal onderdeel van RAG.

RAG gebruiken in chatapplicaties

Wanneer een persoon een direct antwoord wil krijgen op een vraag, geeft een chatbot wellicht het meest directe en bruikbare antwoord. De meeste bots worden getraind op een eindig aantal intents, dat wil zeggen de gewenste taken of resultaten van de klant, en reageren op die intents. RAG biedt de mogelijkheid om de huidige bots nog beter te maken, omdat het AI-systeem hiermee antwoord kan geven in een natuurlijke taal op vragen die niet in de lijst met intents staan.

Vanwege het paradigma 'een vraag stellen, een antwoord krijgen' zijn chatbots om vele redenen een perfect gebruiksscenario voor generatieve AI. Vaak is er specifieke context nodig om een nauwkeurig antwoord te kunnen geven op een vraag, en omdat de verwachtingen van chatbotgebruikers met betrekking tot relevantie en nauwkeurigheid vaak hoog zijn, is het duidelijk dat hier RAG-technieken kunnen worden toegepast. Voor veel organisaties kunnen chatbots inderdaad het startpunt zijn voor het gebruik van RAG en generatieve AI.

Om nauwkeurig antwoord te kunnen geven op een vraag, is vaak specifieke context nodig. Vragen van klanten over een nieuw gelanceerd product zijn bijvoorbeeld niet zinvol als de gegevens betrekking hebben op het vorige model en daardoor in feite misleidend kunnen zijn. En een wandelaar die wil weten of een park deze zondag open is, verwacht nauwkeurige, actuele informatie over dat specifieke park op die specifieke datum.

De voordelen van retrieval-augmented generation

RAG-technieken kunnen worden gebruikt om de kwaliteit van de responsen van een generatief AI-systeem op prompts te verbeteren ten opzichte van wat met alleen een LLM kan worden bereikt. Retrieval-augmented generation biedt onder meer de volgende voordelen:

  • Met RAG wordt toegang verkregen tot informatie die nieuwer kan zijn dan de gegevens die worden gebruikt om het LLM te trainen.
  • De gegevens in de kennisrepository van RAG kunnen voortdurend worden bijgewerkt zonder dat dit aanzienlijke kosten met zich meebrengt.
  • De kennisrepository van RAG kan gegevens bevatten die meer contextueel zijn dan de gegevens in een gegeneraliseerd LLM.
  • De bron van de informatie in de vectordatabase van RAG kan worden geïdentificeerd. En omdat de gegevensbronnen bekend zijn, kan onjuiste informatie in een RAG-systeem worden verbeterd of verwijderd.

De uitdagingen van retrieval-augmented generation

Omdat RAG een relatief nieuwe technologie is die voor het eerst werd voorgesteld in 2020, zijn AI-ontwikkelaars nog steeds aan het leren hoe ze de mechanismen voor het ophalen van informatie het beste kunnen implementeren in generatieve AI-systemen. Enkele belangrijke uitdagingen zijn:

  • Het verbeteren van de organisatorische kennis van en het inzicht in RAG, omdat dit zo nieuw is
  • Verhoogde kosten: hoewel generatieve AI met RAG duurder is om te implementeren dan alleen een LLM, is dit minder duur dan het steeds opnieuw trainen van een LLM
  • Bepalen hoe de gestructureerde en ongestructureerde gegevens het beste kunnen worden gemodelleerd binnen de kennisbibliotheek en de vectordatabase
  • Vereisten ontwikkelen voor een proces om gegevens stapsgewijs in het RAG-systeem in te voeren
  • Processen doorvoeren om meldingen over onnauwkeurigheden af te handelen en de betreffende informatiebronnen in het RAG-systeem te corrigeren of te verwijderen

Voorbeelden van retrieval-augmented generation

Er zijn vele mogelijke voorbeelden van generatieve AI versterkt met RAG.

Cohere, een leider op het gebied van generatieve AI en RAG, heeft geschreven over een chatbot die contextuele informatie kan bieden over een vakantiewoning op de Canarische Eilanden, inclusief op feiten gebaseerde antwoorden over de toegankelijkheid van stranden, strandwachten op nabijgelegen stranden en de beschikbaarheid van volleybalvelden op wandelafstand.

Oracle heeft andere gebruiksscenario's voor RAG beschreven, zoals financiële rapporten analyseren, assisteren bij het opsporen van gas en olie, transcripties beoordelen van de communicatie van callcenters met klanten en in medische databases zoeken naar relevante onderzoeksdocumenten.

De toekomst van retrieval-augmented generation

In het huidige vroege stadium van RAG wordt de technologie gebruikt om actuele, nauwkeurige en contextuele responsen op query's te geven. Deze gebruiksscenario's zijn geschikt voor chatbots, e-mail, tekstberichten en andere gespreksapplicaties.

In de toekomst kan RAG misschien worden gebruikt om generatieve AI te helpen de juiste actie te ondernemen op basis van contextuele informatie en gebruikersprompts. Met een AI-systeem dat is verbeterd met RAG kan bijvoorbeeld de hoogst gewaardeerde accommodatie voor een strandvakantie op de Canarische Eilanden worden geïdentificeerd en vervolgens een vakantiewoning met twee slaapkamers worden geboekt op wandelafstand van het strand tijdens een volleybaltoernooi.

RAG kan ook helpen met meer geavanceerde vragen. Tegenwoordig kan een werknemer met generatieve AI opvragen wat het beleid van het bedrijf is wat betreft de terugbetaling van collegegeld. Met RAG kunnen er meer contextuele gegevens worden toegevoegd, zodat de werknemer te weten komt welke scholen in de buurt opleidingen bieden die binnen dat beleid passen, en misschien programma's worden aanbevolen die aansluiten op de functie van de werknemer en eerdere opleidingen. RAG kan zelfs helpen bij het aanvragen van die programma's en het indienen van een terugbetalingsaanvraag.

Generatieve AI met Oracle

Oracle biedt verschillende geavanceerde AI-services in de cloud, waaronder de OCI Generative AI service die op Oracle Cloud Infrastructure (OCI) draait. Het aanbod van Oracle omvat robuuste modellen op basis van de unieke gegevens en branchekennis van uw organisatie. Klantgegevens worden niet gedeeld met LLM-providers of andere klanten, en aangepaste modellen die zijn getraind op basis van klantgegevens kunnen alleen door de betreffende klant worden gebruikt.

Daarnaast integreert Oracle generatieve AI in diverse cloudapplicaties en zijn er mogelijkheden voor generatieve AI beschikbaar voor ontwikkelaars die OCI gebruiken, en in het hele databaseportfolio. Bovendien leveren de AI-services van Oracle voorspelbare prestaties en prijzen op basis van AI-clusters met één tenant die zijn afgestemd op uw situatie.

De kracht en mogelijkheden van LLM's en generatieve AI zijn algemeen bekend en begrepen, aangezien er het afgelopen jaar veel over in het nieuws is geweest. Met retrieval-augmented generation worden de voordelen van LLM's uitgebreid door deze actueler, nauwkeuriger en contextueler te maken. Voor zakelijke toepassingen van generatieve AI is RAG een belangrijke technologie om te bekijken, te bestuderen en te testen.

Waarom is Oracle zo geschikt voor generatieve AI?

Oracle biedt een modern gegevensplatform en een goedkope, krachtige AI-infrastructuur. En aanvullende factoren, zoals krachtige, hoogwaardige modellen, ongeëvenaarde databeveiliging en geïntegreerde AI-services, maken duidelijk waarom het AI-aanbod van Oracle echt is ontwikkeld voor ondernemingen.

Veelgestelde vragen over retrieval-augmented generation

Is RAG hetzelfde als generatieve AI?

Nee. Retrieval-augmented generation is een techniek waarmee nauwkeurigere resultaten met query's kunnen worden behaald dan met alleen een generatief large language model, omdat er met RAG externe kennis wordt opgehaald bij gegevens die al in het LLM zijn opgenomen.

Welk type informatie wordt bij RAG gebruikt?

Met RAG kunnen gegevens worden opgehaald uit vele bronnen, zoals relationele databases, ongestructureerde documentrepository's, internetdatastreams, nieuwsfeeds van media, audiotranscripties en transactielogboeken.

Op welke manier maakt generatieve AI gebruik van RAG?

De gegevens uit de gegevensbronnen van een bedrijf worden opgenomen in een kennisrepository en vervolgens omgezet in vectoren, die worden opgeslagen in een vectordatabase. Wanneer een eindgebruiker een query uitvoert, wordt de relevante contextuele informatie opgehaald uit de vectordatabase. Deze contextuele informatie wordt samen met de query verzonden naar het large language model, dat de context gebruikt om een actuelere, nauwkeurigere en contextuelere respons te maken.

Is het bij RAG mogelijk om de bron te achterhalen van de gegevens die worden opgehaald?

Ja. De vectordatabases en kennisrepository's die door RAG worden gebruikt, bevatten specifieke informatie over de bronnen van de informatie. Dit betekent dat de bronnen kunnen worden genoemd, en als er een fout in een van die bronnen staat, kan deze snel worden gecorrigeerd of verwijderd, zodat er bij volgende zoekopdrachten geen onjuiste informatie wordt geretourneerd.