AI-modeller og platforme
En dybdeindgang i Retrieval-Augmented Generation i LLM
Forestil dig, at du er en analytiker, og du har adgang til et stort sprogmodel. Du er begejstret for de muligheder, det bringer til din arbejdsproces. Men sÃĨ spÃļrger du det om de seneste aktiekurser eller den nuvÃĶrende inflationsrate, og det rammer dig med:
âUndskyld, men jeg kan ikke give realtids- eller post-cutoff-data. Mit sidste trÃĶningsdata er kun op til januar 2022.â
Stort sprogmodel, for alt deres lingvistiske kraft, manglede evnen til at forstÃĨ ânuâ. Og i en hurtig verden er ânuâ alt.
Forskning har vist, at store fortrÃĶnede sprogmodeller (LLM) ogsÃĨ er lagre af faktuel viden.
De er blevet trÃĶnet pÃĨ sÃĨ meget data, at de har absorberet en masse fakta og tal. NÃĨr de er finjusteret, kan de opnÃĨ bemÃĶrkelsesvÃĶrdige resultater pÃĨ en rÃĶkke NLP-opgaver.
Men her er fÃĶlden: deres evne til at fÃĨ adgang til og manipulere denne gemte viden er, pÃĨ visse tidspunkter, ikke perfekt. IsÃĶr nÃĨr opgaven er viden-intensiv, kan disse modeller vÃĶre langsomme i forhold til mere specialiserede arkitekturer. Det er som at have en bibliotek med alle bÃļger i verden, men ingen katalog til at finde, hvad du sÃļger.
OpenAIâs ChatGPT fÃĨr en browsing-opgradering
OpenAIâs seneste meddelelse om ChatGPTâs browsing-funktion er et betydeligt skridt i retning af Retrieval-Augmented Generation (RAG). Med ChatGPT, der nu kan gennemsÃļge internettet for aktuel og autoritativ information, spejler det RAG-tilgangen til dynamisk at hente data fra eksterne kilder for at give berigede svar.
https://twitter.com/OpenAI/status/1707077710047216095
Denne funktion er i Ãļjeblikket kun tilgÃĶngelig for Plus- og Enterprise-brugere, men OpenAI planlÃĶgger at rulle den ud til alle brugere snart. Brugere kan aktivere denne funktion ved at vÃĶlge âBrowse med Bingâ under GPT-4-indstillingen.
 Prompt engineering er effektiv, men utilstrÃĶkkelig
