AI-modeller og plattformer

En dyptgÃĨende analyse av Retrieval-Augmented Generation i LLM

mm
Legg til Unite.AI blant dine foretrukne kilder pÃĨ Google

Forestillingen er at du er en analytiker, og du har tilgang til et stort sprÃĨkmodell. Du er spennende pÃĨ mulighetene det bringer til arbeidsflyten din. Men sÃĨ spÃļr du det om de siste aksjeprisene eller den nÃĨvÃĶrende inflasjonsraten, og det slÃĨr deg med:

“Jeg er dessverre ikke i stand til ÃĨ gi informasjon om sanntid eller etter kutt-av dato. Min siste treningsdata er bare opp til januar 2022.”

Store sprÃĨkmodeller, for all deres sprÃĨklige kraft, mangler evnen til ÃĨ forstÃĨ ‘nÃĨ‘. Og i en rask verden er ‘nÃĨ‘ alt.

Forskning har vist at store forhÃĨnds-trente sprÃĨkmodeller (LLM) ogsÃĨ er lagre av faktisk kunnskap.

De har blitt trenet pÃĨ sÃĨ mye data at de har absorbert mange fakta og tall. NÃĨr de finjusteres, kan de oppnÃĨ bemerkelsesverdige resultater pÃĨ en rekke NLP-oppdrag.

Men her er fangen: deres evne til ÃĨ fÃĨ tilgang til og manipulere denne lagrede kunnskapen er, av og til, ikke perfekt. Spesielt nÃĨr oppgaven er kunnskapsintensiv, kan disse modellene ligge bak mer spesialiserte arkitekturer. Det er som ÃĨ ha en bibliotek med alle bÃļkene i verden, men ingen katalog for ÃĨ finne det du trenger.

OpenAI’s ChatGPT FÃĨr en Browsing-oppgradering

OpenAI’s nylige annonsering om ChatGPT’s browsing-funksjon er et betydelig skritt i retning av Retrieval-Augmented Generation (RAG). Med ChatGPT nÃĨ i stand til ÃĨ sÃļke pÃĨ internettet etter nÃĨvÃĶrende og autoritative informasjon, speiler det RAG-tilnÃĶrmingen til ÃĨ dynamisk hente data fra eksterne kilder for ÃĨ gi berikede svar.

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

Aktuelt tilgjengelig for Plus- og Bedriftsbrukere, planlegger OpenAI ÃĨ rulle ut denne funksjonen til alle brukere snart. Brukere kan aktivere dette ved ÃĨ velge ‘Browse with Bing’ under GPT-4-opsjonen.

Chatgpt Ny Browsing-funksjon

Chatgpt Ny ‘Bing’ Browsing-funksjon

 Prompt Engineering er Effektivt, men Utilstrekkelig

Promptene tjener som inngangen til LLM’s kunnskap. De guider modellen og gir en retning for svaret. Men ÃĨ lage en effektiv prompt er ikke den fullstendige lÃļsningen for ÃĨ fÃĨ det du vil ha fra en LLM. Likevel, la oss gÃĨ gjennom noen gode praksis ÃĨ vurdere nÃĨr du skriver en prompt:

  1. Klarhet: En godt definert prompt eliminerer tvetydighet. Den bÃļr vÃĶre rett frem, sikre at modellen forstÃĨr brukerens intensjon. Denne klarheten oversettes ofte til mer kohesive og relevante svar.
  2. Kontekst: Spesielt for omfattende inndata, kan plasseringen av instruksjonen pÃĨvirke utdata. For eksempel kan flytting av instruksjonen til slutten av en lang prompt ofte gi bedre resultater.
  3. Presisjon i Instruksjon: Kraften i spÃļrsmÃĨlet, ofte overfÃļrt gjennom “hvem, hva, hvor, nÃĨr, hvorfor, hvordan”-rammeverket, kan guide modellen mot et mer fokusert svar. I tillegg kan spesifisering av Ãļnsket utdataformat eller stÃļrrelse kan videre finjustere modellens utdata.
  4. HÃĨndtering av Usikkerhet: Det er essensielt ÃĨ guide modellen pÃĨ hvordan den skal svare nÃĨr den er usikker. For eksempel, ÃĨ instruere modellen til ÃĨ svare med “Jeg vet ikke” nÃĨr den er usikker, kan forhindre den fra ÃĨ generere uriktige eller “hallusinerte” svar.
  5. Steg-for-Steg Tenkning: For komplekse instruksjoner, ÃĨ guide modellen til ÃĨ tenke systematisk eller bryte oppgaven ned i underoppgaver, kan fÃļre til mer omfattende og nÃļyaktige utdata.

I forbindelse med viktigheten av prompter i ÃĨ guide ChatGPT, kan en omfattende artikkel finnes i en artikkel pÃĨ Unite.ai.

