Kennisbank

KV-cache: het geheugentrucje dat chatbots sneller maakt

Bijgewerkt: 7 augustus 2026 · 7 min leestijd

Wie weleens met ChatGPT, Claude of een ander taalmodel heeft gechat, ziet de antwoorden meestal woord voor woord verschijnen. Dat is geen toevallige presentatiekeuze: het model genereert daadwerkelijk één stukje tekst (een "token", ruwweg een woorddeel) tegelijk, en gebruikt daarbij alles wat het al heeft geschreven om te bepalen wat er nu bij moet. Een kv-cache, kort voor "key-value cache", is een technische truc die dat proces enorm versnelt door het model een soort geheugen te geven van wat het al heeft "doorgerekend", zodat het dat niet telkens opnieuw hoeft te doen.

Een vergelijking helpt. Stel je een notulist voor tijdens een uren durend vergadering. Een slechte notulist zou bij elke nieuwe opmerking het hele gesprek van voren af aan herlezen om te begrijpen wat er speelt. Een goede notulist houdt in plaats daarvan aantekeningen bij: korte samenvattingen van eerdere punten, die hij simpelweg erbij pakt zodra er iets nieuws wordt gezegd. De kv-cache is die aantekeningenstapel van het taalmodel. Zonder cache zou het model bij elk nieuw woord de hele voorgaande tekst opnieuw moeten "doorlezen" en analyseren, wat rekenwerk kost dat snel oploopt naarmate een gesprek langer wordt.

Wat is het precies?

Om te begrijpen wat een kv-cache doet, moet je iets weten over hoe moderne taalmodellen werken. Vrijwel alle grote taalmodellen van dit moment zijn gebaseerd op de "transformer"-architectuur, geïntroduceerd in 2017 door onderzoekers van Google in het invloedrijke artikel "Attention Is All You Need". De kern daarvan is het zogeheten aandachtsmechanisme ("attention"): voor elk woord in een tekst berekent het model hoe relevant elk ander woord in die tekst ervoor is.

Dat gebeurt met drie soorten wiskundige representaties per woord, ook wel vectoren genoemd: een "query" (vraag), een "key" (sleutel) en een "value" (waarde). Grofweg vergelijkt het model de query van het huidige woord met de keys van alle eerdere woorden om te bepalen welke het meest relevant zijn, en haalt vervolgens informatie op uit de bijbehorende values. Dat gebeurt in meerdere lagen en met meerdere "aandachtskoppen" tegelijk, wat het geheel rekenintensief maakt.

Het probleem ontstaat bij tekstgeneratie. Een taalmodel dat een antwoord schrijft, doet dat token voor token: het voorspelt het volgende stukje tekst, plakt dat achter de al gegenereerde tekst, en voorspelt dan het volgende stukje. Zonder verdere trucs zou het model bij elk nieuw token opnieuw de keys en values van alle voorgaande tokens moeten berekenen, ook al zijn die tokens niet veranderd. Dat is verspilde moeite: die berekeningen leveren steeds hetzelfde resultaat op.

De kv-cache lost dit op door de keys en values van eerdere tokens simpelweg te bewaren in het geheugen van de grafische kaart (gpu) die de berekeningen uitvoert. Bij elk nieuw token hoeft het model dan alleen de key en value van dát nieuwe token te berekenen, en die toe te voegen aan de al opgeslagen reeks. De rest wordt hergebruikt in plaats van opnieuw uitgerekend. Dit verandert een berekening die in complexiteit kwadratisch groeit met de tekstlengte in een proces dat per token veel goedkoper is, ten koste van geheugengebruik: hoe langer het gesprek, hoe meer keys en values er opgeslagen moeten blijven.

Wat wil men ermee bereiken?

Het directe doel van een kv-cache is snelheid: taalmodellen die met deze techniek draaien, genereren tekst aanzienlijk sneller dan modellen die dat niet doen, vooral bij langere gesprekken of documenten. Voor een chatbot die interactief met gebruikers praat, is die snelheid essentieel; niemand wil seconden wachten op elk volgend woord.

