Connect with us

Artificiell intelligens

En djupdykning i Retrieval-Augmented Generation i LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

Tänk dig att du är en analytiker och har tillgång till en Large Language Model. Du är entusiastisk över de möjligheter det bringar till din arbetsflöde. Men sedan frågar du det om de senaste aktiekurserna eller den nuvarande inflationstakten, och det svarar med:

“Jag är ledsen, men jag kan inte tillhandahålla realtids- eller post-cutoff-data. Min senaste utbildningsdata går bara tillbaka till januari 2022.”

Large Language Model, för all deras språkliga kraft, saknar förmågan att greppa ‘nu‘. Och i den snabbt föränderliga världen, ‘nu‘ är allt.

Forskning har visat att stora förtränade språkmodeller (LLM) också är lagringar av faktisk kunskap.

De har tränats på så mycket data att de har absorberat en hel del fakta och siffror. När de finjusteras kan de uppnå remarkabla resultat på en mängd olika NLP-uppgifter.

Men här är catchen: deras förmåga att komma åt och manipulera denna lagrade kunskap är, ibland inte perfekt. Särskilt när uppgiften i fråga är kunskapsintensiv, kan dessa modeller ligga efter mer specialiserade arkitekturer. Det är som att ha ett bibliotek med alla böcker i världen, men ingen katalog för att hitta vad du behöver.

OpenAI’s ChatGPT Får en Bläddringsuppgradering

OpenAI’s nyliga tillkännagivande om ChatGPT’s bläddringsförmåga är ett betydande steg i riktning mot Retrieval-Augmented Generation (RAG). Med ChatGPT som nu kan söka på internet efter aktuella och auktoritativa uppgifter, speglar det RAG-ansatsen att dynamiskt hämta data från externa källor för att tillhandahålla berikade svar.

https://twitter.com/OpenAI/status/1707077710047216095

Aktuellt tillgängligt för Plus- och Enterprise-användare, planerar OpenAI att rulla ut den här funktionen till alla användare snart. Användare kan aktivera det genom att välja ‘Bläddra med Bing’ under GPT-4-alternativet.

Chatgpt Ny Bläddringsfunktion

Chatgpt Ny ‘Bing’ Bläddringsfunktion

 Promptteknik är Effektiv men Otillräcklig

Prompten fungerar som grinden till LLM’s kunskap. Den vägleder modellen, som ger en riktning för svaret. Men att skapa en effektiv prompt är inte den fullständiga lösningen för att få vad du vill från en LLM. Ändå, låt oss gå igenom några bra metoder att överväga när du skriver en prompt:

  1. Klarhet: En väldefinierad prompt eliminerar tvetydighet. Den bör vara rak och tydlig, säkerställande att modellen förstår användarens avsikt. Denna klarhet översätter ofta till mer sammanhängande och relevanta svar.
  2. Sammanhang: Särskilt för omfattande indata, kan instruktionens placering påverka utdata. Till exempel kan flytta instruktionen till slutet av en lång prompt ofta ge bättre resultat.
  3. Precision i Instruktion: Kraften i frågan, ofta uttryckt genom “vem, vad, var, när, varför, hur”-ramverket, kan vägleda modellen mot ett mer fokuserat svar. Dessutom kan specificering av önskat utdataformat eller storlek ytterligare förfinansiera modellens utdata.
  4. Hantering av Osäkerhet: Det är viktigt att vägleda modellen på hur den ska svara när den är osäker. Till exempel, instruera modellen att svara med “Jag vet inte” när den är osäker kan förhindra att den genererar felaktiga eller “hallucinerade” svar.
  5. Steg-för-Steg-Tänkande: För komplexa instruktioner, vägleda modellen att tänka systematiskt eller bryta ner uppgiften i underuppgifter kan leda till mer omfattande och precisa utdata.

I relation till promptens betydelse i att vägleda ChatGPT, kan en omfattande artikel hittas i en artikel på Unite.ai.

Utmaningar i Generativa AI-Modeller

