
Spørgsmål og Svar
Spørgsmål og Svar med Retrieval-Augmented Generation (RAG) kombinerer informationssøgning og generering af naturligt sprog for at forbedre store sprogmodeller (...
Cache Augmented Generation (CAG) øger effektiviteten af store sprogmodeller ved at forudindlæse statisk viden, reducere latenstid og forenkle arkitekturen for statiske opgaver med lav latenstid.
Cache Augmented Generation (CAG) er en ny tilgang til at forbedre ydeevnen og effektiviteten af store sprogmodeller (LLM’er) ved at udnytte forudindlæst viden i form af forudberegnede key-value (KV) cacher.
I modsætning til Retrieval Augmented Generation (RAG), som dynamisk henter ekstern viden under inferens, eliminerer CAG hentetrin fuldstændigt ved at indlejre al relevant viden direkte i modellens udvidede kontekstvindue før inferens. Denne forudindlæsningsstrategi gør det muligt for LLM’er at generere svar ved hjælp af den forudberegnede information, hvilket markant reducerer latenstid og forenkler systemarkitekturen.
Ved at gemme den behandlede viden i en key-value-cache sikrer CAG, at modellen har øjeblikkelig adgang til den nødvendige kontekst for at besvare forespørgsler. Denne tilgang er især fordelagtig i scenarier, hvor vidensdatabasen er statisk, forholdsvis lille, eller hvor lav latenstid er en prioritet.
CAG fungerer gennem tre primære faser:
Alle relevante dokumenter eller datasæt forudindlæses i modellens kontekstvindue før inferens.
Det forudindlæste indhold behandles til en key-value (KV) cache, som fanger modellens interne repræsentation af viden. 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 trin sikrer, at modellen har øjeblikkelig adgang til den forbehandlede viden og omgår behovet for realtids-hentning.
Når en forespørgsel foretages, kombineres den forudberegnede KV-cache med forespørgselsinputtet.
Modellen genererer et svar udelukkende baseret på den cachede viden og forespørgslen, hvilket undgår yderligere beregninger for videnshentning. 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)
Efterhånden som nye forespørgsler behandles, vokser cachen. En nulstillingsmekanisme afkorter cachen tilbage til dens oprindelige længde for at opretholde ydeevnen og sikre, at efterfølgende forespørgsler evalueres inden for den ønskede kontekst. Eksempel på cache-nulstilling:
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 latenstid
Da der ikke er behov for realtids-hentning, giver CAG hurtigere svartider sammenlignet med RAG. Det gør metoden ideel til tidssensitive applikationer.
Forbedret nøjagtighed
Ved at forudindlæse alle relevante dokumenter sikrer CAG, at modellen behandler et omfattende datasæt, hvilket mindsker risikoen for konteksthuller eller hentefejl.
Forenklet arkitektur
I modsætning til RAG, som kræver en kompleks hentepipeline, er CAG’s arkitektur strømlinet, hvilket reducerer systemkompleksitet og vedligeholdelsesomkostninger.
Effektivitet i skala
Når viden først er forudindlæst og cachet, behandles efterfølgende forespørgsler med minimal beregningsmæssig belastning, hvilket gør CAG effektiv til gentagne forespørgsler inden for samme vidensdomæne.
Størrelse på kontekstvindue
CAG er afhængig af modellens kontekstvindue til at forudindlæse viden. Nuværende LLM’er understøtter kontekstvinduer op til 128.000 tokens, hvilket begrænser mængden af viden, der kan forudindlæses.
Størrelse på vidensbase
CAG egner sig bedst til statiske og overskuelige vidensdatabaser. For store eller dynamiske datasæt kan modellen have svært ved at rumme al relevant information i kontekstvinduet.
Statisk viden
CAG antager, at vidensbasen forbliver uændret under inferens. Den er mindre effektiv til brugsscenarier, der kræver realtids-opdateringer eller dynamisk vidensintegration.
Omkostningsimplikationer
Store kontekstvinduer øger de beregningsmæssige omkostninger ved forudindlæsning, hvilket gør CAG mindre økonomisk til scenarier med hyppige opdateringer eller ændringer i vidensbasen.
CAG anvendes oftest i scenarier, hvor vidensbasen er statisk, overskuelig i størrelse, og lav latenstid er kritisk:
Kundesupport-chatbots
Eksempel: Forudindlæsning af almindelige fejlfindingstrin for softwareprodukter for at give brugerne øjeblikkelige svar.
Fordel: Eliminerer hentefejl og øger svartiderne.
Dokumentanalyse
Eksempel: Finansielle institutioner, der analyserer kvartalsrapporter, eller advokatfirmaer, der forespørger på lovgivningsdokumenter.
Fordel: Sikrer konsistente og nøjagtige svar ved at forudindlæse alle relevante dokumenter i modellen.
Sundhedsassistenter
Eksempel: Forudindlæsning af medicinske retningslinjer til at besvare patientforespørgsler.
Fordel: Opretholder sammenhæng i dialoger over flere omgange og sikrer korrekt reference.
Uddannelse og træning
Eksempel: Besvarelse af ofte stillede spørgsmål i virksomhedstræningsprogrammer.
Fordel: Forenkler implementering og sikrer ensartede svar.
Funktion | CAG | RAG |
---|---|---|
Videnshåndtering | Forudindlæser viden i kontekstvinduet. | Henter viden dynamisk under kørsel. |
Systemkompleksitet | Forenklet, ingen hente-pipeline påkrævet. | Kræver ekstra komponenter til hentning. |
Latenstid | Lav, da hentetrin er elimineret. | Højere pga. realtids-henteprocesser. |
Skalerbarhed | Begrænset af kontekstvinduets størrelse. | Skalerer godt med store, dynamiske datasæt. |
Fejlrisici | Ingen hentefejl. | Sårbar over for hente- og rangeringsfejl. |
Bedste brugsscenarier | Statiske, lav-latenstidsopgaver. | Dynamiske, store eller ofte opdaterede opgaver. |
HR-systemer
En virksomhed bruger CAG til at forudindlæse medarbejderpolitikker i modellen. Medarbejdere kan forespørge systemet om specifikke retningslinjer, og svar genereres øjeblikkeligt.
Juridisk assistance
En juridisk assistent forudindlæser relevante retskilder i modellens kontekst for hurtigt at kunne besvare juridiske spørgsmål uden et hentesystem.
Kundeservice
En SaaS-produkts chatbot bruger CAG til at forudindlæse FAQ’er og fejlfindingguider og sikrer dermed smidige og hurtige kundeinteraktioner.
Nyhedsaggregator
En nyhedsapp bruger RAG til at hente og opsummere de nyeste artikler og henter dynamisk den mest relevante information til brugerforespørgsler.
E-handelssøgning
RAG bruges til at hente produktoplysninger og tilgængelighed fra et stort og ofte opdateret katalog.
Forskningsplatforme
En videnskabelig forskningsplatform anvender RAG til at hente relevante artikler og studier fra store eksterne databaser.
Følgende Python-kodeeksempel viser, hvordan man forudindlæser viden i en model til 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 forudindlæsningsmekanisme sikrer, at modellen behandler forespørgsler uden brug for ekstern hentning, hvilket muliggør effektiv og lav-latenstidsydelse.
Statiske vidensbaser
Ideel til tilfælde, hvor vidensbasen sjældent ændres.
Lav-latenstidsapplikationer
Velegnet til kundesupport, uddannelses- eller sundhedssystemer, hvor hurtige svar er nødvendige.
Omkostningseffektive scenarier
Gavnlig, når den forudindlæste viden forbliver konsistent på tværs af flere forespørgsler og derved reducerer beregningsbyrden.
CAG er et effektivt alternativ til RAG for opgaver, der kræver hastighed, enkelhed og konsistens. Dog er løsningen begrænset af vidensbasens størrelse og statiske karakter.
Forfattere: Guangyuan Liu, Yinqiu Liu, Jiacheng Wang, Hongyang Du, Dusit Niyato, Jiawen Kang, Zehui Xiong
Denne artikel adresserer udfordringer i mobile edge-implementeringer af store sprogmodeller (LLM), såsom begrænsede beregningsressourcer og høj hentelatenstid. Den foreslår en Adaptive Contextual Caching (ACC)-ramme, der bruger deep reinforcement learning (DRL) til at optimere cache-udskiftningspolitikker ved at tage højde for brugerens kontekst, dokumentsimilaritet og cache-miss-overhead. Eksperimentelle resultater viser, at ACC opnår over 80% cache-hit-rate efter 11 træningsepisoder og signifikant reducerer hentelatenstid med op til 40% sammenlignet med traditionelle metoder. Derudover minimerer den den lokale cache-overhead med op til 55%, hvilket gør den velegnet til skalerbare LLM-tjenester med lav latenstid i ressourcebegrænsede miljøer. Arbejdet fremhæver ACC’s potentiale til at øge effektiviteten i edge-LLM-systemer.
Læs artiklen her
Forfattere: Hanchen Li, Yuhan Liu, Yihua Cheng, Kuntai Du, Junchen Jiang
Dette studie undersøger genbrug af Key-Value (KV)-cacher for at reducere prefill-forsinkelser i LLM-applikationer, især ved gentagne inputtekster. Det undersøges, om cache-genbrug også kan være økonomisk levedygtigt ved brug af offentlige cloud-tjenester til lagring og behandling. Forfatterne foreslår en valideret analytisk model til at vurdere cloud-omkostninger (beregning, lagring og netværk) ved lagring og genbrug af KV-cacher på tværs af forskellige arbejdsbyrder. Studiet viser, at genbrug af KV-cache sparer både tid og cloud-omkostninger for arbejdsbyrder med lange kontekster og opmuntrer til yderligere udvikling af mere økonomiske context-augmenterede LLM-systemer.
Læs artiklen her
Forfattere: Shiju Zhao, Junhao Hu, Rongxiao Huang, Jiaqi Zheng, Guihai Chen
Denne artikel introducerer MPIC, et position-uafhængigt multimodalt kontekst-caching-system, der sigter mod at løse ineffektivitet i multimodal LLM-inferens. Traditionelle systemer genberegner hele KV-cachen selv ved små forskelle i konteksten, hvilket fører til ineffektivitet. MPIC tilbyder et position-uafhængigt cachesystem, der gemmer KV-cacher lokalt eller eksternt og paralleliserer cache-beregning og indlæsning under inferens. Integrerede genbrugs- og genberegningsmekanismer afbøder nøjagtighedstab og opnår op til 54% reduktion i svartid sammenlignet med eksisterende metoder. Arbejdet fremhæver potentialet for øget effektivitet i multimodale LLM-tjenester.
Læs artiklen her
Cache Augmented Generation (CAG) er en metode, der forbedrer ydelsen af store sprogmodeller (LLM'er) ved at forudindlæse statisk viden i en forudberegnet key-value (KV) cache. I modsætning til Retrieval Augmented Generation (RAG), som henter ekstern viden under kørsel, indlejrer CAG al relevant information på forhånd, hvilket reducerer latenstid og forenkler AI-systemets arkitektur.
CAG forudindlæser al nødvendig viden i modellens kontekstvindue før inferens og eliminerer behovet for realtids-hentning, hvilket sikrer lav latenstid. RAG derimod henter relevant information dynamisk under kørsel, hvilket kan føre til hentefejl og højere latenstid, men egner sig bedre til dynamiske eller ofte opdaterede vidensdatabaser.
Nøglefordelene ved CAG inkluderer lav latenstid, forbedret nøjagtighed på grund af omfattende forudindlæsning, forenklet systemarkitektur og effektivitet ved gentagne forespørgsler inden for statiske vidensdomæner.
CAG er begrænset af modellens maksimale kontekstvindue (aktuelt op til 128.000 tokens), er bedst til statiske og overskuelige vidensdatabaser og er mindre effektiv til dynamiske datasæt eller scenarier, der kræver hyppige opdateringer. Store kontekstvinduer kan også øge de beregningsmæssige omkostninger ved forudindlæsning.
CAG er ideelt til statiske, lav-latenstidsapplikationer såsom kundesupport-chatbots, dokumentanalyse, sundhedsassistenter, uddannelses-FAQ'er, HR-politikforespørgsler og juridiske assistenter—overalt hvor vidensdatabasen sjældent ændres, og der er brug for øjeblikkelige svar.
Oplev kraften i CAG og andre AI-værktøjer med FlowHunt. Book en demo og se, hvordan løsninger med lav latenstid og cache-forbedring kan transformere din virksomhed.
Spørgsmål og Svar med Retrieval-Augmented Generation (RAG) kombinerer informationssøgning og generering af naturligt sprog for at forbedre store sprogmodeller (...
Retrieval Augmented Generation (RAG) er en avanceret AI-ramme, der kombinerer traditionelle informationshentningssystemer med generative store sprogmodeller (LL...
Opdag de vigtigste forskelle mellem Retrieval-Augmented Generation (RAG) og Cache-Augmented Generation (CAG) i AI. Lær, hvordan RAG dynamisk henter realtidsinfo...