Maar de kv-cache brengt ook een nieuw probleem met zich mee, en veel recent onderzoek richt zich juist op het beheersen daarvan: geheugengebruik. Het opslaan van keys en values voor elk token, in elke laag en voor elke aandachtskop, kost gpu-geheugen (vram), en dat geheugen is schaars en duur. Bij lange gesprekken, lange documenten of veel gebruikers die tegelijk een model gebruiken, kan de kv-cache al snel meer geheugen opslokken dan de eigenlijke gewichten van het model zelf.

Daarom is er een hele tak van onderzoek ontstaan die probeert de voordelen van de kv-cache (snelheid) te behouden terwijl het geheugennadeel wordt beperkt. Dat gebeurt via verschillende sporen: het delen van keys en values tussen aandachtskoppen, het comprimeren van de cache tot compactere representaties, het slim beheren van geheugen zodat er geen ruimte wordt verspild, en het opslaan van de cache in minder precieze (en dus kleinere) getalformaten. Het uiteindelijke doel is steeds hetzelfde: taalmodellen die lange gesprekken en documenten aankunnen, voor meer gebruikers tegelijk, zonder onbetaalbare hoeveelheden dure gpu's nodig te hebben.

Voorbeelden uit de praktijk

Verschillende onderzoeksgroepen en bedrijven hebben concrete technieken ontwikkeld om de kv-cache efficiënter te maken.

Multi-Query en Grouped-Query Attention. Onderzoeker Noam Shazeer, destijds bij Google, beschreef in 2019 "Multi-Query Attention": in plaats van dat elke aandachtskop zijn eigen keys en values krijgt, delen alle koppen er één set van. Dat verkleint de cache flink, maar kan ten koste gaan van de kwaliteit van het model. Als tussenweg introduceerden Google-onderzoekers in 2023 "Grouped-Query Attention" (GQA), waarbij groepen aandachtskoppen een gedeelde set keys en values krijgen. Meta paste GQA toe in Llama 2, het taalmodel dat het bedrijf in juli 2023 uitbracht, en de techniek wordt sindsdien breed gebruikt in open modellen.

PagedAttention en vLLM. Onderzoekers van de University of California, Berkeley, publiceerden in 2023 een systeem genaamd PagedAttention, dat de kv-cache beheert zoals een besturingssysteem het werkgeheugen van een computer beheert: in kleine, flexibel toewijsbare blokken in plaats van één aaneengesloten stuk geheugen per gesprek. Dit voorkomt verspilling doordat geheugen dat door een kortere vraag vrijkomt, direct hergebruikt kan worden voor een andere. De bijbehorende opensource-software, vLLM, wordt inmiddels breed gebruikt om taalmodellen efficiënt te bedienen ("serveren") op servers.

Multi-Head Latent Attention bij DeepSeek. Het Chinese AI-lab DeepSeek introduceerde met het model DeepSeek-V2, uitgebracht in mei 2024, een techniek genaamd "Multi-Head Latent Attention" (MLA). Daarbij worden keys en values niet in hun volledige vorm opgeslagen, maar gecomprimeerd tot een veel kleinere, samengevatte representatie (een "latente" vector) die bij gebruik weer wordt "uitgepakt". DeepSeek presenteerde dit als een belangrijke reden waarom het model relatief goedkoop te bedienen was, en paste dezelfde aanpak toe in het opvolgermodel DeepSeek-V3 (december 2024).

Sliding window attention bij Mistral. Het Franse bedrijf Mistral AI bracht in 2023 het model Mistral 7B uit, dat een "schuifvenster" (sliding window) hanteert: het model kijkt bij elk token alleen naar een beperkt aantal recente voorgaande tokens in plaats van naar de volledige geschiedenis. Dat begrenst hoe groot de kv-cache maximaal kan worden, ongeacht hoe lang het gesprek al duurt.

