Hop til indhold
Kunstig intelligens og data

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.

Eksempel
En medarbejder spørger en AI-assistent om virksomhedens gældende hjemmearbejdspolitik; i stedet for at gætte ud fra generel viden finder RAG-systemet det aktuelle HR-dokument og lader sprogmodellen formulere svaret ud fra det.
Ofte stillede spørgsmål
Hvad står RAG for?
RAG står for Retrieval-Augmented Generation, altså at en sprogmodels svar bliver beriget (augmented) med information, der først er hentet (retrieval) fra en ekstern kilde.
Betyder RAG, at sprogmodellen bliver trænet på dokumenterne?
Nej. Ved RAG hentes dokumenterne frem, når de er relevante for en konkret forespørgsel, men selve sprogmodellen bliver normalt ikke gentrænet på dem.
Hvad er forskellen på RAG og fine-tuning?
Fine-tuning ændrer modellens parametre gennem yderligere træning og bruges typisk til at ændre modellens adfærd eller stil. RAG giver i stedet modellen adgang til ekstern information uden at ændre selve modellen.
Hvad er en vector database i forbindelse med RAG?
Det er en database optimeret til at gemme og sammenligne embeddings, altså matematiske repræsentationer af teksters betydning, så systemet kan finde de dokumenter der betydningsmæssigt matcher et spørgsmål bedst.
Kan RAG helt fjerne risikoen for forkerte AI-svar?
Nej, RAG reducerer risikoen for opdigtet eller forældet indhold, men et forkert eller upræcist hentningstrin kan stadig føre til svar, der lyder troværdige uden at være korrekte.
Nysgerrig på selve sprogmodellen, som RAG bygger sine svar oven på? Se hvordan GPT-arkitekturen fungerer.
GPT (Generative Pre-trained Transformer) →