Utfordringer i Generative AI-modeller

Prompt-engineering innebÃĶrer finjustering av direktivene gitt til din modell for ÃĨ forbedre ytelsen. Det er en meget kostnadseffektiv mÃĨte ÃĨ Ãļke din Generative AI-applikasjons nÃļyaktighet, og krever bare mindre kodejusteringer. Mens prompt-engineering kan betydelig forbedre utdata, er det avgjÃļrende ÃĨ forstÃĨ de innebygde begrensningene i store sprÃĨkmodeller (LLM). To primÃĶre utfordringer er hallusinasjoner og kunnskaps-avkutt.

  • Hallusinasjoner: Dette refererer til tilfeller hvor modellen trygt returnerer et feil eller fabrikkert svar. Selv om avanserte LLM har innebygde mekanismer for ÃĨ gjenkjenne og unngÃĨ slike utdata.
Hallusinasjoner i LLMs

Hallusinasjoner i LLM

  • Kunnskaps-avkutt: Hver LLM-modell har en trenings-slutt-dato, etter hvilken den er uvitende om hendelser eller utviklinger. Denne begrensningen betyr at modellens kunnskap er frosset ved trenings-slutt-datoen. For eksempel ville en modell trenet opp til 2022 ikke vite hendelsene i 2023.
Kunnskaps-avkutt i LLMS

Kunnskaps-avkutt i LLM

Retrieval-augmentert generering (RAG) tilbyr en lÃļsning pÃĨ disse utfordringene. Den lar modellene fÃĨ tilgang til eksterne informasjon, og mildner problemene med hallusinasjoner ved ÃĨ gi tilgang til proprietÃĶr eller domenespesifikk data. For kunnskaps-avkutt kan RAG fÃĨ tilgang til nÃĨvÃĶrende informasjon utenfor modellens treningsdato, og sikre at utdata er oppdatert.

Det lar ogsÃĨ LLM trekke inn data fra forskjellige eksterne kilder i sanntid. Dette kan vÃĶre kunnskapsbaserte databaser eller hele internettets omfang.

Innledning til Retrieval-Augmented Generation

Retrieval-augmentert generering (RAG) er et rammeverk, snarere enn en spesifikk teknologi, som muliggjÃļr at store sprÃĨkmodeller kan trekke pÃĨ data de ikke ble trenet pÃĨ. Det finnes flere mÃĨter ÃĨ implementere RAG pÃĨ, og det beste valget avhenger av den spesifikke oppgaven og datans natur.

RAG-rammeverket opererer pÃĨ en strukturert mÃĨte:

Prompt Inndata

Prosessene begynner med en brukers inndata eller prompt. Dette kan vÃĶre et spÃļrsmÃĨl eller en uttalelse som sÃļker spesifik informasjon.

Retrieval fra Eksterne Kilder

I stedet for ÃĨ generere et svar direkte basert pÃĨ sin treningsdata, sÃļker modellen, med hjelp av en retriever-komponent, gjennom eksterne datakilder. Disse kildene kan variere fra kunnskapsbaserte databaser til internett-tilgjengelige data.

ForstÃĨelse av Retrieval

I essensen speiler retrieval en sÃļkeoperasjon. Det handler om ÃĨ trekke ut den mest pertinente informasjonen i respons til en brukers inndata. Denne prosessen kan deles inn i to stadier:

  1. Indexering: Dette er uten tvil den mest utfordrende delen av hele RAG-reisen. Indexeringsprosessen kan bredt deles inn i to faser: Lasting og Splitting. I verktÃļy som LangChain, kalles disse prosessene “loaders” og “splitters“. Loaders henter innhold fra forskjellige kilder, enten det er nettsider eller PDF-filer. NÃĨr innholdet er hentet, splitter splittene dette innholdet i smÃĨ, optimerte biter for innlejring og sÃļk.
  2. SpÃļrring: Dette er handlingen ÃĨ trekke ut de mest relevante kunnskapsfragmenter basert pÃĨ et sÃļkeord.

Mens det finnes mange mÃĨter ÃĨ nÃĶrme seg retrieval pÃĨ, fra enkel tekst-matching til ÃĨ bruke sÃļkemotorer som Google (GOOGL ), moderne Retrieval-Augmented Generation (RAG)-systemer avhenger av semantisk sÃļk. I hjertet av semantisk sÃļk ligger konseptet om innlejring.

Innlejring er sentral for hvordan store sprÃĨkmodeller (LLM) forstÃĨr sprÃĨk. NÃĨr mennesker prÃļver ÃĨ forklare hvordan de trekker mening fra ord, sirkler forklaringen ofte tilbake til innebygd forstÃĨelse. Dypt inne i vÃĨr kognitive struktur, gjenkjenner vi at “barn” og “unge” er synonyme, eller at “rÃļd” og “grÃļnn” begge betegner farger.