Promptâer fungerer som porten til LLMâs viden. De guider modellen og giver den en retning for svaret. Men at skabe en effektiv prompt er ikke den fuldstÃĶndige lÃļsning for at fÃĨ, hvad du vil have fra en LLM. Lad os alligevel gÃĨ igennem nogle gode praksis at overveje, nÃĨr du skriver en prompt:
- Klarhed: En veldefineret prompt eliminerer tvetydighed. Den skal vÃĶre ligetil, sÃĨ modellen forstÃĨr brugerens intention. Denne klarhed oversÃĶtter ofte til mere sammenhÃĶngende og relevante svar.
- Kontekst: IsÃĶr for omfattende input kan placeringen af instruktionen pÃĨvirke output. For eksempel kan flytning af instruktionen til slutningen af en lang prompt ofte give bedre resultater.
- PrÃĶcision i instruktion: Kraften af spÃļrgsmÃĨlet, ofte formidlet gennem âhvem, hvad, hvor, hvornÃĨr, hvorfor, hvordanâ-rammen, kan guide modellen mod et mere fokuseret svar. Desuden kan specificering af det Ãļnskede output-format eller stÃļrrelse yderligere forfine modellens output.
- HÃĨndtering af usikkerhed: Det er vigtigt at guide modellen pÃĨ, hvordan den skal svare, nÃĨr den er usikker. For eksempel kan instruktion om at svare med âJeg ved ikkeâ, nÃĨr den er usikker, forhindre den i at generere ukorrekte eller âhallucineredeâ svar.
- Trin-for-trin-tÃĶnkning: For komplekse instruktioner kan guidning af modellen til at tÃĶnke systematisk eller opdeling af opgaven i underopgaver kan fÃļre til mere omfattende og prÃĶcise output.
I forbindelse med promptâernes betydning i guidning af ChatGPT kan en omfattende artikel findes i en artikel pÃĨ Unite.ai.
Udfordringer i Generative AI-modeller
Prompt engineering indebÃĶrer finjustering af direktiverne givet til din model for at forbedre dens prÃĶstation. Det er en meget omkostningseffektiv mÃĨde at forbedre Generative AI-applikationens nÃļjagtighed, da det kun krÃĶver mindre kodejusteringer. Mens prompt engineering kan betydeligt forbedre output, er det vigtigt at forstÃĨ de indbyggede begrÃĶnsninger af store sprogmodeller (LLM). To primÃĶre udfordringer er hallucinationer og viden-afkortninger.
- Hallucinationer: Dette refererer til tilfÃĶlde, hvor modellen selvbevidst returnerer et forkert eller fabrikeret svar. Selvom avancerede LLM har indbyggede mekanismer til at genkende og undgÃĨ sÃĨdanne output, kan det stadig ske.
- VIDEN-afkortninger: Hvert LLM-model har en trÃĶningsafslutningsdato, efter hvilken det er uvidende om begivenheder eller udviklinger. Dette begrÃĶnsning betyder, at modellens viden er frosset pÃĨ tidspunktet for dens sidste trÃĶningsdato. For eksempel ville en model trÃĶnet op til 2022 ikke kende til begivenhederne i 2023.
Retrieval-augmenteret generation (RAG) tilbyder en lÃļsning pÃĨ disse udfordringer. Det giver mulighed for modeller at fÃĨ adgang til eksterne oplysninger, hvilket kan mindske hallucinationer ved at give adgang til proprietÃĶre eller domÃĶnespecifikke data. For viden-afkortninger kan RAG fÃĨ adgang til aktuel information ud over modellens trÃĶningsdato, hvilket sikrer, at output er opdateret.
Det giver ogsÃĨ mulighed for LLM at trÃĶkke data fra forskellige eksterne kilder i realtid. Dette kan vÃĶre videnbasen, databaser eller selv det store internettet.
Introduktion til Retrieval-Augmented Generation
Retrieval-augmenteret generation (RAG) er en ramme, snarere end en specifik teknologi, der giver store sprogmodeller mulighed for at fÃĨ adgang til data, de ikke er trÃĶnet pÃĨ. Der er flere mÃĨder at implementere RAG pÃĨ, og den bedste lÃļsning afhÃĶnger af din specifikke opgave og datans natur.
RAG-rammen fungerer pÃĨ en struktureret mÃĨde:
Prompt Input
Processen begynder med en brugers input eller prompt. Dette kan vÃĶre et spÃļrgsmÃĨl eller en udtalelse, der sÃļger specifik information.
Retrieval fra eksterne kilder
I stedet for at generere et svar direkte baseret pÃĨ sin trÃĶning, sÃļger modellen, med hjÃĶlp af en retriever-komponent, gennem eksterne datakilder. Disse kilder kan variere fra videnbasen, databaser og dokumentlager til internettilgÃĶngelige data.
ForstÃĨelse af retrieval
I sin kerne spejler retrieval en sÃļgeoperation. Det handler om at trÃĶkke det mest pertinente information i forhold til en brugers input. Denne proces kan deles op i to faser:
- Indexering: Det er uden tvivl den mest udfordrende del af hele RAG-rejsen, nemlig at indexere din videnbase. Indexeringsprocessen kan bredt deles op i to faser: Loading og Splitting. I vÃĶrktÃļjer som LangChain kaldes disse processer âloadereâ og âsplittersâ. Loadere henter indhold fra forskellige kilder, enten det er websteder eller PDFâer. NÃĨr det er hentet, splitter splitters derefter dette indhold op i smÃĨ, bidende stykker, der optimeres til indlejring og sÃļgning.
- Querying: Dette er handlingen af at trÃĶkke de mest relevante videnfragmenter baseret pÃĨ en sÃļgeord.
Selvom der er mange mÃĨder at tilgÃĨ retrieval pÃĨ, fra simpel tekstmatchning til brug af sÃļgemaskiner som Google (GOOGL ), moderne Retrieval-Augmented Generation (RAG)-systemer afhÃĶnger af semantisk sÃļgning. I hjertet af semantisk sÃļgning ligger begrebet om indlejring.
Indlejring er central for, hvordan store sprogmodeller (LLM) forstÃĨr sprog. NÃĨr mennesker forsÃļger at artikulere, hvordan de fÃĨr mening fra ord, cirkler forklaringen ofte tilbage til indre forstÃĨelse. Dybt inde i vores kognitive strukturer erkender vi, at âbarnâ og âungeâ er synonyme, eller at ârÃļdâ og âgrÃļnâ begge betegner farver.
Augmentering af prompt
Den hentede information kombineres derefter med den oprindelige prompt, hvilket skaber en augmenteret eller udvidet prompt. Denne augmenterede prompt giver modellen yderligere kontekst, hvilket er sÃĶrlig vÃĶrdifuldt, hvis data er domÃĶnespecifik eller ikke en del af modellens oprindelige trÃĶningskorpus.
Generering af afslutning
Med den augmenterede prompt i hÃĨnden genererer modellen derefter en afslutning eller svar. Dette svar er ikke kun baseret pÃĨ modellens trÃĶning, men ogsÃĨ informeret af den realtidsdata, der er hentet.
Arkitektur af den fÃļrste RAG LLM
Forskningsartiklen af Meta udgivet i 2020 âRetrieval-Augmented Generation for Knowledge-Intensive NLP Tasksâ giver en dybdegÃĨende indsigt i denne teknik. Retrieval-Augmented Generation-modellen udvider den traditionelle generationsproces med en ekstern sÃļge- eller hentemekanisme. Dette giver modellen mulighed for at trÃĶkke relevante oplysninger fra store datamÃĶngder, hvilket forbedrer dens evne til at generere kontekstligt prÃĶcise svar.
Her er, hvordan det fungerer:
- Parametrisk hukommelse: Dette er dit traditionelle sprogmodel, som en seq2seq-model. Det er blevet trÃĶnet pÃĨ store mÃĶngder data og ved meget.
- Ikke-parametrisk hukommelse: TÃĶnk pÃĨ dette som en sÃļgemaskine. Det er en tÃĶt vektorindeks af, sagen, Wikipedia, som kan tilgÃĨs ved hjÃĶlp af en neural henter.
NÃĨr disse to kombineres, skaber de en prÃĶcis model. RAG-modellen henter fÃļrst relevante oplysninger fra sin ikke-parametriske hukommelse og bruger derefter sin parametrisk viden til at give et sammenhÃĶngende svar.
1. To-trinsproces:
RAG LLM fungerer i en to-trinsproces:
- Henting: Modellen sÃļger fÃļrst efter relevante dokumenter eller passager fra en stor datamÃĶngde. Dette gÃļres ved hjÃĶlp af en tÃĶt hentemekanisme, der anvender indlejring til at reprÃĶsentere bÃĨde sÃļgningen og dokumenterne. Indlejringerne anvendes derefter til at beregne ligningskorer, og de top-rangerede dokumenter hentes.
- Generation: Med de top-k relevante dokumenter i hÃĨnden kanaliseres de derefter til en sekvens-til-sekvens-generator sammen med den oprindelige sÃļgning. Denne generator skaber derefter det endelige output, der trÃĶkker kontekst fra bÃĨde sÃļgningen og de hentede dokumenter.
2. TÃĶt henting:
Traditionelle hentningssystemer afhÃĶnger ofte af sparske reprÃĶsentationer som TF-IDF. RAG LLM anvender dog tÃĶtte reprÃĶsentationer, hvor bÃĨde sÃļgningen og dokumenterne indlejres i kontinuerte vektorrum. Dette giver mulighed for mere nuancerede ligningskomparationer, der fanger semantiske relationer ud over blot nÃļgleordsmatchning.
3. Sekvens-til-sekvens-generation:
De hentede dokumenter fungerer som en udvidet kontekst for generationsmodellen. Denne model, ofte baseret pÃĨ arkitekturer som Transformers, genererer derefter det endelige output, sikrer, at det er sammenhÃĶngende og kontekstligt relevant.
DokumentsÃļgning
Dokumentindexering og henting
For effektiv informationshenting, isÃĶr fra store dokumenter, gemmes data ofte i en vektor-database. Hver data eller dokument indekseres baseret pÃĨ en indlejring, der fanger den semantiske essens af indholdet. Effektiv indeksering sikrer hurtig henting af relevante oplysninger baseret pÃĨ brugerens input.
VEKTOR-databaser

