Retrieval-augmented generation (RAG) (SV)

From Systems analysis Wiki
Jump to navigation Jump to search

Retrieval-Augmented Generation (RAG) (sv. Generering förstärkt med sökning) — är en metod inom artificiell intelligens där en generativ språkmodell (LLM) ges tillgång till externa informationskällor för att förbättra svarens noggrannhet och tillförlitlighet. Med andra ord utför modellen en sökning efter relevanta data (till exempel i en dokumentdatabas, på en webbplats eller i en databas) innan svaret genereras och använder den hittade informationen när svaret formuleras[1][2]. Detta tillvägagångssätt ger en «komplettering» med kunskaper från aktuella källor och hjälper till att övervinna LLM:s begränsningar som rör begränsat «minne» och föråldrad information[3]. Ett RAG-system kan hänvisa till specifika dokument (till exempel i form av fotnoter) i det genererade svaret, vilket ökar transparensen och låter användaren kontrollera fakta[1]. Som ett resultat minskar risken för hallucinationer — fall där modellen med säkerhet presenterar falsk information[1][3]. RAG utökar LLM:s kunskapsbas till nästan obegränsad storlek och gör det möjligt för modeller att använda den senaste informationen utan omträning[4].

Metodens ursprung och utveckling

Idén att kombinera informationssökning med automatisk generering av svar uppstod långt före moderna LLM. Redan på 1970-talet gjordes försök att skapa question-answering-system som sökte svar i textdatabaser utifrån en given fråga[1]. På 1990-talet dök webbtjänsten Ask Jeeves upp och populariserade sökning efter svar på naturligt språk, och år 2011 demonstrerade IBM Watson AI:s möjligheter genom att vinna tv-showen Jeopardy! mot mänskliga deltagare[1].

Den moderna utvecklingsfasen är kopplad till introduktionen av neurala nätverksbaserade språkmodeller: Retrieval-Augmented Generation som ett separat tillvägagångssätt föreslogs år 2020 av en grupp forskare från Facebook AI Research, University College London med flera, under ledning av Patrick Lewis[1]. I deras arbete, som antogs till NeurIPS 2020, beskrivs RAG-modellen — en generativ seq2seq-modell (till exempel BART) med differentierbar tillgång till ett externt «icke-parametriskt» kunskapslager[5]. Författarna använde hela den engelskspråkiga Wikipedia som extern kunskapsbas och representerade den som ett vektorindex (~21 miljoner textfragment) som genomsöks med hjälp av den neurala algoritmen Dense Passage Retrieval[5]. För en inkommande fråga extraherar RAG-modellen de mest lämpliga fragmenten från indexet och lägger till dem i kontexten för svarsgenereringen. Denna mekanism möjliggjorde nya rekordresultat (state-of-the-art) på uppgifter med öppen kunskapsbas, till exempel i testerna Natural Questions, WebQuestions med mera[2]. Det noterades att RAG-modellens svar blev mer specifika och faktamässigt korrekta än tidigare generativa ansatser, tack vare syntesen av information från flera källor[2]. Snart publicerade Facebook RAG:s källkod öppet: modellen integrerades i biblioteket HuggingFace Transformers och det tillhörande datasetet, vilket gjorde det enkelt för utvecklare att tillämpa RAG i sina projekt[2]. Sedan 2020 har RAG-metoden snabbt vunnit popularitet — enligt upphovsmannen fick tillvägagångssättet trots förkortningens klang en bred spridning, genererade hundratals vetenskapliga arbeten och blev grunden för många kommersiella tjänster[1].

RAG:s arbetsprincip

Principschema för Retrieval-Augmented Generation: sökmodulen (till vänster) extraherar relevanta dokument från kunskapsbasen, varefter den generativa modellen (till höger) formulerar ett svar baserat på användarens fråga med hänsyn till den hittade informationen[6]. Detta tillvägagångssätt gör det möjligt för LLM att basera sig på aktuella externa data vid generering av svar. Diagrammet visar hur användarens fråga omvandlas till en vektor och används för att söka efter liknande textfragment; dessa kopplas sedan till modellens kontext, «utvidgar» dess kunskaper och ökar svarets noggrannhet.