Augmentering av Prompten

Den hentede informasjonen kombineres deretter med den opprinnelige prompten, og skaper en augmentert eller utvidet prompt. Denne augmenterte prompten gir modellen ekstra kontekst, som er spesielt verdifull hvis data er domenespesifikk eller ikke en del av modellens opprinnelige treningskorpus.

Generering av FullfÃļringen

Med den augmenterte prompten i hÃĨnden, genererer modellen deretter en fullfÃļring eller respons. Denne responsen er ikke bare basert pÃĨ modellens treningsdata, men er ogsÃĨ informert av sanntidsdata hentet.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Arkitektur av den FÃļrste RAG LLM

Forskningsartikkelen av Meta publisert i 2020 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” gir en dyptgÃĨende analyse av denne teknikken. Retrieval-Augmented Generation-modellen utvider den tradisjonelle genereringsprosessen med en ekstern sÃļke-mekanisme. Dette lar modellen trekke relevante informasjon fra store datamengder, og forbedrer evnen til ÃĨ generere kontekstuelt nÃļyaktige svar.

Her er hvordan det fungerer:

  1. Parametrisk Minne: Dette er din tradisjonelle sprÃĨkmodell, som en seq2seq-modell. Den har blitt trenet pÃĨ store mengder data og vet mye.
  2. Ikke-Parametrisk Minne: Tenk pÃĨ dette som en sÃļkemotor. Det er et tett vektor-indeks av, for eksempel, Wikipedia, som kan aksesseres ved hjelp av en neural retriever.

NÃĨr disse to kombineres, skaper de en nÃļyaktig modell. RAG-modellen sÃļker fÃļrst etter relevante informasjon fra sitt ikke-parametriske minne, og deretter bruker det sin parametriske kunnskap til ÃĨ gi et kohesivt svar.

RAG ORIGNAL MODEL BY META

Original RAG Model By Meta

1. To-Trinns Prosess:

RAG LLM opererer i en to-trinns prosess:

  • Retrieval: Modellen sÃļker fÃļrst etter relevante dokumenter eller passasjer fra en stor datamengde. Dette gjÃļres ved hjelp av en tett sÃļke-mekanisme, som bruker innlejring til ÃĨ representere bÃĨde spÃļrringen og dokumentene. Innlejringene brukes deretter til ÃĨ beregne likhetspoeng, og de topp-rangerte dokumentene hentes.
  • Generering: Med de topp-k relevante dokumentene i hÃĨnden, kanaleres de deretter inn i en sekvens-til-sekvens generator sammen med den opprinnelige spÃļrringen. Denne generatoren skaper deretter det endelige utdata, og trekker kontekst fra bÃĨde spÃļrringen og de hentede dokumentene.

2. Tett SÃļk:

Tradisjonelle sÃļke-systemer avhenger ofte av sparse representasjoner som TF-IDF. RAG LLM bruker imidlertid tette representasjoner, hvor bÃĨde spÃļrringen og dokumentene innlejres i kontinuerlige vektor-rom. Dette lar for mer nyanserte likhets-sammenligninger, og fanger semantiske relasjoner utover bare nÃļkkelord-matching.

3. Sekvens-til-Sekvens Generering:

De hentede dokumentene fungerer som en utvidet kontekst for genereringsmodellen. Denne modellen, ofte basert pÃĨ arkitekturer som Transformers, genererer deretter det endelige utdata, og sikrer at det er kohesivt og kontekstuelt relevant.

Dokument SÃļk

Dokument Indexering og SÃļk

For effektiv informasjonssÃļk, spesielt fra store dokumenter, lagres data ofte i en vektor-database. Hver del av data eller dokument indexeres basert pÃĨ en innlejring-vektor, som fanger den semantiske essensen av innholdet. Effektiv indexering sikrer rask henting av relevante informasjon basert pÃĨ inndata-prompten.

VEktor-Databaser

VEktor-Database

Kilde: Redis

VEktor-databaser, noen ganger kalt vektor-lagring, er spesialiserte databaser som er dyktige til ÃĨ lagre og hente vektor-data. I omrÃĨdet AI og datavitenskap, er vektorer essensielt lister av tall som symboliserer punkter i et multi-dimensjonalt rom. I motsetning til tradisjonelle databaser, som er mer tilpasset tabell-formet data, skinner vektor-databaser i ÃĨ hÃĨndtere data som naturlig passer en vektor-format, som innlejring fra AI-modeller.

