RAG (Retrieval-Augmented Generation)
Retrieval-Augmented Generation
RAG, forkortelse for Retrieval-Augmented Generation, er en metode inden for kunstig intelligens, hvor en sprogmodel kombineres med et system, der henter ekstern information, før modellen genererer et svar. I stedet for udelukkende at basere svaret på den viden, modellen fik indlejret under sin træning, finder systemet relevante tekststykker fra en ekstern kilde og sender dem med som kontekst til modellen. Svaret bliver dermed “beriget” (augmented) med information, modellen ikke selv har lært udenad.
Forestil dig en kundeserviceafdeling, hvor en medarbejder spørger et AI-system: “Hvad er vores returret på elektronik købt via forhandler?” En almindelig sprogmodel uden adgang til virksomhedens egne dokumenter vil enten gætte ud fra generel viden om returret eller svare, at den ikke har information om netop denne virksomheds regler. Med RAG kan systemet i stedet slå op i virksomhedens handelsbetingelser, finde det relevante afsnit og lade sprogmodellen formulere et svar med udgangspunkt i den konkrete tekst.
Sådan adskiller RAG sig fra almindelig brug af en sprogmodel
Når man bruger en sprogmodel som GPT eller Claude uden RAG, svarer modellen udelukkende ud fra mønstre og fakta, den har set under træningen. Den viden er statisk og har en skæringsdato, hvorefter modellen ikke automatisk kender til nyere begivenheder eller ændringer. Den kender heller ikke en bestemt virksomheds interne dokumenter, priser eller procedurer, medmindre disse på en eller anden måde indgik i træningsdataene.
RAG ændrer denne dynamik ved at indsætte et hentningstrin (retrieval) mellem spørgsmålet og svaret. Modellens indbyggede sprogforståelse bruges stadig til at formulere et sammenhængende svar, men selve indholdet i svaret kan trække på dokumenter, der er opdateret efter modellens træning, eller som slet aldrig indgik i den. Det gør det muligt at holde et AI-system opdateret ved at ændre de underliggende dokumenter, i stedet for at gentræne selve modellen.
Sådan fungerer en RAG-løsning i praksis
En typisk RAG-arkitektur består af nogle få centrale trin, der ofte kobles sammen via en REST API, når systemet skal hente data fra eksterne kilder eller databaser.
- Chunking: Dokumenter som PDF-filer, intranetsider eller produktmanualer opdeles i mindre tekststykker, så systemet senere kan finde præcis det afsnit, der er relevant for et givent spørgsmål.
- Embeddings og vector database: Hvert tekststykke omdannes til en matematisk repræsentation (embedding) af dets betydning og gemmes i en vector database. Det gør det muligt at finde information ud fra betydning frem for kun identiske søgeord, hvilket kaldes semantisk søgning.
- Retrieval: Når en bruger stiller et spørgsmål, omdannes spørgsmålet til samme type matematiske repræsentation, og systemet finder de tekststykker, der ligger tættest på spørgsmålet betydningsmæssigt. Mange løsninger kombinerer semantisk søgning med traditionel nøgleordssøgning for bedre resultater.
- Generation: De fundne tekststykker sendes sammen med brugerens spørgsmål til sprogmodellen, som bruger dem som grundlag for at formulere det endelige svar.
Et vigtigt element er, at sprogmodellen normalt ikke gentrænes på de dokumenter, den henter fra. Dokumenterne bliver blot tilgængelige for søgesystemet, hvilket betyder, at en opdateret procedure eller et nyt dokument kan indgå i svarene, uden at hele modellen skal trænes om.
RAG versus fine-tuning
RAG bliver ofte sammenlignet med fine-tuning, men de to teknikker løser forskellige problemer. Fine-tuning justerer selve modellens parametre gennem yderligere træning og kan være velegnet, hvis modellen skal blive bedre til et bestemt svarformat, en specifik klassificeringsopgave eller branchespecifik terminologi. RAG bruges typisk, når modellen i stedet skal have adgang til bestemt information, for eksempel virksomhedens produkter, kontrakter eller interne politikker. De to tilgange kan også kombineres, så en finjusteret model desuden får adgang til et RAG-system.
Styrker og begrænsninger
RAG kan bidrage til mere præcise svar, fordi modellen har konkrete tekststykker at basere sig på i stedet for udelukkende at “gætte” ud fra generel træningsviden. Det kan også gøre svar mere sporbare, da mange løsninger lader brugeren se, hvilke kilder svaret bygger på. Fordi vidensgrundlaget kan opdateres uafhængigt af selve modellen, egner metoden sig ofte godt til information, der ændrer sig løbende.
Metoden løser dog ikke alle udfordringer ved sprogmodeller. Kvaliteten af et RAG-system afhænger i høj grad af, hvor godt dokumenterne er struktureret, hvordan de er opdelt i tekststykker, og om hentningstrinnet rent faktisk finder de rigtige passager. Hvis retrieval-delen finder et forkert eller forældet afsnit, kan modellen stadig formulere et svar, der lyder overbevisende, men er unøjagtigt. RAG reducerer derfor risikoen for fejl og opdigtet indhold snarere end at fjerne den helt.
Anvendelsesområder for RAG
RAG anvendes i praksis til mange typer af intern og ekstern vidensdeling, blandt andet til kundeservice, hvor et system kan slå op i produktmanualer og garantibetingelser, til HR-assistenter, der kan svare på spørgsmål om personalepolitikker, og til teknisk support, hvor svar kan baseres på fejlkataloger og driftsdokumentation. Fælles for anvendelserne er, at organisationen allerede har den relevante viden liggende i dokumenter eller databaser, men at medarbejdere eller kunder har svært ved selv at finde frem til den rigtige information.