Home Nieuws Nvidia zegt dat het het LLM-geheugen 20x kan verkleinen zonder het gewicht...

Nvidia zegt dat het het LLM-geheugen 20x kan verkleinen zonder het gewicht van het model te veranderen

6
0
Nvidia zegt dat het het LLM-geheugen 20x kan verkleinen zonder het gewicht van het model te veranderen

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-geheugenvereisten te verlagen en de tijd voor het genereren van eerste tokens tot 8x te versnellen.

Voor zakelijke AI-applicaties die afhankelijk zijn van agents en lange contexten betekent dit lagere GPU-geheugenkosten, sneller hergebruik en tot 8x kortere latentie door de noodzaak te vermijden om ontbrekende KV-cachewaarden opnieuw te berekenen.

Om grote taalmodellen op grote schaal te kunnen bedienen, is het beheer van grote hoeveelheden 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 er enorme beperkingen ontstaan ​​op het gebied van latentie en infrastructuurkosten.

Waarom KV-caches op grote schaal een knelpunt vormen

Om multi-loop AI-toepassingen zoals codeerassistenten of chattoepassingen te ondersteunen, vertrouwen grote taalmodellen op mechanismen die bekend staan ​​als sleutelwaarde (KV) cache.. Deze cache slaat verborgen numerieke representaties op voor elk vorig token in het gesprek. Omdat het model eerdere gesprekken onthoudt, hoeft het niet de hele chatgeschiedenis onnodig opnieuw te verwerken telkens wanneer de gebruiker een nieuwe opdracht verzendt.

Voor AI-toepassingen met lange contexttaken kan deze cache echter gemakkelijk oplopen tot enkele gigabytes. Naarmate het model opschaalt en steeds langere redeneringsketens genereert, wordt de KV-cache een cruciaal knelpunt voor de systeemdoorvoer en latentie.

Dit zorgt voor lastige uitdagingen voor productieomgevingen. Omdat LLM tijdens de inferentie sterk geheugengebonden is, wordt het bedienen van veel gelijktijdige gebruikers beperkt door de uitputting van het GPU-geheugen, en niet door de rekentijd. “Effectief KV-cachebeheer wordt van cruciaal belang, omdat inactieve cache snel uit het GPU-geheugen moet worden verwijderd om andere gebruikers tegemoet te komen, en snel moet worden hersteld om het gesprek voort te zetten”, vertelde 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 verplaatsen van de cache naar opslag op een laag niveau, zoals CPU-geheugen of SSD, brengen aanzienlijke overheadkosten met zich mee die de netwerkbandbreedte kunnen overbelasten 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 zijn echter vaak niet in staat problemen holistisch op te lossen. Tools die zijn ontworpen om caches te comprimeren voor netwerktransmissie, bereiken een laag compressieniveau. Andere compressiemethoden vereisen snelle, resource-intensieve berekeningen voor elke gebruikersopdracht. Ondertussen zijn populaire technieken zoals kwantisering of sparsificatie kan leiden tot verminderde latentie en nauwkeurigheid of permanente wijzigingen in de modelgewichten vereisen, waardoor de bruikbaarheid ervan wordt beperkt.

In hun artikel merken de Nvidia-onderzoekers op dat bestaande benaderingen “zelden gebruik maken van robuuste KV-tensorstructuren van lage orde.” Dit betekent dat, ondanks de enorme afmetingen en 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 kenmerken is waar KVTC zich op richt.

Een trucje lenen van mediacodecs

Op een hoog niveau overwint KVTC het geheugenknelpunt van AI door een beproefd concept te lenen van klassieke media: transformatiecodering, een methodologie die bekende beeld- en videocompressieformaten zoals JPEG ondersteunt. Het raamwerk minimaliseert de cachevoetafdruk via een snel, uit meerdere stappen bestaand proces dat tussen de inferentiefasen doorloopt om te voorkomen dat de daadwerkelijke tokengeneratie wordt vertraagd. “Deze ‘mediacompressie’-aanpak is voordelig voor bedrijfsimplementaties omdat deze niet verstorend 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 KV-cachegegevensfuncties uit te lijnen op basis van hun belang. PCA is een statistische techniek vaak gebruikt bij machinaal leren om modellen efficiënter te maken door de belangrijkste gegevenskenmerken te isoleren en redundantie te elimineren. Dit deel van het proces wordt voor elk model slechts één keer uitgevoerd tijdens de initiële kalibratiefase. Omdat de PCA-uitlijningsmatrix offline wordt berekend en hergebruikt, vertraagt ​​deze het compressieproces op het moment van inferentie voor individuele gebruikersverzoeken niet.

KVTC

KVTC-structuur (bron: arXiv)

Vervolgens gebruikt het systeem een ​​dynamisch programmeeralgoritme om automatisch te schatten hoeveel geheugen elke specifieke datadimensie daadwerkelijk nodig heeft. De belangrijkste hoofdcomponenten krijgen een hoge nauwkeurigheid, terwijl de minder belangrijke aanvullende componenten minder bits ontvangen of nul bits krijgen toegewezen en geheel worden weggelaten.