Noen bemerkelsesverdige vektor-databaser inkluderer Annoy, Faiss av Meta, Milvus, og Pinecone. Disse databasene er avgjÃļrende i AI-applikasjoner, og hjelper med oppgaver som anbefalings-systemer til bilde-sÃļk. Plattformer som AWS tilbyr ogsÃĨ tjenester tilpasset vektor-database-behov, som Amazon (AMZN ) OpenSearch Service og Amazon RDS for PostgreSQL. Disse tjenestene er optimert for bestemte brukstilfeller, og sikrer effektiv indexering og sÃļk.

Chunking for Relevans

Gitt at mange dokumenter kan vÃĶre omfattende, brukes en teknikk kalt “chunking” ofte. Dette innebÃĶrer ÃĨ bryte ned store dokumenter i mindre, semantisk kohesive biter. Disse bitene indexeres og hentes deretter etter behov, og sikrer at de mest relevante delene av et dokument brukes til prompt-forbedring.

Kontekst-Vindu-Overveielser

Hver LLM opererer innenfor et kontekst-vindu, som essensielt er den maksimale mengden informasjon det kan betrakte pÃĨ en gang. Hvis eksterne datakilder gir informasjon som overstiger dette vinduet, mÃĨ det brytes ned i mindre biter som passer innenfor modellens kontekst-vindu.

Fordelene med ÃĨ Bruke Retrieval-Augmented Generation

  1. Forbedret NÃļyaktighet: Ved ÃĨ utnytte eksterne datakilder, kan RAG LLM generere svar som ikke bare er basert pÃĨ sin treningsdata, men ogsÃĨ informert av de mest relevante og oppdaterte informasjonene tilgjengelige i sÃļke-korpuset.
  2. Overvinning av Kunnskaps-Gap: RAG lÃļser effektivt de innebygde kunnskaps-begrensningene i LLM, enten det skyldes modellens trenings-avkutt eller fravÃĶr av domene-spesifikk data i trenings-korpuset.
  3. Flaksibilitet: RAG kan integreres med forskjellige eksterne datakilder, fra proprietÃĶre databaser innen en organisasjon til offentlig tilgjengelige internett-data. Dette gjÃļr det tilpasset en rekke applikasjoner og industrier.
  4. Redusert Hallusinasjon: En av utfordringene med LLM er muligheten for “hallusinasjoner” eller generering av faktisk uriktige eller fabrikkerte informasjon. Ved ÃĨ gi sanntids-data-kontekst, kan RAG betydelig redusere sjansen for slike utdata.
  5. Skalabilitet: En av de primÃĶre fordelene med RAG LLM er dens evne til ÃĨ skaleres. Ved ÃĨ skille sÃļk- og genererings-prosessene, kan modellen effektivt hÃĨndtere store datamengder, og gjÃļr det egnet for virkelige applikasjoner hvor data er overveldende.

Utfordringer og Overveielser

  • Regnskapsmessig Overhead: To-trinns prosessen kan vÃĶre regnskapsmessig intensiv, spesielt nÃĨr det handler om store datamengder.
  • Data-Avhengighet: Kvaliteten pÃĨ de hentede dokumentene har direkte innvirkning pÃĨ genererings-kvaliteten. Derfor er det avgjÃļrende ÃĨ ha en omfattende og godt kuratert sÃļke-korpus.

Konklusjon

Ved ÃĨ integrere sÃļk- og genererings-prosesser, tilbyr Retrieval-Augmented Generation en robust lÃļsning pÃĨ kunnskaps-intensivt oppgaver, og sikrer utdata som er bÃĨde informert og kontekstuelt relevante.

Det virkelige lÃļftet i RAG ligger i dens potensielle virkelige applikasjoner. For sektorer som helse, hvor tidlig og nÃļyaktig informasjon kan vÃĶre avgjÃļrende, tilbyr RAG evnen til ÃĨ trekke ut og generere innsikt fra store medisinske litteratur samtidig. I finans-verden, hvor markedene utvikler seg fra minutt til minutt, kan RAG gi sanntids-data-drevne innsikt, og hjelpe til informert beslutning. Videre, i akademiske og forsknings-miljÃļer, kan forskere utnytte RAG til ÃĨ sÃļke gjennom store informasjons-repositorier, og gjÃļre litteratur-gjennomgang og data-analyse mer effektivt.

Jeg har brukt de siste fem ÃĨrene pÃĨ ÃĨ dykke ned i den fasiniserende verden av MaskinlÃĶring og Dypt LÃĶring. Min lidenskap og ekspertise har ledet meg til ÃĨ bidra til over 50 ulike programvareprosjekter, med sÃĶrlig fokus pÃĨ AI/ML. Min pÃĨgÃĨende nysgjÃļrhet har ogsÃĨ trukket meg mot Naturlig SprÃĨkbehandling, et felt jeg er ivrig etter ÃĨ utforske videre.