← Nieuwste papers
🤖 machine learning

A JoLT for the KV Cache: Near-Lossless KV Cache Compression via Joint Tucker and JL-Residual Allocation for LLMs

JoLT bereikt een bijna verliesvrije 2-3x compressie van de KV-cache in grote taalmodellen door een gedeeltelijke Tucker-decompositie toe te passen op de token- en feature-assen en weggegooide informatie te herstellen via een Johnson-Lindenstrauss-geroteerd low-bit residu, alles geoptimaliseerd onder een uniform byte-budget om de baselineprestaties op perplexiteit en downstream-taken te behouden.

Oorspronkelijke auteurs: Rahul Krishnan, Volker Schulz

Gepubliceerd 2026-07-15
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Rahul Krishnan, Volker Schulz

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een enorme, superintelligente robothersenen (een Large Language Model) aanstuurt die een verhaal probeert te vertellen. Om het verhaal gaande te houden, moet de robot elk woord dat hij ooit in het huidige gesprek heeft gezegd, onthouden. Hij bewaart dit geheugen in een speciaal "notitieblok" genaamd de KV Cache.

Het probleem? Naarmate het verhaal langer wordt, wordt dit notitieblok enorm. Het wordt zo groot dat het al de geheugenruimte van de robot opeet, waardoor alles vertraagt. Het is alsof je een bibliotheek in je rugzak probeert te dragen terwijl je een marathon loopt; uiteindelijk stop je gewoon.

Wetenschappers hebben geprobeerd dit notitieblok eerder te verkleinen. Sommigen probeerden de hele boel in een klein doosje te proppen (kwantisatie), terwijl anderen probeerden de pagina's samen te vatten door patronen in rijen of kolommen te vinden (low-rank methoden). Maar de auteurs van dit artikel, Rahul Krishnan en Volker Schulz, merkten op dat deze andere methoden iets over het hoofd zagen: het notitieblok is niet zomaar een plat stapel papier. Het is een 3D-blok met drie verschillende zijden: Heads (verschillende manieren van denken), Tokens (de woorden) en Features (de details).

Ze ontdekten dat twee van deze zijden vol zitten met saaie, repetitieve zaken die gemakkelijk samengeperst kunnen worden, maar de andere zijden zijn uniek en kunnen niet worden samengeperst zonder de hersenkracht van de robot te verliezen.

De Grote Ontdekking: De "JoLT"-methode

Het team heeft een nieuwe truc uitgevonden genaamd JoLT (Joint Tucker and JL-residual allocation). Denk aan dit als een superintelligente inpakservice voor je rugzak.

  1. De Slimme Pers (Partial Tucker): In plaats van te proberen het hele 3D-blok samen te persen, kijkt JoLT naar de data en zegt: "Oké, de 'Heads' en 'Layers' zijn uniek en kostbaar; laten we die met rust laten. Maar de 'Tokens' en 'Features' zitten vol met franje." Dus het perst alleen die twee specifieke zijden samen. Het is alsof je een groot, pluizig kussen neemt en alleen de lucht uit het midden perst, terwijl de stevige randen intact blijven.
  2. Het Veiligheidsnet (JL-Residual): Wanneer je een kussen perst, ontsnapt er wat lucht. Als je dat gewoon laat gebeuren, is het kussen plat en nutteloos. JoLT vangt die "ontsnapte lucht" (de verloren informatie) op en slaat deze op in een klein, superefficiënt veiligheidsnet genaamd een JL-residual. Dit net is zo goed in inpakken dat het de ontbrekende details in slechts een paar bits kan vasthouden.
  3. De Perfecte Balans (Lagrangian Dual): Hier zit de magie. De robot heeft een strikt budget voor hoeveel ruimte hij kan gebruiken (bijvoorbeeld 1 byte). JoLT gebruikt een wiskundige "slimme allocator" om precies te beslissen hoeveel het kussen moet worden samengeperst versus hoeveel ruimte er aan het veiligheidsnet moet worden gegeven. Het realiseert zich dat sommige delen van het geheugen (de "Keys") makkelijk samen te persen zijn, terwijl andere delen (de "Values") koppig zijn en meer ruimte voor het veiligheidsnet nodig hebben. Het verplaatst het budget dynamisch om het beste resultaat te krijgen.