Promptteknik innebär finjustering av direktiven som ges till din modell för att förbättra dess prestanda. Det är ett mycket kostnadseffektivt sätt att förbättra din Generativa AI-applikations noggrannhet, som endast kräver mindre kodjusteringar. Medan promptteknik kan avsevärt förbättra utdata, är det viktigt att förstå de inbyggda begränsningarna hos stora språkmodeller (LLM). Två primära utmaningar är hallucinationer och kunskapsavgränsningar.

  • Hallucinationer: Detta refererar till tillfällen där modellen med säkerhet returnerar ett felaktigt eller fabricerat svar. Även om avancerade LLM har inbyggda mekanismer för att känna igen och undvika sådana utdata.
Hallucinationer i LLM

Hallucinationer i LLM

  • Kunskapsavgränsningar: Varje LLM-modell har en utbildningsslutdatum, efter vilket den är omedveten om händelser eller utveckling. Denna begränsning innebär att modellens kunskap är frusen vid den punkt då den senast tränades. Till exempel, en modell tränad upp till 2022 skulle inte känna till händelserna i 2023.
Kunskapsavgränsning i LLMS

Kunskapsavgränsning i LLM

Retrieval-augmenterad generation (RAG) erbjuder en lösning på dessa utmaningar. Den tillåter modeller att komma åt extern information, som mildrar problem med hallucinationer genom att tillhandahålla tillgång till proprietär eller domänspecifik data. För kunskapsavgränsningar kan RAG komma åt aktuella uppgifter utöver modellens träningsdatum, säkerställande att utdata är uppdaterat.

Det tillåter också LLM att dra in data från olika externa källor i realtid. Detta kan vara kunskapsbaser, databaser eller till och med den omfattande internet.

Introduktion till Retrieval-Augmented Generation

Retrieval-augmenterad generation (RAG) är ett ramverk, snarare än en specifik teknik, som möjliggör för stora språkmodeller att komma åt data de inte tränats på. Det finns flera sätt att implementera RAG, och det bästa valet beror på din specifika uppgift och datans natur.

RAG-ramverket opererar på ett strukturerat sätt:

Promptinmatning

Processen börjar med en användares inmatning eller prompt. Detta kan vara en fråga eller en uttalande som söker specifik information.

Återvinning från Externa Källor

Istället för att direkt generera ett svar baserat på sin utbildning, söker modellen, med hjälp av en återvinnare-komponent, igenom externa datakällor. Dessa källor kan sträcka sig från kunskapsbaser, databaser och dokumentarkiv till internet-tillgängliga data.

Förståelse av Återvinning

I sin essens speglar återvinning en sökoperation. Det handlar om att extrahera den mest relevanta informationen som svar på en användares inmatning. Denna process kan delas in i två faser:

  1. Indexering: Detta är utan tvekan den mest utmanande delen av hela RAG-resan, som är att indexera din kunskapsbas. Indexeringsprocessen kan i allmänhet delas in i två faser: Laddning och Delning. I verktyg som LangChain, kallas dessa processer “laddare” och “delare“. Laddare hämtar innehåll från olika källor, antingen webbsidor eller PDF:er. När de väl har hämtats, delar delarna sedan innehållet i mindre, bit-sized bitar, optimerade för inbäddning och sökning.
  2. Sökning: Detta är handlingen att extrahera de mest relevanta kunskapsfragmenten baserat på en sökterm.

Medan det finns många sätt att närma sig återvinning, från enkel textmatchning till att använda sökmotorer som Google, moderna RAG-system förlitar sig på semantisk sökning. I hjärtat av semantisk sökning ligger konceptet med inbäddningar.

Inbäddningar är centrala för hur stora språkmodeller (LLM) förstår språk. När människor försöker artikulera hur de härleder mening från ord, cirkulerar förklaringen ofta tillbaka till inneboende förståelse. Djupt inom vår kognitiva struktur, känner vi igen att “barn” och “unge” är synonyma, eller att “röd” och “grön” båda betecknar färger.

Augmentering av Prompten

Den hämtade informationen kombineras sedan med den ursprungliga prompten, skapar en utökad eller utvidgad prompt. Denna utökade prompt tillhandahåller modellen med ytterligare sammanhang, som är särskilt värdefullt om data är domänspecifik eller inte är en del av modellens ursprungliga träningskorpus.

Generering av Slutförandet

Med den utökade prompten i hand, genererar modellen sedan ett slutförande eller svar. Detta svar är inte bara baserat på modellens utbildning, utan är också informerat av den mest relevanta och aktuella informationen som finns i återvinningskorpusen.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Arkitektur för den Första RAG LLM

Forskningsartikeln av Meta publicerad 2020 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” tillhandahåller en ingående titt på denna teknik. Retrieval-Augmented Generation-modellen kompletterar den traditionella genereringsprocessen med en extern återvinnings- eller sökmechanism. Detta tillåter modellen att hämta relevant information från stora datamängder, förbättrande dess förmåga att generera kontextuellt korrekta svar.

Här är hur det fungerar:

  1. Parametrisk Minne: Detta är din traditionella språkmodell, som en seq2seq-modell. Den har tränats på enorma mängder data och vet mycket.
  2. Icke-Parametrisk Minne: Tänk på det som en sökmotor. Det är ett tät vektorindex av, säg, Wikipedia, som kan nås med en neural återvinnare.

När de kombineras, skapar dessa två en exakt modell. RAG-modellen hämtar först relevant information från sitt icke-parametriska minne och använder sedan sin parametriska kunskap för att ge ett sammanhängande svar.

RAG ORIGNAL MODEL BY META

Original RAG Model By Meta

1. Tvåstegsprocess:

RAG LLM opererar i en tvåstegsprocess:

  • Återvinning: Modellen söker först efter relevanta dokument eller passager från en stor datamängd. Detta görs med en tät återvinningsmekanism, som använder inbäddningar för att representera både frågan och dokumenten. Inbäddningarna används sedan för att beräkna likhetspoäng, och de topprankade dokumenten hämtas.
  • Generering: Med de topp-k relevanta dokumenten i hand, kanaliseras de sedan till en sekvens-till-sekvens-generatör tillsammans med den ursprungliga frågan. Den genererar sedan det slutliga utdata, som hämtar sammanhang från både frågan och de hämtade dokumenten.

2. Tät Återvinning:

Traditionella återvinningsystem förlitar sig ofta på glesa representationer som TF-IDF. Men RAG LLM använder täta representationer, där både frågan och dokumenten bäddas in i kontinuerliga vektorrum. Detta tillåter mer nyanserade likhetsjämförelser, som fångar semantiska relationer utöver enkel nyckelordsmatchning.

3. Sekvens-till-Sekvens-Generering:

De hämtade dokumenten fungerar som ett utökat sammanhang för genereringsmodellen. Den modellen, ofta baserad på arkitekturer som Transformers, genererar sedan det slutliga utdata, säkerställande att det är sammanhängande och kontextuellt relevant.

Dokumentsökning

Dokumentindexering och Återvinning

För effektiv informationsåtervinning, särskilt från stora dokument, lagras data ofta i en vektor-databas. Varje bit av data eller dokument indexeras baserat på en inbäddningsvektor, som fångar den semantiska essensen av innehållet. Effektiv indexering säkerställer snabb återvinning av relevant information baserat på inmatningsprompten.

Vecktdatabaser

Vektordatabas

Källa: Redis

Vecktdatabaser, ibland kallade vektorkällor, är specialiserade databaser som är anpassade för att lagra och hämta vektordata. I området för AI och datavetenskap, är vektorer i princip listor av siffror som symboliserar punkter i ett multi-dimensionellt rum. Till skillnad från traditionella databaser, som är mer anpassade för tabelldata, lyser vektordatabaser i hantering av data som naturligt passar en vektorformat, som inbäddningar från AI-modeller.

Några noterbara vektordatabaser inkluderar Annoy, Faiss av Meta, Milvus och Pinecone. Dessa databaser är avgörande i AI-applikationer, som hjälper till med uppgifter som rekommendationssystem till bildsökning. Plattformar som AWS erbjuder också tjänster anpassade för vektordatabasbehov, som Amazon OpenSearch Service och Amazon RDS för PostgreSQL. Dessa tjänster är optimerade för specifika användningsfall, säkerställande effektiv indexering och frågesättning.

Chunkning för Relevans

Med tanke på att många dokument kan vara omfattande, används en teknik som kallas “chunkning”. Detta innebär att bryta ner stora dokument i mindre, semantiskt sammanhängande bitar. Dessa bitar indexeras sedan och hämtas vid behov, säkerställande att de mest relevanta delarna av ett dokument används för promptutökning.

Sammanhangsfönsteröverväganden

Varje LLM opererar inom ett sammanhangsfönster, som i princip är den maximala mängden information den kan överväga på en gång. Om externa datakällor tillhandahåller information som överskrider detta fönster, måste den brytas ner i mindre bitar som passar inom modellens sammanhangsfönster.

Fördelar med Användning av Retrieval-Augmented Generation

  1. Förbättrad Noggrannhet: Genom att utnyttja externa datakällor kan RAG LLM generera svar som inte bara baseras på dess utbildningsdata, utan också informeras av den mest relevanta och aktuella informationen som finns i återvinningskorpusen.
  2. Övervinning av Kunskapsluckor: RAG hanterar effektivt de inbyggda kunskapsbegränsningarna hos LLM, antingen på grund av modellens utbildningsslutdatum eller avsaknaden av domänspecifik data i dess utbildningskorpus.
  3. Anpassningsförmåga: RAG kan integreras med olika externa datakällor, från proprietära databaser inom en organisation till offentligt tillgängliga internetdata. Detta gör det anpassningsbart till en mängd olika applikationer och branscher.
  4. Minskning av Hallucinationer: En av utmaningarna med LLM är potentialen för “hallucinationer” eller generering av faktiskt felaktig eller fabricerad information. Genom att tillhandahålla realtidsdatakontext kan RAG avsevärt minska möjligheterna till sådana utdata.
  5. Skalbarhet: En av de primära fördelarna med RAG LLM är dess förmåga att skala. Genom att separera återvinnings- och genereringsprocesserna kan modellen effektivt hantera stora datamängder, vilket gör den lämplig för realvärldstillämpningar där data är riklig.

Utmaningar och Överväganden

  • Beräkningsmässig Overhead: De två stegsprocessen kan vara beräkningsmässigt intensiv, särskilt när man hanterar stora datamängder.
  • Databeroende: Kvaliteten på de hämtade dokumenten påverkar direkt genereringskvaliteten. Därför är det avgörande att ha en omfattande och välkuraterad återvinningskorpus.

Slutsats

Genom att integrera återvinnings- och genereringsprocesser erbjuder Retrieval-Augmented Generation en robust lösning på kunskapsintensiva uppgifter, säkerställande utdata som är både informerade och kontextuellt relevanta.

Det verkliga löftet med RAG ligger i dess potential för realvärldstillämpningar. För sektorer som hälsovård, där tidig och korrekt information kan vara avgörande, erbjuder RAG förmågan att extrahera och generera insikter från omfattande medicinsk litteratur smidigt. I finansvärlden, där marknaderna utvecklas från minut till minut, kan RAG tillhandahålla realtidsdata-drivna insikter, som hjälper till informerat beslutsfattande. Dessutom, inom akademi och forskning, kan forskare utnyttja RAG för att skanna omfattande informationsarkiv, vilket gör litteraturgenomgångar och dataanalys mer effektiv.

Jag har under de senaste fem åren dykt ner i den fascinerande världen av Machine Learning och Deep Learning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruutvecklingsprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också dragit mig mot Natural Language Processing, ett område som jag är angelägen om att utforska vidare.