Context caching

Teknik til at gemme og genbruge tidligere beregnede repræsentationer af en kontekst for at reducere latens og beregningsomkostninger.

Kort fortalt

I stedet for at genberegne hele konteksten hver gang, gemmer man resultaterne fra første gang og bruger dem igen.

Kategori
teknik
Niveau
øvet
Udtale
/ˈkɒntekst ˈkæʃɪŋ/

Betydninger

2
  1. 1

    Caching af nøgle-værdi-par (KV-cache) under autoregressiv generering i transformermodeller, så tidligere tokens' attention-repræsentationer genbruges.

    • Under tekstgenerering gemmer modellen KV-cachen for de hidtidige tokens, så kun det nyeste token skal beregnes fuldt ud.
  2. 2

    Caching af hele kontekstens encoded repræsentation (fx embeddings) ved API-kald, så en identisk prompt ikke skal re-encodes.

    • Med context caching kan en lang systemprompt gemmes og genbruges på tværs af flere brugerforespørgsler, hvilket sparer tid og omkostninger.

Hvornår bruges det

Bruges i store sprogmodeller til at fremskynde inferens, især ved gentagne anvendelser af samme kontekst (fx i chatbots eller RAG-systemer). Kan implementeres som KV-cache eller som caching af hele prompt-embeddings.

Kodeeksempel

class TransformerWithCache:
    def __init__(self):
        self.kv_cache = None

    def generate(self, tokens):
        if self.kv_cache:
            # only process new token
            new_token = tokens[-1:]
            output, self.kv_cache = self.forward(new_token, self.kv_cache)
        else:
            output, self.kv_cache = self.forward(tokens, None)
        return output

En simpel klasse der illustrerer brug af KV-cache: Hvis cachen findes, behandles kun det sidste token.

Oprindelse

'Context' fra latin 'contexere' (sammenvævning) og 'caching' fra fransk 'cacher' (at gemme).

Afledte ord

2

Kilder

2
  • OpenAI Context Caching Documentation
  • Hugging Face KV-Cache Guide