Wat ze bewezen hebben (en wat niet)

De auteurs testten dit op twee beroemde robothersenen: Mistral-7B (die een "Grouped-Query"-stijl gebruikt) en LLaMA-2-13B (die een "Multi-Head"-stijl gebruikt).

  • De "Vrije Zone": Ze vonden een 'sweet spot' waar ze het geheugen met 2 tot 3 keer (2–3×) konden verkleinen zonder dat de prestaties van de robot afnamen. Het was "bijna verliesloos" (near-lossless).

    • Op tests zoals GSM8K (wiskundige problemen) en RULER (een naald in een hooiberg van tekst vinden), scoorde de gecomprimeerde robot exact hetzelfde als de ongecomprimeerde versie, binnen de marge van statistische ruis.
    • De fout bij het reconstrueren van het geheugen was minimaal: ongeveer 0,009 voor keys en 0,006 voor values. Dit is ongeveer 10 keer beter (een orde van grootte) dan eerdere methoden zoals 4-bit kwantisatie of cross-layer SVD.
  • De "Cliff" (De Afgrond): Ze ontdekten ook een limiet. Als je het geheugen te hard probeert samen te persen (voorbij 3×), wordt het een rommeltje.

    • De Mistral-robot degradeerde geleidelijk; hij verloor langzaam een beetje prestatie naarmate je meer samenperste.
    • De LLaMA-robot daarentegen raakte echter een "cliff" tussen 4× en 5× compressie. Zijn prestaties stortten hard in, met een enorme sprong in perplexiteit (wat betekent dat hij veel slechter werd in het voorspellen van woorden).

De Snelle Versie: FlashJoLT

Het berekenen van de perfecte persing kost tijd. Om dit op te lossen, hebben ze FlashJoLT gemaakt. In plaats van de zware wiskunde telkens perfect uit te voeren, gebruikt het een "gerandomiseerde" kortere route die de belangrijkste patronen snel raadt.

  • Het resultaat: Het is 5 tot 13 keer sneller in het comprimeren van het geheugen, maar de kwaliteit blijft exact hetzelfde als de trage, perfecte versie.

Wat ze hebben uitgesloten

Het artikel is heel duidelijk over wat niet goed werkt voor dit specifieke probleem:

  • Alles samendrukken: Proberen alle drie de zijden (Heads, Tokens en Features) samen te persen is een slecht idee. De "Heads" en "Layers" zijn te uniek; het samendrukken ervan schaadt de hersenkracht van de robot.
  • Fixed-bit kwantisatie: Gewoon het aantal bits voor elk getal verlagen (zoals alles naar 4 bits dwingen) kan de "sweet spot" van 2–3× compressie niet bereiken. Het comprimeert ofwel niet genoeg, of het verliest te veel kwaliteit.
  • Eén maat voor iedereen: Je kunt "Keys" en "Values" niet hetzelfde behandelen. De "Values" zijn veel moeilijker te comprimeren (2–3× moeilijker), dus ze hebben een ander budget aan ruimte nodig.

De Kern van het Verhaal

De auteurs hebben dit gemeten op echte hardware (een A100 GPU) en vonden dat JoLT een bijna verliesloze manier creëert om het geheugen met 2–3 keer te verkleinen zonder de intelligentie van de robot aan te tasten.

Ze zijn echter voorzichtig om te zeggen dat dit geen wondermiddel is voor alles.

  • Het werkt geweldig voor de "vrije zone" (2–3×), maar als je harder pusht op bepaalde robottypen (zoals LLaMA), veroorzaakt dit een scherpe daling in kwaliteit.
  • Hoewel de opslag van het geheugen kleiner is, moet de robot nog steeds wat wiskunde doen om het geheugen te "ontpakken" telkens wanneer hij spreekt. Ze suggereren dat om dit echt praktisch bruikbaar te maken voor de echte wereld, ingenieurs speciale computerchips (fused kernels) moeten bouwen die het samengeperste geheugen direct kunnen lezen zonder het eerst uit te pakken.

Kortom: JoLT is een briljante, wiskundig zware inpaktruc die een enorme hoeveelheid ruimte bespaart voor lange gesprekken, maar het heeft een limiet en heeft een beetje hulp nodig van toekomstige hardware om op volle snelheid te draaien.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →