AI-modeller och plattformar

En djupdykning i Retrieval-Augmented Generation i LLM

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Tänk dig att du är en analytiker och har tillgång till en stor språkmodell. Du är entusiastisk över de möjligheter den medför för din arbetsflöde. Men sedan frågar du den om de senaste aktiekurserna eller den nuvarande inflationstakten, och den svarar med:
“I’m sorry, but I cannot provide real-time or post-cutoff data. My last training data only goes up to januari 2022.”
Stora språkmodeller, för all deras språkliga kraft, saknar förmågan att greppa “nu”. Och i den snabbt föränderliga världen är “nu” 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 många fakta och siffror. När de finjusteras kan de uppnå remarkabla resultat på en mängd olika NLP-uppgifter.

Men här är haken: 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 världens böcker, men ingen katalog för att hitta vad du behöver.

OpenAI’s ChatGPT Gets a Browsing Upgrade

OpenAI’s nyliga tillkännagivande om ChatGPT’s bläddringsfunktion ä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 ge berikade svar.

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

För närvarande tillgänglig för Plus- och Enterprise-användare planerar OpenAI att snart lansera den här funktionen till alla användare. Användare kan aktivera den genom att välja “Browse with Bing” under GPT-4-alternativet.

Chatgpt New Browsing Feature

Chatgpt New ‘Bing’ Browsing Feature

Promptteknik är effektiv men otillräcklig

Prompten fungerar som grinden till LLM:s kunskap. Den vägleder modellen och 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 säker på att modellen förstår användarens avsikt. Denna klarhet översätts 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 utdatormat 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 kan instruktionen att svara med “Jag vet inte” när den är osäker förhindra att den genererar felaktiga eller “hallucinerade” svar.
5. Steg-för-steg-tänkande: För komplexa instruktioner kan vägledning av modellen att tänka systematiskt eller bryta ner uppgiften i underuppgifter 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 inneboende begränsningarna hos stora språkmodeller (LLM). Två primära utmaningar är hallucinationer och kunskapsavgränsningar.

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

Hallucinations in LLMs

Hallucinations in LLM

* Kunskapsavgränsningar: Varje LLM-modell har en träningsdatum, 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 skulle en modell tränad upp till 2022 inte känna till händelserna 2023.

Knowledge cut-off in LLMS

Knowledge cut-off in LLM

Retrieval-augmented generation (RAG) erbjuder en lösning på dessa utmaningar. Den tillåter modeller att komma åt extern information, vilket mildrar problemen med hallucinationer genom att ge tillgång till proprietär eller domänspecifik data. För kunskapsavgränsningar kan RAG komma åt aktuell information utöver modellens träningsdatum, vilket säkerställer 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 stora mängden internet.

Introduktion till Retrieval-Augmented Generation

Retrieval-augmented generation (RAG) är ett ramverk, snarare än en specifik teknologi, som möjliggör för stora språkmodeller att komma åt data som 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 fungerar 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

I stället för att direkt generera ett svar baserat på sin träningsdata, söker modellen, med hjälp av en återvinningskomponent, igenom externa datakällor. Dessa källor kan sträcka sig från kunskapsbaser, databaser och dokumentarkiv till internet-tillgänglig 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-filer. När innehållet har hämtats delar delarna sedan innehållet i mindre, bit-sized bitar, optimerar dem 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 (GOOGL ), förlitar sig moderna RAG-system på semantisk sökning. I hjärtat av semantisk sökning ligger begreppet 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 förklara hur de härleder mening från ord, cirkulerar förklaringen ofta tillbaka till en inneboende förståelse. Djupt inom våra kognitiva strukturer känner vi igen att “barn” och “unge” är synonyma, eller att “röd” och “grön” båda betecknar färger.

Utökning av prompten

Den återvunna informationen kombineras sedan med den ursprungliga prompten, skapar en utökad eller expanderad prompt. Denna utökade prompt ger modellen ytterligare sammanhang, vilket är särskilt värdefullt om data är domänspecifik eller inte 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 träningsdata, utan är också informerat av den realtidsdata som hämtats.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Arkitektur för den första RAG LLM

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

Här är hur det fungerar:

1. Parametrisk minne: Detta är din traditionella språkmodell, som en sekvens-till-sekvens-modell. Den har tränats på stora mängder data och vet mycket.
2. Icke-parametrisk minne: Tänk på detta som en sökmotor. Det är en 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 fungerar 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 bäst rankade dokumenten hämtas.
* Generering: Med de bästa relevanta dokumenten i hand, kanaliseras de sedan till en sekvens-till-sekvens-generatör tillsammans med den ursprungliga frågan. Generatoren skapar sedan den slutliga utdatan, som är informerad av både frågan och de hämtade dokumenten.

2. Tät återvinning:

Traditionella återvinningssystem förlitar sig ofta på glesa representationer som TF-IDF. RAG LLM använder dock tät representation, där både frågan och dokumenten inbäddas 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. Denna modell, ofta baserad på arkitekturer som Transformers, genererar sedan den slutliga utdatan, som ä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 datastycke 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å användarens inmatning.

VEKTORDATABASER

Vector Database

Källa: Redis

Vektordatabaser, ibland kallade vektorlagring, är specialiserade databaser som är anpassade för att lagra och hämta vektordata. I området AI och datavetenskap är vektorer i princip listor med tal som symboliserar punkter i ett multi-dimensionellt rum. Till skillnad från traditionella databaser, som är mer anpassade för tabelldata, utmärker sig vektordatabaser i hantering av data som naturligt passar ett 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, bildsökning och mer. Plattformar som AWS erbjuder också tjänster anpassade för vektordatabasbehov, som Amazon (AMZN ) OpenSearch Service och Amazon RDS för PostgreSQL. Dessa tjänster är optimerade för specifika användningsfall, som säkerställer effektiv indexering och frågor.

Chunkning för relevans

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

Kontextfönsteröverväganden

Varje LLM fungerar inom ett kontextfönster, som i princip är den maximala mängden information den kan överväga samtidigt. Om externa datakällor tillhandahåller information som överskrider detta fönster, måste den brytas ner i mindre chunkar som passar inom modellens kontextfönster.

Fördelar med att använda 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 träningsdata, utan också är informerade av den mest relevanta och uppdaterade informationen som finns i återvinningskorpusen.
  2. Övervinning av kunskapsluckor: RAG hanterar effektivt de inneboende kunskapsbegränsningarna hos LLM, antingen på grund av modellens träningsavgränsning eller avsaknaden av domänspecifik data i dess träningskorpus.
  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 tillämpningar 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 chanserna för sådana utdata.
  5. Skalbarhet: En av de primära fördelarna med RAG LLM är dess förmåga att skalas. Genom att separera återvinning och genereringsprocesser 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äkningsbörda: Den tvåstegsprocessen kan vara beräkningsintensiv, särskilt när man hanterar stora datamängder.
  • Databeroende: Kvaliteten på de hämtade dokumenten påverkar direkt generationskvaliteten. Därför är det avgörande att ha en omfattande och välkuraterad återvinningskorpus.

Slutsats

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

Det verkliga löftet med RAG ligger i dess potentiella 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 stora medicinska litteraturer utan ansträngning. I finansvärlden, där marknaderna utvecklas från minut till minut, kan RAG tillhandahålla realtidsdata-drivna insikter, vilket underlättar informerat beslutsfattande. Dessutom kan forskare i akademin och forskning utnyttja RAG för att söka igenom stora informationsarkiv, vilket gör litteraturgranskning och dataanalys mer effektiv.

Jag har tillbringat de senaste fem åren med att dyka djupt in i den fascinerande världen av Maskinlärning och Djupinlärning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också lett mig mot Naturlig Språkbehandling, ett område som jag är angelägen om att utforska vidare.