
Retrieval Augmented Generation (RAG)
Retrieval Augmented Generation (RAG) er et avansert AI-rammeverk som kombinerer tradisjonelle informasjonshentingssystemer med generative store språkmodeller (L...
Cache Augmented Generation (CAG) øker effektiviteten til store språkmodeller ved å forhåndslaste statisk kunnskap, redusere ventetid og forenkle arkitekturen for statiske, lavlatens-oppgaver.
Cache Augmented Generation (CAG) er en ny tilnærming for å forbedre ytelsen og effektiviteten til store språkmodeller (LLM) ved å utnytte forhåndslastet kunnskap i form av forhåndsberegnede nøkkel-verdi (KV) cacher.
I motsetning til Retrieval Augmented Generation (RAG), som dynamisk henter ekstern kunnskap under inferens, eliminerer CAG henteprosessen fullstendig ved å legge all relevant kunnskap direkte inn i modellens utvidede kontekstvindu før inferens. Denne forhåndslastingen gjør at LLM-er kan generere svar basert på forhåndsberegnet informasjon, noe som betydelig reduserer ventetiden og forenkler systemarkitekturen.
Ved å lagre den bearbeidede kunnskapen i en nøkkel-verdi-cache, sikrer CAG at modellen umiddelbart har tilgang til nødvendig kontekst for å besvare forespørsler. Denne tilnærmingen er spesielt fordelaktig i situasjoner hvor kunnskapsbasen er statisk, relativt liten, eller når lav ventetid er en prioritet.
CAG opererer gjennom tre hovedfaser:
Alle relevante dokumenter eller datasett forhåndslastes inn i modellens kontekstvindu før inferens.
Det forhåndslastede innholdet behandles til en nøkkel-verdi (KV) cache, som fanger modellens interne representasjon av kunnskapen. For eksempel:
def preprocess_knowledge(model, tokenizer, prompt):
input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
past_key_values = DynamicCache()
outputs = model(input_ids=input_ids, past_key_values=past_key_values, use_cache=True)
return outputs.past_key_values
Dette trinnet sikrer at modellen har umiddelbar tilgang til den bearbeidede kunnskapen, og hopper over behovet for sanntidshenting.
Når en forespørsel kommer, kombineres den forhåndsberegnede KV-cachen med forespørselsinputtet.
Modellen genererer et svar utelukkende basert på den bufrede kunnskapen og forespørselen, uten ekstra beregninger for kunnskapshenting. For eksempel:
def generate_response(model, query, kv_cache):
input_ids = tokenizer.encode(query, return_tensors="pt").to(model.device)
output_ids = model(input_ids=input_ids, past_key_values=kv_cache, use_cache=True)
return tokenizer.decode(output_ids)
Etter hvert som nye forespørsler behandles, vokser cachen. En tilbakestillingsmekanisme kutter cachen tilbake til opprinnelig lengde for å opprettholde ytelsen og sikre at påfølgende forespørsler evalueres innenfor den tiltenkte konteksten. Eksempel på cache-tilbakestilling:
def clean_up(kv_cache, original_length):
for i in range(len(kv_cache.key_cache)):
kv_cache.key_cache[i] = kv_cache.key_cache[i][:, :, :original_length, :]
kv_cache.value_cache[i] = kv_cache.value_cache[i][:, :, :original_length, :]
Lav ventetid
Siden det ikke er behov for sanntidshenting, gir CAG raskere responstid enn RAG. Dette gjør den ideell for tidssensitive applikasjoner.
Forbedret nøyaktighet
Ved å forhåndslaste alle relevante dokumenter, sørger CAG for at modellen bearbeider et komplett datasett, noe som reduserer risikoen for konteksttap eller henterfeil.
Forenklet arkitektur
I motsetning til RAG, som krever en kompleks hente-pipeline, er CAGs arkitektur strømlinjeformet, noe som reduserer systemkompleksitet og vedlikeholdsbehov.
Effektivitet i skala
Når kunnskapen først er forhåndslastet og bufret, behandles påfølgende forespørsler med minimal beregningsmessig belastning, noe som gjør CAG effektiv for gjentatte forespørsler innenfor samme kunnskapsdomene.
Størrelse på kontekstvindu
CAG er avhengig av modellens kontekstvindu for å forhåndslaste kunnskapen. Nåværende LLM-er støtter kontekstvinduer opptil 128 000 tokens, noe som begrenser mengden kunnskap som kan forhåndslastes.
Størrelse på kunnskapsbase
CAG egner seg best for statiske og håndterbare kunnskapsbaser. For store eller dynamiske datasett kan det være utfordrende å få plass til all relevant informasjon i kontekstvinduet.
Statisk kunnskap
CAG forutsetter at kunnskapsbasen er uendret under inferens. Den er mindre egnet for brukstilfeller som krever sanntidsoppdateringer eller dynamisk kunnskapsintegrasjon.
Kostnadsimplikasjoner
Store kontekstvinduer øker de beregningsmessige kostnadene ved forhåndslasting, noe som gjør CAG mindre økonomisk for scenarier med hyppige oppdateringer eller endringer i kunnskapsbasen.
CAG brukes ofte i scenarier hvor kunnskapsbasen er statisk, håndterbar i størrelse, og lav ventetid er kritisk:
Kundestøtte-chatbot
Eksempel: Forhåndslasting av vanlige feilsøkingstrinn for programvareprodukter for å gi umiddelbare svar til brukerne.
Fordel: Eliminerer henterfeil og gir raskere responstid.
Dokumentanalyse
Eksempel: Finansinstitusjoner som analyserer kvartalsrapporter eller advokatfirmaer som søker i regelverksdokumenter.
Fordel: Sikrer konsistente og nøyaktige svar ved å forhåndslaste alle relevante dokumenter i modellen.
Helsehjelpsassistenter
Eksempel: Forhåndslasting av medisinske retningslinjer for å svare på pasientspørsmål.
Fordel: Opprettholder sammenheng i samtaler over flere meldinger og sikrer korrekt referanse.
Utdanning og opplæring
Eksempel: Besvare vanlige spørsmål i bedriftsopplæringsprogrammer.
Fordel: Forenkler utrulling og gir konsistente svar.
Funksjon | CAG | RAG |
---|---|---|
Kunnskapshåndtering | Forhåndslaster kunnskap i kontekstvinduet. | Henter kunnskap dynamisk under kjøring. |
Systemkompleksitet | Forenklet, ingen hente-pipeline nødvendig. | Krever ekstra komponenter for henting. |
Ventetid | Lav, da henteprosessene er eliminert. | Høyere på grunn av sanntidshenting. |
Skalerbarhet | Begrenset av kontekstvinduets størrelse. | Skalerer godt med store, dynamiske datasett. |
Feilrisiko | Ingen hente-feil. | Utsatt for hente-/rangering-feil. |
Beste brukstilfeller | Statisk, lavlatens-oppgaver. | Dynamiske, store eller ofte oppdaterte oppgaver. |
HR-systemer
Et selskap bruker CAG til å forhåndslaste personalretningslinjer i modellen. Ansatte kan spørre systemet om spesifikke retningslinjer, og får svar umiddelbart.
Juridisk assistanse
En juridisk assistent forhåndslaster relevante dommer inn i modellens kontekst for å gi raske svar på juridiske spørsmål uten å bruke et hentesystem.
Kundeservice
En SaaS-produkts chatbot bruker CAG til å forhåndslaste vanlige spørsmål og feilsøkingsveiledninger, noe som sikrer raske og smidige kundeinteraksjoner.
Nyhetsaggregator
En nyhetsapp bruker RAG til å hente og oppsummere de siste artiklene, og henter dynamisk den mest relevante informasjonen til brukerens forespørsel.
E-handelssøk
RAG brukes for å hente produktdetaljer og tilgjengelighet fra en stor og ofte oppdatert katalog.
Forskningsplattformer
En vitenskapelig forskningsplattform benytter RAG for å hente relevante artikler og studier fra store eksterne databaser.
Følgende Python-kodesnutt viser hvordan man forhåndslaster kunnskap i en modell for CAG:
def preprocess_knowledge(model, tokenizer, prompt):
input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
past_key_values = DynamicCache()
outputs = model(input_ids=input_ids, past_key_values=past_key_values, use_cache=True)
return outputs.past_key_values
Denne forhåndslastingsmekanismen sikrer at modellen kan behandle forespørsler uten å måtte hente ekstern informasjon, og gir effektiv og lavlatens ytelse.
Statisk kunnskapsbase
Ideelt når kunnskapsbasen sjelden endres.
Lavlatensapplikasjoner
Passer for kundestøtte, utdanning eller helsesystemer hvor raske svar er nødvendige.
Kostnadseffektive scenarier
Fordelaktig når forhåndslastet kunnskap forblir konsistent over flere forespørsler, noe som reduserer beregningsbelastningen.
CAG er et effektivt alternativ til RAG for oppgaver der fart, enkelhet og konsistens er viktig. Begrensningen er størrelsen og den statiske naturen til kunnskapsbasen.
Forfattere: Guangyuan Liu, Yinqiu Liu, Jiacheng Wang, Hongyang Du, Dusit Niyato, Jiawen Kang, Zehui Xiong
Denne artikkelen tar for seg utfordringer i mobile edge-distribusjoner av store språkmodeller (LLM), slik som begrensede ressurser og høy henter-latens. Den foreslår et Adaptive Contextual Caching (ACC)-rammeverk som bruker dyp forsterkningslæring (DRL) til å optimalisere cache-utskiftningsstrategier basert på brukerkontekst, dokumentsimilaritet og cache-feil-belastning. Tester viser at ACC oppnår over 80 % cache-treffrate etter 11 treningssykluser, og reduserer henter-latens med opptil 40 % sammenlignet med tradisjonelle metoder. I tillegg minimeres lokal cache-belastning med opptil 55 %, noe som gjør ACC egnet for skalerbare, lavlatens LLM-tjenester i ressursbegrensede miljøer. Studien fremhever potensialet til ACC for å øke effektiviteten i edge-LLM-systemer.
Les artikkelen her
Forfattere: Hanchen Li, Yuhan Liu, Yihua Cheng, Kuntai Du, Junchen Jiang
Denne studien utforsker gjenbruk av nøkkel-verdi (KV) cacher for å redusere forsinkelser ved forfylling i LLM-applikasjoner, spesielt for gjentatte inndata. Den undersøker også hvorvidt slik cache-gjenbruk er økonomisk gunstig når man bruker offentlige skytjenester for lagring og prosessering. Forfatterne foreslår en validert analytisk modell for å vurdere skykostnader (beregning, lagring og nettverk) for lagring og gjenbruk av KV-cacher under ulike arbeidsbelastninger. Studien viser at KV cache-gjenbruk sparer både tid og kostnader for arbeidsmengder med lange kontekster, og oppmuntrer til videre innsats for å bygge mer økonomiske kontekst-forsterkede LLM-systemer.
Les artikkelen her
Forfattere: Shiju Zhao, Junhao Hu, Rongxiao Huang, Jiaqi Zheng, Guihai Chen
Denne artikkelen introduserer MPIC, et posisjonsuavhengig multimodalt kontekst-caching-system, utviklet for å løse ineffektivitet i inferens med multimodale store språkmodeller (MLLM). Tradisjonelle systemer må beregne hele KV-cachen på nytt selv ved små kontekstendringer, noe som fører til ineffektivitet. MPIC tilbyr et posisjonsuavhengig cachesystem som lagrer KV-cacher lokalt eller eksternt og parallelliserer cache-beregning og lasting under inferens. Integrerte gjenbruks- og rekalkuleringsmekanismer motvirker nøyaktighetstap og gir opptil 54 % reduksjon i responstid sammenlignet med eksisterende metoder. Arbeidet viser potensialet for økt effektivitet i multimodale LLM-tjenester.
Les artikkelen her
Cache Augmented Generation (CAG) er en metode som forbedrer ytelsen til store språkmodeller (LLM) ved å forhåndslaste statisk kunnskap i en forhåndsberegnet nøkkel-verdi (KV) cache. I motsetning til Retrieval Augmented Generation (RAG), som henter ekstern kunnskap i sanntid, legger CAG inn all relevant informasjon på forhånd, noe som reduserer ventetid og forenkler AI-systemets arkitektur.
CAG forhåndslaster all nødvendig kunnskap inn i modellens kontekstvindu før inferens og eliminerer behovet for sanntidshenting, noe som sikrer lav ventetid. RAG, derimot, henter relevant informasjon dynamisk under kjøring, noe som kan føre til henterfeil og høyere ventetid, men passer bedre for dynamiske eller ofte oppdaterte kunnskapsbaser.
Viktige fordeler med CAG inkluderer lav ventetid, forbedret nøyaktighet takket være omfattende forhåndslasting, forenklet systemarkitektur og effektivitet for gjentatte forespørsler innenfor statiske kunnskapsområder.
CAG er begrenset av maksimal størrelse på modellens kontekstvindu (for tiden opptil 128 000 tokens), fungerer best for statiske og håndterbare kunnskapsbaser og er mindre effektiv for dynamiske datasett eller scenarier som krever hyppige oppdateringer. Store kontekstvinduer kan også øke de beregningsmessige kostnadene ved forhåndslasting.
CAG er ideell for statiske, lavlatensapplikasjoner som kundestøtte-chatboter, dokumentanalyse, helsehjelpsassistenter, FAQ for opplæring, HR-spørsmål og juridiske assistenter—overalt hvor kunnskapsbasen endres sjelden og umiddelbare svar trengs.
Opplev kraften til CAG og andre AI-verktøy med FlowHunt. Book en demo for å se hvordan løsninger med lav ventetid og cache-forsterkning kan transformere virksomheten din.
Retrieval Augmented Generation (RAG) er et avansert AI-rammeverk som kombinerer tradisjonelle informasjonshentingssystemer med generative store språkmodeller (L...
Spørsmål og svar med Retrieval-Augmented Generation (RAG) kombinerer informasjonsinnhenting og naturlig språk-generering for å forbedre store språkmodeller (LLM...
Oppdag de viktigste forskjellene mellom Retrieval-Augmented Generation (RAG) og Cache-Augmented Generation (CAG) innen AI. Lær hvordan RAG henter sanntidsinform...