Kilde: Redis
VEKTOR-databaser, undertiden kaldet vektor-lagring, er specialiserede databaser, der er dygtige til at gemme og hente vektor-data. I omrÃĨdet af AI og datalogi er vektorer essentiellement lister af tal, der reprÃĶsenterer punkter i et multi-dimensionelt rum. I modsÃĶtning til traditionelle databaser, der er mere tilpasset tabel-data, skinner vektor-databaser i hÃĨndtering af data, der naturligt passer en vektor-format, som indlejring fra AI-modeller.
Nogle bemÃĶrkelsesvÃĶrdige vektor-databaser inkluderer Annoy, Faiss af Meta, Milvus og Pinecone. Disse databaser er afgÃļrende i AI-applikationer, der hjÃĶlper med opgaver fra anbefalingssystemer til billedsÃļgning. Platforme som AWS tilbyder ogsÃĨ tjenester tilpasset vektor-database-behov, som Amazon (AMZN ) OpenSearch Service og Amazon RDS for PostgreSQL. Disse tjenester er optimeret til bestemte brugsomrÃĨder, hvilket sikrer effektiv indeksering og sÃļgning.
Chunking for relevans
Givet, at mange dokumenter kan vÃĶre omfattende, anvendes en teknik kaldet âchunkingâ ofte. Dette indebÃĶrer at opdele store dokumenter i mindre, semantisk sammenhÃĶngende stykker. Disse stykker indekseres og hentes derefter efter behov, hvilket sikrer, at de mest relevante dele af et dokument anvendes til prompt-augmentering.
Kontekstvindue-overvejelser
Hvert LLM fungerer inden for et kontekstvindue, der essentiellement er den maksimale mÃĶngde information, det kan overveje pÃĨ ÃĐn gang. Hvis eksterne datakilder giver information, der overstiger dette vindue, skal det opdeles i mindre stykker, der passer inden for modellens kontekstvindue.
Fordele ved at anvende Retrieval-Augmented Generation
- Forbedret nÃļjagtighed: Ved at anvende eksterne datakilder kan RAG LLM generere svar, der ikke kun er baseret pÃĨ dens trÃĶningsdata, men ogsÃĨ informeret af de mest relevante og opdaterede oplysninger tilgÃĶngelige i hentningskorpus.
- Overvindelse af viden-lukker: RAG lÃļser effektivt de indbyggede videnbegrÃĶnsninger af LLM, enten det skyldes modellens trÃĶningsafkortning eller manglen pÃĨ domÃĶnespecifik data i dens trÃĶningskorpus.
- Flxibilitet: RAG kan integreres med forskellige eksterne datakilder, fra interne databasesystemer til offentligt tilgÃĶngelige internettet-data. Dette gÃļr det tilpasningsdygtigt til en bred vifte af applikationer og brancher.
- Reduktion af hallucinationer: En af udfordringerne med LLM er muligheden for âhallucinationerâ eller generation af faktisk forkert eller fabrikeret information. Ved at give realtidskontekst kan RAG betydeligt reducere chancerne for sÃĨdanne output.
- Skalbarhed: En af de primÃĶre fordele ved RAG LLM er dens evne til at skale. Ved at separere hentnings- og generationsprocesser kan modellen effektivt hÃĨndtere store datamÃĶngder, hvilket gÃļr den egnet til virkelige applikationer, hvor data er overflod.
Udfordringer og overvejelser
- Computations-overhead: To-trinsprocessen kan vÃĶre computations-intensiv, isÃĶr nÃĨr der hÃĨndteres store datamÃĶngder.
- Data-afhÃĶngighed: Kvaliteten af de hentede dokumenter har direkte indvirkning pÃĨ generationskvaliteten. Derfor er det afgÃļrende at have en omfattende og velunderholdt hentningskorpus.
Konklusion
Ved at integrere hentnings- og generationsprocesser tilbyder Retrieval-Augmented Generation en robust lÃļsning pÃĨ viden-intensivt arbejde, sikrer output, der er bÃĨde informeret og kontekstligt relevant.
Det virkelige lÃļfte i RAG ligger i dets potentiale for virkelige applikationer. For sektorer som sundhedspleje, hvor tidlige og prÃĶcise oplysninger kan vÃĶre afgÃļrende, tilbyder RAG mulighed for at trÃĶkke og generere indsigt fra store medicinske litteratur uden besvÃĶr. I finansverdenen, hvor markeder udvikler sig fra minut til minut, kan RAG give realtidsdata-drevne indsigt, hvilket hjÃĶlper med at trÃĶffe informerede beslutninger. Desuden kan forskere og studerende anvende RAG til at gennemsÃļge store informationslager, hvilket gÃļr litteraturgennemgang og dataanalyse mere effektiv.

















