Cache Augmented Generation (CAG)

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.

Hvad er Cache Augmented Generation (CAG)?

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.

Hvordan fungerer CAG?

CAG fungerer gennem tre primære faser:

1. Forudindlæsning af ekstern viden

  • 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.

2. Inferens med forudberegnet cache

  • 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)
    

3. Cache-håndtering

  • 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, :]
    

Nøglefordele ved CAG

  1. 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.

  2. 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.

  3. Forenklet arkitektur
    I modsætning til RAG, som kræver en kompleks hentepipeline, er CAG’s arkitektur strømlinet, hvilket reducerer systemkompleksitet og vedligeholdelsesomkostninger.

  4. 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.

Begrænsninger ved CAG

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Hvordan bruges CAG?

Praktiske anvendelser

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.

Sammenligninger med Retrieval Augmented Generation (RAG)

FunktionCAGRAG
VidenshåndteringForudindlæser viden i kontekstvinduet.Henter viden dynamisk under kørsel.
SystemkompleksitetForenklet, ingen hente-pipeline påkrævet.Kræver ekstra komponenter til hentning.
LatenstidLav, da hentetrin er elimineret.Højere pga. realtids-henteprocesser.
SkalerbarhedBegrænset af kontekstvinduets størrelse.Skalerer godt med store, dynamiske datasæt.
FejlrisiciIngen hentefejl.Sårbar over for hente- og rangeringsfejl.
Bedste brugsscenarierStatiske, lav-latenstidsopgaver.Dynamiske, store eller ofte opdaterede opgaver.

Eksempler på brugsscenarier

CAG i praksis

  1. 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.

  2. Juridisk assistance
    En juridisk assistent forudindlæser relevante retskilder i modellens kontekst for hurtigt at kunne besvare juridiske spørgsmål uden et hentesystem.

  3. Kundeservice
    En SaaS-produkts chatbot bruger CAG til at forudindlæse FAQ’er og fejlfindingguider og sikrer dermed smidige og hurtige kundeinteraktioner.

RAG til dynamiske scenarier

  1. Nyhedsaggregator
    En nyhedsapp bruger RAG til at hente og opsummere de nyeste artikler og henter dynamisk den mest relevante information til brugerforespørgsler.

  2. E-handelssøgning
    RAG bruges til at hente produktoplysninger og tilgængelighed fra et stort og ofte opdateret katalog.

  3. Forskningsplatforme
    En videnskabelig forskningsplatform anvender RAG til at hente relevante artikler og studier fra store eksterne databaser.

Implementeringseksempel: Forudindlæsning af viden i Python

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.

Hvornår skal man bruge CAG

  1. Statiske vidensbaser
    Ideel til tilfælde, hvor vidensbasen sjældent ændres.

  2. Lav-latenstidsapplikationer
    Velegnet til kundesupport, uddannelses- eller sundhedssystemer, hvor hurtige svar er nødvendige.

  3. 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.

Forskning om Cache Augmented Generation (CAG)

1. Adaptive Contextual Caching for Mobile Edge Large Language Model Service

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

2. Towards More Economical Context-Augmented LLM Generation by Reusing Stored KV Cache

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

3. MPIC: Position-Independent Multimodal Context Caching System for Efficient MLLM Serving

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

Ofte stillede spørgsmål

Hvad er Cache Augmented Generation (CAG)?

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.

Hvordan adskiller CAG sig fra RAG?

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.

Hvad er fordelene ved at bruge CAG?

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.

Hvad er begrænsningerne ved CAG?

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.

Hvor er CAG mest nyttigt?

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.

Start med at bygge effektive AI-workflows

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.

Lær mere

Spørgsmål og Svar
Spørgsmål og Svar

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 (...

5 min læsning
AI Question Answering +4
Retrieval Augmented Generation (RAG)
Retrieval Augmented Generation (RAG)

Retrieval Augmented Generation (RAG)

Retrieval Augmented Generation (RAG) er en avanceret AI-ramme, der kombinerer traditionelle informationshentningssystemer med generative store sprogmodeller (LL...

4 min læsning
RAG AI +4
Retrieval vs Cache Augmented Generation (CAG vs. RAG)
Retrieval vs Cache Augmented Generation (CAG vs. RAG)

Retrieval vs Cache Augmented Generation (CAG vs. RAG)

Opdag de vigtigste forskelle mellem Retrieval-Augmented Generation (RAG) og Cache-Augmented Generation (CAG) i AI. Lær, hvordan RAG dynamisk henter realtidsinfo...

5 min læsning
RAG CAG +5