Nvidia-onderzoekers hebben een nieuwe techniek geïntroduceerd die de hoeveelheid geheugen die grote taalmodellen nodig hebben om de gespreksgeschiedenis bij te houden dramatisch vermindert – tot wel 20x – zonder het model zelf te wijzigen. De methode, genaamd KV Cache Transform Coding (KVTC)past ideeën toe uit mediacompressieformaten zoals JPEG om de sleutelwaardecache achter multi-turn AI-systemen te verkleinen, de GPU-geheugenbehoefte te verlagen en de tijd tot eerste token tot 8x te versnellen.
Voor zakelijke AI-applicaties die afhankelijk zijn van agents en lange contexten, vertaalt dit zich in lagere GPU-geheugenkosten, beter snel hergebruik en tot wel 8x kortere latentie door de noodzaak te vermijden om verloren KV-cachewaarden opnieuw te berekenen.
Om grote taalmodellen op grote schaal te kunnen bedienen, is het beheer van een enorme hoeveelheid gegevens vereist, vooral voor gesprekken met meerdere beurten en lange codeersessies. Elke keer dat een gebruiker een prompt toevoegt, vertrouwt het systeem op het opgeslagen geheugen om te voorkomen dat de hele gespreksgeschiedenis helemaal opnieuw moet worden berekend.
Deze geheugenvoetafdruk groeit echter snel, waardoor een ernstig knelpunt ontstaat voor de latentie- en infrastructuurkosten.
Waarom KV-cache op grote schaal een knelpunt wordt
Om multi-turn AI-toepassingen zoals codeerassistenten of chat-apps aan te drijven, vertrouwen grote taalmodellen op een mechanisme dat bekend staat als de sleutelwaarde-cache (KV).. Deze cache slaat de verborgen numerieke representaties op voor elk vorig token in een gesprek. Omdat het model het eerdere gesprek onthoudt, hoeft het niet de hele chatgeschiedenis onnodig opnieuw te verwerken telkens wanneer de gebruiker een nieuwe prompt verzendt.
Voor AI-toepassingen met lange contexttaken kan deze cache echter gemakkelijk oplopen tot meerdere gigabytes. Naarmate modellen opschalen en steeds langere redeneringsketens genereren, wordt de KV-cache een cruciaal knelpunt voor de doorvoer en latentie van het systeem.
Dit zorgt voor een moeilijke uitdaging voor productieomgevingen. Omdat LLM’s tijdens inferentie sterk geheugengebonden zijn, wordt het gelijktijdig bedienen van meerdere gebruikers beperkt door GPU-geheugenuitputting in plaats van door rekentijd. “Effectief KV-cachebeheer wordt van cruciaal belang, omdat inactieve caches snel uit het GPU-geheugen moeten worden verwijderd om andere gebruikers te kunnen bedienen, en snel moeten worden hersteld voor hervatte gesprekken”, vertelt Adrian Lancucki, Senior Deep Learning Engineer bij Nvidia, aan VentureBeat. “Deze infrastructuurkosten worden nu weerspiegeld in commerciële prijzen (bijvoorbeeld als ‘prompt caching’) met extra kosten voor caching.”
Zelfs compromisoplossingen, zoals het overbrengen van de cache naar opslag op een lager niveau, zoals CPU-geheugen of SSD’s, introduceren aanzienlijke overheadkosten voor gegevensoverdracht die de netwerkbandbreedte kunnen verzadigen en knelpunten kunnen creëren.
Een veel voorkomende oplossing is het comprimeren van de KV-cache, zodat deze minder geheugen in beslag neemt. Bestaande oplossingen schieten echter vaak tekort om het probleem holistisch op te lossen. Tools die zijn ontworpen om caches te comprimeren voor netwerktransmissie, bereiken lage compressiesnelheden. Andere compressiemethoden vereisen on-the-fly resource-intensieve berekeningen voor elke afzonderlijke gebruikersprompt. Ondertussen zijn populaire technieken zoals kwantisering of sparsificatie kan latentie- en nauwkeurigheidsdalingen veroorzaken of permanente wijzigingen in de gewichten van het model vereisen, wat de bruikbaarheid ervan beperkt.
In hun artikel merken de Nvidia-onderzoekers op dat bestaande benaderingen “zelden gebruik maken van de sterke laaggeplaatste structuur van KV-tensoren.” Dit betekent dat ondanks het enorme aantal dimensies en gigabytes aan omvang, de feitelijke onderliggende informatie in de KV-cache sterk gecorreleerd is en nauwkeurig kan worden weergegeven met veel minder variabelen. Het benutten van deze eigenschap is waar KVTC zich op richt.
Trucs lenen van mediacodecs
Op een hoog niveau pakt KVTC het AI-geheugenknelpunt aan door een beproefd concept te lenen van klassieke media: transformatiecodering, de methodologie die bekende beeld- en videocompressieformaten zoals JPEG aanstuurt. Het raamwerk verkleint de cache-footprint via een snel, uit meerdere stappen bestaand proces dat wordt uitgevoerd tussen de inferentiefasen om te voorkomen dat de daadwerkelijke tokengeneratie wordt vertraagd. “Deze ‘mediacompressie’-benadering is voordelig voor bedrijfsimplementatie, omdat deze niet opdringerig is: er zijn geen wijzigingen in modelgewichten of code vereist en het werkt dicht bij de transportlaag”, aldus Lancucki.
Ten eerste gebruikt KVTC hoofdcomponentenanalyse (PCA) om de kenmerken van de KV-cachegegevens op één lijn te brengen op basis van hun belang. PCA is een statistische techniek vaak gebruikt bij machinaal leren om modellen efficiënter te maken door de meest kritische kenmerken van de gegevens te isoleren en redundanties weg te nemen. Dit deel van het proces wordt voor elk model slechts één keer uitgevoerd tijdens een initiële kalibratiefase. Omdat de PCA-uitlijningsmatrix offline wordt berekend en hergebruikt, vertraagt deze het compressieproces niet op het moment van inferentie voor individuele gebruikersprompts.
Vervolgens gebruikt het systeem een dynamisch programmeeralgoritme om automatisch te budgetteren hoeveel geheugen elke specifieke datadimensie daadwerkelijk nodig heeft. De meest kritische hoofdcomponenten krijgen een hoge precisie, terwijl de volgende, minder belangrijke componenten minder bits ontvangen of nul bits krijgen toegewezen en volledig worden verwijderd.
Ten slotte neemt de pijplijn deze geoptimaliseerde, gekwantiseerde gegevens en verpakt deze in een byte-array, die deze door een entropiecodeerder genaamd DEFLATE voert. Omdat deze stap parallel rechtstreeks op de GPU wordt uitgevoerd met behulp van Nvidia’s nvCOMP-bibliotheek, werkt deze op zeer hoge snelheden.
Om de gegevens te decomprimeren wanneer de gebruiker terugkeert, voert KVTC de berekeningen eenvoudigweg in omgekeerde volgorde uit. Om het proces te versnellen, voert het het zware werk van de decompressie in stukjes uit, laag voor laag. Hierdoor kan het AI-model vroegtijdig beginnen met het berekenen van het volgende antwoord met behulp van het eerste gedecomprimeerde deel, terwijl de daaropvolgende delen op de achtergrond worden gedecomprimeerd.
20x compressie, minder dan 1% nauwkeurigheidsverlies
Nvidia-onderzoekers testten KVTC op een breed scala aan modellen, variërend van 1,5B tot 70B-parameters, waaronder de Llama 3-familie, Mistral NeMo en de redenerende R1-gedistilleerde Qwen 2.5-modellen. Ze evalueerden deze modellen op basis van verschillende benchmarks, waaronder complexe wiskunde- en codeeruitdagingen zoals MATH-500 en LiveCodeBench, evenals intensieve taken voor het ophalen van lange contexten, zoals ‘Needle In A Haystack’ en het ophalen van sleutelwaarden.
Ze plaatsten KVTC tegen verschillende populaire basislijnen: token-uitzettingsmethoden (bijv. H2O en TOVA), zware kwantiseringstechnieken (bijv. KIVI en GEAR) en xKV (een snelle compressietechniek gebaseerd op decompositie van singuliere waarden).
Bij een effectieve compressieverhouding van 20x handhaafde KVTC consistent de prestaties binnen minder dan één procentpunt nauwkeurigheidsverlies in vergelijking met de originele, ongecomprimeerde vanille-modellen voor de meeste taken. Toen onderzoekers het systeem tot extreme limieten van 32x en 64x compressie brachten, hield KVTC opmerkelijk goed stand.
Daarentegen begonnen populaire basislijnen zoals KIVI en GEAR enorme nauwkeurigheidsverslechtering te ondervinden bij een compressieverhouding van slechts 5x, vooral bij taken met een lange context. Standaard methoden voor het verwijderen van caches, zoals H2O en TOVA, bleken volkomen ontoereikend als generieke compressoren, die effectief kapot gingen wanneer hen werd gevraagd om diepgaande contextuele informatie op te halen.
Overweeg de inzet van een kleiner redeneermodel zoals Qwen 2.5 1.5B voor een codeerassistent. Normaal gesproken vereist dit model 29 KB geheugen voor elk token. Met behulp van een compressie-instelling van 8x verkleinde KVTC die voetafdruk tot ongeveer 3,2 KB per token, terwijl de codeernauwkeurigheid met 0,3 procentpunt te verwaarlozen was.
Voor enterprise-architecten hangt de beslissing wanneer deze techniek moet worden ingezet sterk af van de use case. “KVTC is geoptimaliseerd voor scenario’s met een lange context en meerdere bochten”, zei Lancucki. Hij wees op codeerassistenten, iteratieve werkstromen voor agentisch redeneren (vooral bij het wachten op tool-uitvoer met hoge latentie) en iteratieve RAG als ideale toepassingen. “Gebruikers moeten KVTC echter overslaan voor korte gesprekken”, voegde hij eraan toe, omdat het ongecomprimeerde schuifvenster van de nieuwste tokens de reeks domineert bij kortere interacties, waardoor betekenisvolle compressieverhoudingen worden voorkomen.
KVTC is zeer draagbaar en een geoptimaliseerde implementatie zal binnenkort worden geïntegreerd in de KV Block Manager (KVBM) binnen het Dynamo-framework, waardoor het compatibel wordt met populaire open-source inferentie-engines zoals vLLM.
Het belangrijkste voor de gebruikerservaring is dat KVTC de tijd tot het eerste token (TTFT) aanzienlijk verkort, de vertraging tussen het verzenden van een prompt en het model dat het eerste antwoordtoken genereert. Op een prompt van 8.000 tokens heeft een standaard 12B-model dat op een Nvidia H100 GPU draait ongeveer 3 seconden nodig om de geschiedenis helemaal opnieuw te berekenen. Ondertussen kan een systeem de KVTC-cache in slechts 380 milliseconden decomprimeren, wat tot een 8x kortere tijd oplevert die nodig is om het eerste token te genereren.
Omdat KVTC niets verandert aan de manier waarop het model aandacht besteedt aan tokens, is het theoretisch compatibel met methoden voor het uitzetten van tokens, zoals Dynamische geheugensparsificatie (DMS), een andere geavanceerde compressietechniek. DMS is een autoregressieve methode voor het verwijderen van tokens die het geheugen optimaliseert door de minst belangrijke tokens volledig uit het contextvenster te identificeren en te verwijderen.
“In principe is KVTC complementair aan DMS”, aldus Lancucki. “Terwijl DMS individuele tokens langs de tijdas verwijdert, comprimeert KVTC de gegevens op elke positie afzonderlijk.” Hij waarschuwde echter dat hoewel ze zich op verschillende dimensies richten, “het nog moet worden getest welke compressieverhoudingen kunnen worden bereikt met KVTC op spaarzame caches.”
Naarmate modellen native blijven schalen naar contextvensters van meerdere miljoenen tokens, zal de behoefte aan robuust geheugenbeheer alleen maar toenemen. “Gezien de structurele overeenkomsten en terugkerende patronen in KV-caches in verschillende modelarchitecturen, is de opkomst van een speciale, gestandaardiseerde compressielaag waarschijnlijk”, aldus Lancucki. Ondersteund door hardwareverbeteringen zou de AI-infrastructuur binnenkort KV-cachecompressie kunnen behandelen als een onzichtbare, gestandaardiseerde laag, net zoals videocompressie dat tegenwoordig doet bij streaming.