Ett RAG-system består vanligtvis av två huvudkomponenter: sökmodulen (retriever) och svarsgenereringsmodulen (generator)[6]. Under förberedelsesteget byggs ett vektorindex av kunskapsbasen: alla dokument (texter) delas upp i fragment och omvandlas av en embedding-modell till numeriska vektorer, som lagras i en specialiserad databas för senare sökning[6]. När en användarfråga inkommer kodar samma embedding-modell frågan till en vektor; därefter utförs en sökning efter närmaste grannar i vektorrummet — top K mest liknande fragment väljs från kunskapsindexet (till exempel K = 5)[6]. Dessa fragment betraktas som extern kontext som innehåller sannolika fakta om ämnet för frågan.

I nästa steg används den bildade kontexten av den generativa modellen. Den ursprungliga frågan tillsammans med de hittade textfragmenten matas in till LLM (till exempel en seq2seq-transformer eller en instruktionsorienterad modell) för generering av det slutliga svaret[2]. Språkmodellen förlitar sig således villkorligt inte bara på sina inlärda (parametriska) kunskaper, utan också på de externa data som tillhandahålls. I den ursprungliga RAG-implementeringen hade den förtränade modellen BART rollen som generator, medan det externa «minnet» representerades av Wikipedia-samlingen, indexerad med DPR-metoden[5].

Fusion-approach - Metod för sammanslagning av kunskaper

En viktig egenskap hos RAG är det sätt på vilket modellen kombinerar information från flera hittade dokument. Till skillnad från enkel sammankoppling av all text tillämpar RAG ett tillvägagångssätt känt som late fusion («sen sammanslagning av resultat») — den generativa modellen bearbetar parallellt vart och ett av de K erhållna fragmenten och genererar ett hypotetiskt svar med konfidensskattning för varje fragment, varefter dessa varianter aggregeras till ett slutligt utdata[2]. Denna metod gör det möjligt för RAG att syntetisera ett svar även i de fall där inget enskilt källdokument innehåller ett direkt och fullständigt svar på frågan. Om till exempel den nödvändiga informationen är fördelad över olika artiklar kan modellen kombinera «ledtrådar» från flera dokument till ett enda svar[2] (Det noterades att ett ökat antal använda dokument vanligtvis förbättrar svarets fullständighet till priset av en liten minskning av textens sammanhang[7].)

Implementeringsvarianter

I det ursprungliga arbetet från 2020 föreslogs två modifieringar av RAG-arkitekturen[6]. I läget RAG-Sequence får den generativa modellen en fast uppsättning hittade dokument och använder dem för att generera hela svaret i sin helhet. I läget RAG-Token tillåts däremot dynamisk uppdatering: vid varje steg i genereringen av nästa token kan modellen på nytt utföra sökning och ladda in ytterligare ett textfragment om det behövs för att precisera svaret. Båda ansatserna uppvisar liknande hög kvalitetsnivå; RAG-Sequence är enklare och snabbare, medan RAG-Token teoretiskt sett möjliggör hänsyn till fler olika uppgifter i längre svar[6].

Fördelar med RAG

  • Aktualitet och faktamässig noggrannhet. Anslutning av externa data gör det möjligt för LLM att ge mer exakta och välgrundade svar, baserade på verkliga uppgifter och inte bara på modellens parametrar. Detta minskar väsentligt risken för föråldrad eller rent av påhittad information i modellens svar[3][1]. Till skillnad från modeller med ett fast «kunskapssnitt» kan RAG svara även på frågor om händelser eller fakta som uppstod efter att modellens träning avslutades — tack vare tillgång till färska datakällor[4].
  • Transparens och användarförtroende. RAG-system kan tillhandahålla hänvisningar till informationskällor (till exempel artiklar, rapporter eller databaser) som utgjorde grunden för svaret[1]. I praktiken formulerar modellen sina svar likt ett vetenskapligt arbete med fotnoter, vilket gör det möjligt att kontrollera tillförlitligheten hos varje faktapåstående. Förekomsten av citerade primärkällor ökar användarnas förtroende och underlättar verifiering av den erhållna informationen.
  • Specialisering mot ett ämnesområde. Retrieval-augmentation ger möjlighet att relativt enkelt anpassa modellens arbete till ett smalt kunskapsdomän utan att ändra språkmodellen själv. Det räcker med att förse LLM med en specialiserad kunskapsbas inom önskat ämne — vare sig det gäller medicinska artiklar, juridiska dokument eller företagsteknikmanualer. Modellen, som förblir generell till sina parametrar, börjar agera som expert inom detta område eftersom den hämtar fakta från det utvalda datasetet[4][8]. Till exempel kan en juridisk assistent baserad på RAG begränsa sökområdet till ett enda jurisdiktionskompendium (lagstiftningen i ett specifikt land), vilket garanterar att svaren överensstämmer just med denna lagstiftning[8].
  • Flexibilitet och uppdateringsbarhet för kunskaper. I klassiska modeller krävdes det för att lägga till ny kunskap eller korrigera felaktiga fakta att man genomförde omträning (fine-tuning) på ett utökat dataset, vilket är kostsamt i tid och resurser. RAG löser detta problem: för att uppdatera modellens kunskaper räcker det att uppdatera den externa databasen eller koppla in ytterligare källor, och modellen börjar omedelbart använda den nya informationen[2]. Detta gör det enkelt att hålla systemet aktuellt — data kan i praktiken bytas ut «varmt» till och med i realtid utan avbrott i modellens arbete[1].
  • Effektivitet och resursbesparing. RAG-ansatsen visar sig ofta vara mer praktisk än träning av extremt stora modeller som strävar efter att täcka all information i sina parametrar. Genom att integrera sökning kan man uppnå jämförbara resultat med en modell av måttlig storlek, utan att försöka memorera absolut alla fakta inuti själva neurala nätverket[6]. Dessutom är implementeringen av en RAG-pipeline relativt enkel: det finns färdiga verktyg (frameworks, bibliotek), och utvecklare visar att en grundläggande RAG-prototyp kan sättas samman på bokstavligen ett fåtal kodrader[1]. Således minskar RAG de totala kostnaderna för AI-implementering: istället för att träna en ny modell för varje uppgift räcker det att konfigurera sökmekanism och tillhandahålla lämpliga data.

Problem och begränsningar med RAG

Trots uppenbara förtjänster ärver Retrieval-Augmented Generation begränsningar från både sökkomponenterna och från språkmodellerna själva[9]. Nedan listas de viktigaste problemen som är inneboende i RAG-system:

  • Beroende av sökkvalitet. Det erhållna svaret är korrekt i exakt den utsträckning som de extraherade data är relevanta och tillförlitliga. Om sökmodulen returnerar dokument som inte rör frågan eller som innehåller fel kan den generativa modellen inte «korrigera» dessa fakta — den genererar ett svar baserat på dem[8]. Kvaliteten och aktualiteten hos den externa kunskapsbasen bestämmer således direkt RAG:s noggrannhet. Det krävs regelbunden uppdatering av indexet och konfigurering av rangordningsalgoritmer för att dokumentutgången ska förbli relevant.
  • Hög komplexitet och resurskrävande karaktär. För att fungera kräver ett RAG-system inte bara LLM i sig, utan också infrastruktur för sökning: lagring och uppdatering av en stor databas, indexering, tid för att utföra en fråga. Allt detta ökar beräkningskostnaderna och kan minska svarshastigheten jämfört med enbart språkmodellen[8]. I värsta fall bromsas systemet av fördröjningar i sökfasen eller bearbetning av mycket stora datamängder. I praktiken måste man balansera mellan svarskvalitet och prestanda, optimera pipeline (till exempel begränsa storleken på kunskapsbasen eller sökdjupet för att hålla svarstiden inom normala gränser).
  • Krav på data och underhåll. För att RAG ska fungera effektivt krävs kvalitativa, strukturerade och tillgängliga externa data. Sökmodellen kan ha svårt att hitta användbar information om den externa kunskapsbasen är dåligt organiserad eller innehåller brus[8]. Dessutom är de nödvändiga data inte alltid öppna eller billiga: företag måste skapa och underhålla egna knowledge bases. Detta medför extra kostnader och kräver ansträngningar för att hålla data aktuella (till exempel att lägga till nya dokument, rensa föråldrad information). RAG:s svaga punkt är beroendet av att kunskapsbasen hålls i aktuellt skick.
  • Oförmågan att eliminera vissa LLM-fel. Även om RAG avsevärt minskar antalet konfabulationer är det inte alltid möjligt att helt utesluta felaktiga svar[9]. Den generativa modellen kan ändå göra ett logiskt misstag eller felaktigt generalisera information, särskilt om den tillhandahållna kontexten är otillräcklig eller motstridig[9]. I praktiken förflyttar RAG fokus för felen: istället för uppenbart påhittade fakta («hallucinationer») förekommer oftare kunskapsintegreringsfel — till exempel kan modellen missa ett viktigt fragment eller felaktigt koppla ihop olika källor. Därför krävs det i ansvarstagande tillämpningar (medicin, rätt) fortfarande mänskligt deltagande för verifiering och korrigering av systemets svar.