Kwantisering en tooling van NVIDIA. Chipmaker NVIDIA biedt in zijn software voor modelbediening, TensorRT-LLM, opties om de kv-cache op te slaan in compactere getalformaten (bijvoorbeeld 8-bits in plaats van 16-bits precisie), wat het geheugengebruik verder verkleint met een klein risico op nauwkeurigheidsverlies.

Hoe ver is de techniek?

De basisvorm van de kv-cache is geen nieuwe of experimentele techniek meer: het is sinds de opkomst van grote generatieve taalmodellen, ruwweg vanaf 2019-2020, standaardpraktijk bij vrijwel elk systeem dat autoregressieve tekstgeneratie doet. Elk groot commercieel taalmodel dat je vandaag gebruikt, van GPT-modellen tot Gemini, Claude en open modellen als Llama, gebruikt in de een of andere vorm een kv-cache.

Het onderzoek naar het efficiënter máken van die cache is wel volop in ontwikkeling. De afgelopen jaren is er in hoog tempo vooruitgang geboekt: van simpele caching, via head-sharing-technieken als MQA en GQA, naar geavanceerdere compressie zoals MLA. Deze ontwikkeling is direct gekoppeld aan een andere trend die gebruikers wel merken: taalmodellen die steeds langere contexten aankunnen. Google's Gemini 1.5-modellen werden in 2024 gepresenteerd met contextvensters tot 1 à 2 miljoen tokens, wat neerkomt op boeken vol tekst in één gesprek. Dat soort lengtes is alleen haalbaar dankzij voortdurende verbeteringen in kv-cache-beheer; zonder die verbeteringen zou het geheugengebruik onhaalbaar hoog worden.

Toch blijft geheugendruk een reëel obstakel. Bij het gelijktijdig bedienen van veel gebruikers, of bij zeer lange contexten, is de kv-cache vaak de belangrijkste beperkende factor voor hoeveel een server aankan, meer nog dan de rekenkracht zelf. Compressietechnieken zoals MLA laten aanzienlijke besparingen zien, maar de precieze impact op modelkwaliteit bij elke nieuwe compressietruc moet telkens opnieuw zorgvuldig worden getoetst; er is geen garantie dat een compactere cache altijd zonder kwaliteitsverlies komt. Ook is er geen consensus over één "beste" aanpak: verschillende bedrijven maken verschillende afwegingen tussen snelheid, geheugengebruik en modelkwaliteit, en welke techniek op lange termijn dominant wordt, staat niet vast.

Wie werken eraan?

Aan kv-cache-gerelateerd onderzoek en engineering wordt breed gewerkt, verspreid over grote techbedrijven, gespecialiseerde AI-labs en academische instellingen.

Google (en Google DeepMind) heeft met het originele transformer-onderzoek en latere werk zoals Grouped-Query Attention een grondleggende rol gespeeld. Meta AI heeft met de Llama-modellenreeks veel van deze technieken in breed beschikbare, opensource modellen toegepast en daarmee toegankelijk gemaakt voor onderzoekers wereldwijd. OpenAI en Anthropic passen soortgelijke optimalisaties toe in hun commerciële modellen (GPT- en Claude-reeksen), al zijn zij doorgaans terughoudend met het publiceren van interne technische details.

Op academisch vlak heeft de Sky Computing Lab van de University of California, Berkeley, met het vLLM-project en PagedAttention een van de invloedrijkste bijdragen geleverd aan efficiënt kv-cache-beheer in productieomgevingen; vLLM is inmiddels een breed gebruikt opensource-project met bijdragen van tientallen organisaties. Het Chinese AI-lab DeepSeek heeft met Multi-Head Latent Attention laten zien dat aanzienlijke geheugenbesparingen mogelijk zijn, en dat werk krijgt sindsdien veel aandacht in de onderzoeksgemeenschap. Ook Mistral AI in Frankrijk en chipmaker NVIDIA, met zijn TensorRT-LLM-software en gespecialiseerde hardware, spelen een belangrijke rol: NVIDIA's gpu's zijn de facto de hardware waarop het overgrote deel van deze kv-caches daadwerkelijk wordt opgeslagen en verwerkt.

Verder lezen