Wat is RAG?
Inleiding tot RAG en AI
Retrieval Augmented Generation (RAG) is een krachtige techniek die de mogelijkheden van grote taalmodellen (LLM's) uitbreidt door hun generatieve vaardigheden te combineren met externe kennisbronnen. In wezen overbrugt RAG de kloof tussen de enorme generatieve capaciteiten van LLM's en de mogelijkheid om nauwkeurigere, actuelere en contextueel relevante informatie te verstrekken — mits de externe bronnen betrouwbaar zijn.

Hoewel hun vermogen om tekst te genereren, die zo door een mens geschreven had kunnen zijn, veel indruk maakt, worden traditionele LLM's beperkt door de kennis die ze tijdens hun initiële trainingsfase verwerven.
Hun antwoorden kunnen verouderd zijn of er kunnen specifieke details ontbreken, vooral bij onderwerpen die snel veranderen. RAG ondervangt deze beperking door het model toegang te geven tot gegevens uit een breed scala aan externe bronnen en deze te verwerken, zoals:
- Databases: opslagplaatsen van gestructureerde informatie met feiten, cijfers en relaties.
- Documenten: tekstbronnen zoals artikelen, rapporten en webpagina's.
- Code repository’s: verzamelingen programmacode en documentatie.
- Knowledge graphs: netwerken van onderling verbonden entiteiten en concepten.
Door deze externe bronnen op te nemen, laten deze systemen een LLM relevantere antwoorden genereren, omdat ze op feitelijke gegevens uit betrouwbare bronnen gebaseerd zijn.
RAG maakt ook actuelere antwoorden mogelijk, die de laatste ontwikkelingen en veranderingen weerspiegelen.
Het is een schoolvoorbeeld van hoe het integreren van externe kennis in systemen voor artificiële intelligentie ervoor kan zorgen dat ze robuuster en betrouwbaarder worden. Deze aanpak leidt bij allerlei toepassingen tot boeiende mogelijkheden, van klantenservice en onderwijs tot onderzoek en ontwikkeling.
We verwachten nog veel meer innovatieve en impactvolle toepassingen te zien ontstaan naarmate de RAG-technologie zich verder ontwikkelt.
Belang van RAG
Deze methodologie wordt steeds belangrijker binnen AI, omdat het enkele belangrijke beperkingen van grote taalmodellen (LLM's) kan oplossen. Dit is de reden waarom deze route van cruciaal belang is:
- Hogere nauwkeurigheid en betrouwbaarheid: LLM’s worden getraind op enorme datasets, maar deze kunnen verouderd raken of specifieke domeinen, dan wel nicheonderwerpen niet behandelen. Met RAG kan het model realtime informatie en domeinspecifieke kennis uit externe bronnen opvragen en integreren. Dit resulteert in nauwkeurigere en betrouwbaardere antwoorden. Dit is met name belangrijk op gebieden waar nauwkeurigheid en feitelijke correctheid van essentieel belang zijn, zoals klantenservice, gezondheidszorg en financiën.
Bij klantenservice kan het bijvoorbeeld nauwkeurige productinformatie of stappen voor probleemoplossing aanleveren, terwijl het in de gezondheidszorg toegang kan bieden tot de nieuwste medische onderzoeken en patiëntendossiers.
- Verbeterde contextuele relevantie: Het verbetert de contextuele relevantie van antwoorden door toepasselijke informatie uit externe bronnen op te halen en deze op de vraag af te stemmen. Dit leidt tot relevantere, exactere antwoorden die de gebruikerservaring en -tevredenheid verbeteren.
Dit is waardevol voor persoonlijke aanbevelingen, waarbij RAG producten of services kan voorstellen op basis van gebruikersvoorkeuren en aankoopgeschiedenis. In het onderwijs kan RAG persoonsgericht lesmateriaal en oefeningen bieden op basis van de behoeften van de student.
- Hallucinatie en vooroordelen corrigeren: LLM's kunnen soms foutieve of bevooroordeelde informatie genereren, ook wel "hallucinatie" genoemd. RAG helpt dit probleem te beperken door het LLM met twee voeten op de grond te houden met feitelijke gegevens uit betrouwbare bronnen.
- Aanpasbaarheid en continu leren: Met RAG kunnen LLM's zich aanpassen aan nieuwe informatie en veranderende onderwerpen door hun kennisbank voortdurend bij te werken. Hierdoor hoeft het LLM niet vaak opnieuw getraind te worden, waardoor het efficiënter en kosteneffectiever wordt.
Het combineren van de sterke punten van een LLM met externe kennisbronnen ontsluit nieuwe mogelijkheden voor AI-applicaties en machinelearning.
Een LLM kan hierdoor complexe taken oplossen waarvoor creativiteit en feitelijke nauwkeurigheid nodig is, zoals het beantwoorden van vragen, het samenvatten van tekst en het genereren van programmacode.
RAG kan bijvoorbeeld uitgebreidere en genuanceerdere antwoorden op complexe vragen geven, beknopte en informatieve samenvattingen van lange teksten genereren en helpen bij het genereren van codefragmenten op basis van beschrijvingen in natuurlijke taal.
Toepassingen in diverse bedrijfstakken
RAG is een veelzijdige technologie die de manier waarop we met informatie omgaan revolutionair kan veranderen en taken in verschillende bedrijfstakken kan automatiseren. Hier zijn enkele belangrijke toepassingen.
Klantenservice en support
RAG kan intelligentere en efficiëntere systemen voor klantenservice mogelijk maken. Door productdocumentatie, informatiebanken en de interactiegeschiedenis van klanten te benutten, kunnen chatbots die RAG gebruiken vragen van klanten nauwkeurig beantwoorden, problemen sneller oplossen en persoonlijke support bieden. Dit leidt tot meer klanttevredenheid en lagere supportkosten.
E-commerce
Met deze methode kunt u systemen voor het ontdekken en aanbevelen van producten verbeteren. Door productbeschrijvingen, klantbeoordelingen en aankoopgeschiedenis te analyseren, kan RAG toepasselijkere productsuggesties leveren, vragen erover beantwoorden en zelfs persoonlijke shoppinggidsen genereren. Dit kan leiden tot meer omzet en hogere betrokkenheid van klanten.
Gezondheidszorg
Het kan professionals in de gezondheidszorg helpen bij diagnose, behandelingsplanning en patiëntenzorg. Het raadplegen van medische literatuur, patiëntendossiers en klinische studiegegevens kan voor sommige gevallen relevante informatie opleveren, potentiële diagnoses suggereren en onderzoeksbevindingen samenvatten. Dit kan helpen de nauwkeurigheid en efficiëntie van medische besluitvorming te verbeteren.
Finance
RAG kan worden ingezet bij financiële analyse, risicomanagement en beleggingsstrategieën. Door marktgegevens, financieel nieuws en bedrijfsrapportages op te vragen, kan RAG samenvattingen genereren van economische prestaties, potentiële risico's identificeren en inzichten verschaffen voor investeringsbeslissingen. Dit kan financiële instellingen helpen beter onderbouwde en op data gebaseerde keuzes te maken.
Onderwijs
Het kan persoonlijke leerervaringen maken en studenten effectievere educatieve middelen geven. Door leerboeken, onderzoeksartikelen en academische databases te raadplegen, kan RAG vragen van studenten beantwoorden, quizzen en opdrachten genereren en persoonlijk lesmateriaal leveren. Dit kan tot betere onderwijsresultaten en meer betrokkenheid bij studenten leiden.
Juridisch
RAG kan juridische professionals bijstaan bij onderzoek, revisie van documenten en contractanalyse. Door juridische databases, jurisprudentie en teksten te raadplegen kan RAG toepasselijke informatie verschaffen voor specifieke gevallen, juridische argumenten samenvatten en potentiële juridische problemen identificeren. Dit kan tijd besparen voor advocaten en de nauwkeurigheid van hun werk verbeteren.
Softwareontwikkeling
Deze methode kan ontwikkelaars helpen bij het genereren van programmacode, het opsporen van bugs en bij documentatie. RAG kan codefragmenten genereren op basis van beschrijvingen in natuurlijke taal, potentiële bugs vinden en de functie van bepaalde code uitleggen door coderepository’s, documentatie en online forums te doorzoeken. Dit kan ontwikkelaars helpen om efficiënter en effectiever code te schrijven.
RAG-modellen begrijpen
Hoewel het concept eenvoudig lijkt, is er voor de onderliggende modellen een ingewikkeld samenspel van componenten nodig. Laten we de belangrijkste onderdelen eens nader bekijken:
Retriever
Dit onderdeel fungeert als de motor. Het doorzoekt de grote externe kennisbank en richt zich op de essentiële informatie voor een bepaalde query. Er kunnen verschillende methoden worden gebruikt om informatie op te halen. Bij dense retrieval worden embeddings en numerieke representaties van tekst gebruikt die semantische betekenissen vastleggen.
De retriever vergelijkt de embedding van de gebruikersquery met de embeddings van documenten in de kennisbank om de meest overeenkomstige documenten te vinden. Sparse retrieval berust op traditionele zoektechnieken op basis van trefwoorden, zoals TF-IDF (Term Frequency-Inverse Document Frequency), om documenten te vinden die de zoektermen bevatten.
Hybrid retrieval combineert dense retrieval en sparse retrieval om hun sterke punten te benutten en de nauwkeurigheid te verbeteren.
Ranker
Als de retriever potentieel relevante documenten heeft geïdentificeerd, gaat de ranker aan de slag om de selectie te verfijnen. Het evalueert de opgehaalde documenten en rangschikt ze op basis van hun relevantie voor de query.
Hierdoor wordt de relevantste informatie doorgegeven aan de generator. Rangschikkingsmethoden kunnen overeenkomstigheidsscores bevatten, waarmee de overeenkomst tussen de query en opgehaalde documenten wordt gemeten op basis van de embeddings of de overlap qua trefwoorden; contextuele relevantie, waarmee wordt beoordeeld hoe goed de opgehaalde informatie aan de nuances en de bedoeling van de query beantwoordt; en bronkwaliteit, waarbij prioriteit wordt gegeven aan informatie uit betrouwbare en gezaghebbende bronnen.
Generator
Dit is de kerncomponent die verantwoordelijk is voor het genereren van het uiteindelijke antwoord. Een groot taalmodel (LLM) gebruikt doorgaans de gerangschikte documenten als invoer en creëert een samenhangend en informatief antwoord – maar het kan elk generatief AI-model zijn.
De generator maakt gebruik van zijn taalkennis en generatieve capaciteiten om de opgehaalde informatie op een natuurlijke en aantrekkelijke manier te bundelen en te presenteren.
Kennisbank
De kennisbank is de externe informatiebron waarop het RAG-model zich baseert. Dit kan een gevarieerde gegevensverzameling zijn, inclusief tekstdocumenten zoals artikelen, boeken, webpagina's en coderepository’s; gestructureerde databases zoals tabellen, relationele databases en graphs; en zelfs multimedia, zoals afbeeldingen, video's en audiobestanden.
De keuze van de kennisbank hangt af van de applicatie en het type informatie dat nodig is.
Verschillende RAG-architecturen
Er zijn verschillende manieren om een systeem te structureren met deze methode. Architectuur op documentniveau houdt in dat de retriever alle documenten selecteert die relevant zijn voor de query, waarbij de generator deze documenten als geheel verwerkt.
Bij een RAG op het niveau van passages splitst de retriever daarentegen documenten in kleinere passages op en kiest de relevantste.
Dit maakt een gerichtere en nauwkeurigere retrieval mogelijk. Tot slot is een vragen beantwoordend RAG-model expliciet ontworpen voor het beantwoorden van vragen, waarbij de retriever zich richt op het vinden van passages die de vraag van de gebruiker direct beantwoorden.
Uitdagingen voor RAG
Hoewel het aanzienlijke voordelen biedt, brengt het ook unieke uitdagingen met zich mee die u moet oplossen voor een succesvolle implementatie. Een belangrijk aandachtspunt is het onderhouden van een hoogwaardige kennisbank. Deze is alleen maar effectief als de opgehaalde informatie nauwkeurig, relevant en volledig is.
Dit vereist zorgvuldig zuiveren en onderhouden van de kennisbank: regelmatig bijwerken, nauwkeurig indexeren en effectief wegfilteren van irrelevante of verouderde informatie. Uitdagingen komen voort uit het waarborgen van gegevensconsistentie, het managen van verschillende gegevensindelingen en het omgaan met potentiële vooroordelen in de gegevens.
Zonder een robuuste en goed onderhouden kennisbank kunnen deze systemen onnauwkeurige, irrelevante of misleidende antwoorden geven, waardoor hun beoogde doel wordt ondermijnd.
Bovendien is voor het bereiken van optimale prestaties in RAG-systemen een zorgvuldige afweging van de efficiëntie en nauwkeurigheid van het ophalen vereist. Het ophalen van relevante informatie uit enorme kennisbanken kan veel rekenkracht vereisen en tijdrovend zijn.
Ontwikkelaars moeten efficiënte methoden vinden om snel de meest relevante informatie te identificeren zonder aan nauwkeurigheid in te boeten. Dit impliceert vaak compromissen tussen verschillende retrievaltechnieken, zoals dense versus sparse retrieval, en vereist een zorgvuldige afstemming van parameters om voor specifieke taken en domeinen te optimaliseren.
Bovendien kan het correct rangschikken en integreren van de opgehaalde informatie in het generatieve proces van het LLM complex zijn en geavanceerde classificatiealgoritmen met effectieve integratiestrategieën vereisen. Het overwinnen van deze uitdagingen is van cruciaal belang voor het bouwen van RAG-systemen die relevante en snelle antwoorden geven bij daadwerkelijke toepassingen.
Best practices voor het trainen van RAG-modellen
Het ontwikkelen van effectieve AI houdt meer in dan alleen het combineren van een retriever, ranker en generator. U dient goed na te denken hoe u wilt trainen en optimaliseren om optimale prestaties te waarborgen. Dit zijn enkele best practices om in gedachten te houden:
- Creëer een hoogwaardige kennisbank: Een goed onderhouden en relevante informatiebasis vormt het fundament van elk succesvol systeem. Dit houdt in dat u moet zorgen dat de gegevens nauwkeurig en actueel zijn en geen fouten of inconsistenties bevatten.
- Optimaliseer de retriever: De retriever is van cruciaal belang voor het identificeren van belangrijke informatie. Bij de belangrijke overwegingen hoort onder meer het kiezen van de juiste methode (dense, sparse of hybride) op basis van de kenmerken van de gegevens en de taak.
- Finetune de ranker: De ranker geeft prioriteit aan de meest relevante informatie. Tot de best practices behoort het kiezen van geschikte rangschikkingsgegevens die zich op het gewenste resultaat richten, het invoeren van gebruikersfeedback om de rangschikkingsnauwkeurigheid te verbeteren en het bevorderen van diversiteit in de gerangschikte resultaten om een breder kader aan perspectieven te verstrekken.
- Train de generator voor contextueel begrip: De generator moet worden getraind om de opgehaalde informatie effectief te gebruiken. Hierbij leert u de generator de context van de opgehaalde gegevens evenals de query van de gebruiker te begrijpen. U traint de generator om informatie uit meerdere bronnen te bundelen.
Ten slotte moet u de prestaties van het model voortdurend evalueren en de componenten ervan herhaaldelijk verbeteren om ze effectiever te maken.
Hiertoe behoort het definiëren van duidelijke evaluatiemaatstaven die de nauwkeurigheid, relevantie en vloeiendheid van de gegenereerde antwoorden meten, het uitvoeren van grondige tests met diverse inputs en scenario's en het monitoren van de prestaties van het model in echte omgevingen om verbeterpunten te identificeren.
OVHcloud en RAG
Versnel uw AI-traject met het uitgebreide servicespakket van OVHcloud. We bieden krachtige infrastructuur, flexibele tools en deskundige support om uw machinelearningmodellen efficiënt te trainen, implementeren en beheren.
Lees dit artikel dat een referentiearchitectuur presenteert voor een eenvoudige Retrieval Augmented Generation-oplossing op basis van een vector-DB met door OVHcloud beheerde services. In dit gebruiksscenario hebben we een groot aantal pdf-/markdown-documenten die als één batch worden ingevoerd om een kennisbank te maken. Verder is er een eenvoudige tekstchatinterface waarmee een gebruiker vragen kan stellen.

Geef uw applicaties meer mogelijkheden met AI Endpoints
Ons platform is ontworpen met eenvoud als uitgangspunt. Het stelt ontwikkelaars van alle niveaus in staat hun applicaties te verbeteren met geavanceerde AI-API's — zonder dat AI-expertise vereist is.
Lees ons artikel over een RAG-chatbot met AI Endpoints en LangChain

AI Deploy
Implementeer eenvoudig machinelearningmodellen en -applicaties in productie, creëer met gemak uw API-toegangspunten en maak effectieve voorspellingen.
Hoe kan ik LLM's met vLLM en OVHcloud AI Deploy leveren?
In deze tutorial doorlopen we samen met u het proces van het leveren van grote taalmodellen (LLM's) en geven we stapsgewijze instructies.

Maak uw workloads sneller met GPU's die gemaakt zijn voor AI en grafische taken
Profiteer van NVIDIA GPU's om uw projecten voor artificiële intelligentie (AI), deeplearning (DL) en grafische verwerking een boost te geven. Of u nu grote taalmodellen (LLM) of taken voor visual computing implementeert, onze oplossingen met GPU’s bieden optimale snelheid en efficiëntie.