Tillämpning av RAG

Metoden Retrieval-Augmented Generation har funnit tillämpning i mängder av scenarier kopplade till extrahering och användning av kunskaper. Nedan listas de huvudsakliga områdena där RAG visar störst nytta:

  • Fråge-svarssystem och chattbotar. RAG gör det möjligt att skapa virtuella assistenter och chattbotar som svarar på användarfrågor med hög noggrannhet och kan tillhandahålla hänvisningar till källor. Inom kundtjänst hänvisar sådana botar till företagets interna kunskapsbas (FAQ, hjälpartiklar) och ger omedelbara svar på kundförfrågningar, vilket minskar personalens arbetsbelastning[8]. Till skillnad från klassiska FAQ-system formulerar RAG-botar svaret på naturligt språk, men «underbygger» det med aktuella data som är specifika för användarens problem.
  • Medicin och hälsovård. En generativ modell kompletterad med en specialiserad medicinsk databas (vetenskapliga artiklar, kliniska protokoll, uppslagsverk) kan fungera som en intelligent assistent för läkare eller patienter. Till exempel kan systemet svara på en fråga om en sällsynt diagnos genom att hitta ny forskning om detta ämne i medicinsk litteratur[8]. En viktig fördel med RAG inom medicin är möjligheten att hänvisa till primärkällor (till exempel resultat från kliniska prövningar), vilket är nödvändigt för att vinna läkarnas förtroende. Sådana system används för beslutsstöd, symtomkontroll, utbildning av medicinstudenter med mera, och ger tillgång till den senaste medicinska kunskapen.
  • Rätt och finans. Inom juridisk praktik och finansiell analys är noggrannheten och verifierbarheten av information särskilt kritisk. RAG-system kan hjälpa yrkesverksamma att snabbt hitta nödvändig information: till exempel kan en jurist med hjälp av modellen hitta och citera ett prejudicerande domstolsbeslut eller en lagparagraf som är relevant för det aktuella fallet, medan en finansanalytiker omedelbart kan få utdrag ur färska ekonomiska rapporter eller marknadsnyheter[8]. Dessutom kan varje modellsvar innehålla hänvisningar till specifika dokument (regelverk, rapporter, artiklar), vilket överensstämmer med branschstandarder och underlättar specialistens efterföljande manuella arbete.
  • Vetenskaplig forskning och innehållsskapande. Journalister, forskare och skribenter kan använda RAG för att accelerera fakta- och källsökning vid förberedelse av material. Till exempel kan modellen på begäran «samla» information från flera tillförlitliga publikationer och därigenom avsevärt minska tiden för faktakontroll och urval av citat[8]. Forskningsassistenter baserade på RAG extraherar automatiskt hänvisningar till relevanta arbeten, data från öppna databaser (till exempel statistik från internationella rapporter) och till och med utkast till översättningar, vilket gör att författare kan fokusera på den analytiska delen av arbetet. Sådana verktyg finner tillämpning i media, akademiska kretsar, vid förberedelse av litteraturöversikter med mera.
  • Företagskunskaper och dokumentsökning. I många organisationer lagras en betydande mängd värdefull information i form av textdokument: reglemente, manualer, rapporter, korrespondens, loggfiler. RAG ger ett sätt för interaktiv sökning i sådana ostrukturerade data med hjälp av språk. En anställd kan ställa en fråga («Vad sägs om semesterpolicyn för distansarbetare?») — och modellen hittar den relevanta sektionen i det interna dokumentet, citerar den och formulerar ett sammanfattande svar[1]. Detta ökar arbetseffektiviteten: nya anställda hittar snabbare svar på sina frågor, supportavdelningar får ett verktyg för snabb sökning i incidentdatabasen, och ledningen ett sätt att analysera ackumulerade textdata. Stora IT-företag implementerar redan RAG-ansatsen i företagslösningar: teknologier från Microsoft, Google, IBM, AWS med flera integrerar LLM med sökning i organisationsdata[1].

Perspektiv och fortsatt forskning

Metoden Retrieval-Augmented Generation utvecklas aktivt, och under de närmaste åren förväntas en fortsatt utvidgning av dess möjligheter. En riktning är multimodal RAG, där den externa informationen inte bara kan bestå av texter, utan även bilder, ljud/video eller till och med sensordata. Experiment visar lovande resultat med att kombinera språkmodeller med sökning i visuella databaser, vilket exempelvis gör det möjligt att svara på frågor om innehållet i bilder eller video med stöd av beskrivningar och relaterade texter[2]. En annan viktig riktning är simultant användande av flera kunskapskällor: framtida RAG-system kommer att kunna kombinera data från olika baser (till exempel Wikipedia, specialiserade uppslagsverk, användarens personliga anteckningar) och syntetisera svar som tar hänsyn till all denna heterogena information[2].