Ten slotte neemt de pijplijn deze geoptimaliseerde gekwantiseerde gegevens en verpakt deze in een byte-array, waarbij deze door een entropie-encoder genaamd DEFLATE wordt geleid. 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 berekening eenvoudigweg in omgekeerde volgorde uit. Om het proces te versnellen voert hij zware decompressie uit in stukjes, laag voor laag. Hierdoor kan het AI-model vroegtijdig beginnen met het berekenen van de volgende respons met behulp van het eerste gedecomprimeerde deel, terwijl daaropvolgende delen op de achtergrond worden gedecomprimeerd.

KVTC dient architectuur

KVTC-implementatiearchitectuur (bron: arXiv)

20x compressie, minder dan 1% nauwkeurigheidsverlies.

Nvidia-onderzoekers hebben KVTC getest op een verscheidenheid aan modellen, variërend van 1,5 miljard tot 70 miljard parameters, waaronder de Llama 3-familie, Mistral NeMo en R1-gedistilleerde Qwen 2.5-modellen. Ze evalueerden deze modellen aan de hand van een verscheidenheid aan 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 stellen KVTC tegenover verschillende populaire fundamenten: token-uitzettingsmethoden (bijv. H2O en TOVA), zware kwantiseringstechnieken (bijv. KIVI en GEAR) en xKV (een snelle compressietechniek gebaseerd op ontleding van één waarde).

Bij een effectieve compressieverhouding van 20x handhaaft KVTC bij de meeste taken consistent de prestaties binnen een nauwkeurigheidsboete van minder dan één procentpunt vergeleken met het originele ongecomprimeerde vanillemodel. Toen onderzoekers het systeem tot extreme limieten duwden, tot 32x en 64x compressie, hield KVTC opmerkelijk goed stand.

Daarentegen beginnen populaire basislijnen zoals KIVI en GEAR enorme nauwkeurigheidsverslechtering te ervaren bij een compressieverhouding van slechts 5x, vooral bij taken met een lange context. Standaard methoden voor het verwijderen van caches, zoals H2O en TOVA, blijken volkomen ontoereikend te zijn als generieke compressoren, omdat ze effectief kapot gaan als er wordt gevraagd om diepgaande contextuele informatie op te halen.

KVTC-prestaties

KVTC handhaaft de nauwkeurigheid van belangrijke benchmarks terwijl de KV-cache aanzienlijk wordt gecomprimeerd (bron: arXiv)

Overweeg de implementatie van een kleiner redeneermodel zoals Qwen 2.5 1.5B voor codeerassistenten. Normaal gesproken vereist dit model 29 KB geheugen voor elk token. Met behulp van een compressie-instelling van 8x verkleint KVTC die voetafdruk tot ongeveer 3,2 KB per token, terwijl de coderingsnauwkeurigheid met 0,3 procentpunt afneemt.

Voor enterprise-architecten hangt de beslissing wanneer ze deze technieken moeten toepassen grotendeels af van de use case. “KVTC is geoptimaliseerd voor scenario’s met meerdere bochten met een lange context”, zei Lancucki. Hij wijst op codeerassistenten, iteratieve workflows voor het redeneren van agenten (vooral bij het wachten op tool-uitvoer met hoge latentie) en iteratieve RAG’s als ideale toepassingen. “Gebruikers zullen KVTC echter moeten omzeilen voor korte gesprekken”, voegde hij eraan toe, omdat een schuifvenster van de nieuwste ongecomprimeerde tokens de reeks domineert in kortere interacties, waardoor een betekenisvolle compressieverhouding wordt voorkomen.

KVTC is zeer draagbaar en de geoptimaliseerde implementatie ervan zal binnenkort worden geïntegreerd in KV Block Manager (KVBM) in het Dynamo-framework, waardoor het compatibel wordt met populaire open source inferentie-engines zoals vLLM.

Het belangrijkste voor de gebruikerservaring is dat KVTC de time to first token (TTFT) aanzienlijk verkort, de vertraging tussen het verzenden van een opdracht en het model dat het eerste responstoken genereert. Bij de prompt van 8.000 tokens had het vanilla 12B-model, draaiend op een Nvidia H100 GPU, ongeveer 3 seconden nodig om de geschiedenis helemaal opnieuw te berekenen. Ondertussen kan het systeem de KVTC-cache in slechts 380 milliseconden decomprimeren, waardoor de tijd die nodig is om het eerste token te genereren tot wel 8x wordt verkort.

Omdat KVTC de manier waarop het model aandacht besteedt aan tokens niet verandert, 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 een aanvulling op DMS”, zegt Lancucki. “Terwijl DMS individuele tokens langs de tijdas uitgeeft, comprimeert KVTC de gegevens op elke positie afzonderlijk.” Hij waarschuwde echter dat zelfs als ze zich op verschillende dimensies richten, “het nog moet worden getest welke compressieverhouding kan worden bereikt met KVTC op een schaarse cache.”

Naarmate het model native blijft 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 architecturale modellen, is de opkomst van zowel gestandaardiseerde als gespecialiseerde compressielagen waarschijnlijk”, aldus Lancucki. Ondersteund door hardwareontwikkelingen zou de AI-infrastructuur binnenkort KV-cachecompressie kunnen behandelen als een standaard onzichtbare laag, net zoals videocompressie bij streaming tegenwoordig.

Nieuwsbron

LAAT EEN REACTIE ACHTER

Vul alstublieft uw commentaar in!
Vul hier uw naam in