Inför forskare står också uppgiften att öka RAG:s tillförlitlighet och säkerhet. Det är nödvändigt att minimera risken för spridning av fördomar och fel som kan finnas i externa data, samt att garantera svarens konsistens. Teamet bakom den ursprungliga RAG hade redan vidtagit åtgärder i denna riktning — till exempel genom att begränsa den initiala kunskapsbasen till enbart Wikipedia-artiklar som en relativt kontrollerad och neutral källa[2]. I framtiden planeras skapandet av speciella filter och metoder för dokumenturval, så att modellen får en garanterat kvalitativ kontext. Dessutom fokuserar forskning på att förbättra själva sökmekanism: nya algoritmer för rangordning och semantisk indexering utvecklas, vilka kan förstå frågor mer exakt och hitta relevant information även vid komplexa eller otydliga formuleringar.

Slutligen är det av intresse med en djupare integration av RAG med språkmodellernas träningsprocess. Det dyker redan upp ansatser där retrieval-mekanismer används inte bara i inferensfasen, utan även vid förträning eller fine-tuning av LLM[10]. Detta kan ytterligare öka modellernas faktatrogenhet och minska deras beroende av kunskaper som statiskt lagrats i vikterna. Enligt översikter publicerade 2024 ser forskarsamhället stora möjligheter i utvecklingen av RAG-ekosystemet: från optimering av infrastruktur (snabbare sökning, minskade minneskostnader) till skapandet av standardiserade benchmark för utvärdering av RAG-systems kvalitet[3]. Allt detta syftar till att göra generativa modeller mer exakta, mångsidiga och säkra vid arbete med ständigt uppdaterade externa kunskaper, vilket är ett nyckelsteg på vägen mot tillförlitlig artificiell intelligens av nästa generation.

Länkar

  • Vad är Retrieval-Augmented Generation (RAG) — NVIDIA:s blogg
  • Retrieval-Augmented Generation for Large Language Models: A Survey — vetenskaplig översikt på arXiv
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — den ursprungliga artikeln om RAG
  • Vad är RAG? Tillämpning, begränsningar och utmaningar — Bright Data:s blogg

Litteratur

  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2004.04906.
  • Guu, K. et al. (2020). REALM: Retrieval-Augmented Language Model Pre-Training. arXiv:2002.08909.
  • Qu, Y. et al. (2020). RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2010.08191.
  • Izacard, G.; Grave, E. (2021). Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering. arXiv:2007.01282.
  • Borgeaud, S. et al. (2022). Improving Language Models by Retrieving from Trillions of Tokens. arXiv:2112.04426.
  • Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
  • Mialon, G. et al. (2023). Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997.
  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Yang, Z. et al. (2023). Re-ViLM: Retrieval-Augmented Visual Language Model for Zero and Few-Shot Image Captioning. arXiv:2302.04858.
  • Barnett, S. et al. (2024). Seven Failure Points When Engineering a Retrieval Augmented Generation System. arXiv:2401.05856.
  • Wang, Y. et al. (2024). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
  • Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.

Noter

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 «What Is Retrieval-Augmented Generation aka RAG». NVIDIA Blogs. [1]
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 «Facebook open-sources RAG, an AI model that retrieves documents to answer questions». VentureBeat. [2]
  3. 3.0 3.1 3.2 3.3 Mialon, Grégoire et al. «Retrieval-Augmented Generation for Large Language Models: A Survey». arXiv. [3]
  4. 4.0 4.1 4.2 «Applied AI Software Engineering: RAG». Pragmatic Engineer. [4]
  5. 5.0 5.1 5.2 Lewis, Patrick et al. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv. [5]
  6. 6.0 6.1 6.2 6.3 6.4 6.5 6.6 «How RAG Makes LLMs Smarter». Exxact Blog. [6]
  7. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv. [7]
  8. 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 «What Is RAG? Use Cases, Limitations, and Challenges». Bright Data Blog. [8]
  9. 9.0 9.1 9.2 Lewis, Patrick et al. «Seven Failure Points When Engineering a Retrieval Augmented Generation System». arXiv. [9]
  10. «Генерация, дополненная поиском». Википедия. [10]