Adaptive Multi-Objective Tiered Storage Configuration for KV Cache in LLM Service

Dit paper introduceert Kareto, een geoptimaliseerde tool voor het dynamisch beheren van gestapelde opslag voor KV-caches in LLM-diensten, die door het vinden van de Pareto-grens tussen kosten, doorvoer en latentie aanzienlijke verbeteringen boekt ten opzichte van statische configuraties.

Xianzhe Zheng, Zhengheng Wang, Ruiyan Ma, Rui Wang, Xiyu Wang, Rui Chen, Peng Zhang, Sicheng Pan, Zhangheng Huang, Chenxin Wu, Yi Zhang, Bo Cai, Kan Liu, Teng Ma, Yin Du, Dong Deng, Sai Wu, Guoyun Zhu, Wei Zhang, Feifei Li

Gepubliceerd Wed, 11 Ma
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

Stel je voor dat je een gigantische, slimme robot (een Large Language Model of LLM) hebt die vragen beantwoordt. Om snel te zijn, onthoudt deze robot wat hij net heeft gezegd, zodat hij niet elke zin opnieuw hoeft uit te rekenen. Dit noemen we de KV-cache.

Het probleem is dat deze robot een enorm geheugen nodig heeft om alles bij te houden. Maar het dure, supersnelle geheugen in de robot (de GPU) is klein en duur. Als je te veel vragen tegelijk krijgt, raakt dit geheugen vol.

De oplossing die veel mensen nu gebruiken, is om het "oude" geheugen naar goedkopere, langzamere plekken te verplaatsen, zoals een harde schijf of het werkgeheugen van de computer. Maar hier zit de valkuil: Hoeveel ruimte moet je aan elk type geheugen geven?

  • Geef je te veel aan de dure, snelle plek? Dan ben je veel geld kwijt.
  • Geef je te veel aan de goedkope, trage plek? Dan wordt de robot traag en wachten mensen lang op hun antwoord.
  • En wat als de vraagstelling verandert? Soms zijn er veel korte vragen, soms lange gesprekken. Een vaste instelling werkt dan niet meer.

Dit is precies waar het paper over gaat. De auteurs hebben Kareto bedacht: een slimme, lerende assistent die voor je uitzoekt wat de perfecte balans is.

Hier is hoe Kareto werkt, vertaald naar alledaagse taal:

1. De "Proefkeuken" (De Simulator)

Stel je voor dat je een kok bent die een nieuw recept wil testen. Je kunt niet zomaar 100 keer een hele maaltijd koken; dat kost te veel tijd en ingrediënten. In plaats daarvan bouw je een virtuele keuken (de simulator).
In deze virtuele keuken kun je duizenden scenario's doornemen: "Wat gebeurt er als ik 500 GB aan snel geheugen heb en 1000 GB aan harde schijf?" of "En als ik 200 GB snel geheugen heb?"
De simulator speelt historische data na (vragen die mensen in het verleden stelden) en zegt precies: "Met deze instelling kost het je €100 en duurt het antwoord 2 seconden. Met die instelling kost het €80 maar duurt het 5 seconden."

2. De "Slimme Zoeker" (Adaptive Pareto Search)

Het vinden van de beste instelling is als het zoeken naar de top van een berg in mist. Je kunt niet elke steen op de berg controleren; dat duurt eeuwen.
Kareto gebruikt een slimme truc: de wet van de afnemende meeropbrengst.
Stel je voor dat je een auto hebt. De eerste 100 km/uur kost weinig brandstof. De volgende 50 km/uur kost al veel meer. Als je probeert van 200 naar 201 km/uur te gaan, kost dat enorm veel energie voor een minieme winst.
Kareto weet dit. Het zoekt eerst grof, en zodra het ziet dat het toevoegen van meer geheugen nauwelijks nog snelheid oplevert, stopt het daar met zoeken. Zo bespaart het enorm veel tijd en vindt het toch de beste plekken op de berg.

3. De "Individuele Bewaartijd" (Group TTL)

Vroeger behandelden systemen alle informatie hetzelfde: "Bewaar alles 10 minuten, en gooi het dan weg."
Maar Kareto kijkt scherper. Het ziet dat sommige informatie (zoals een standaard begroeting of een veelgebruikte code) altijd weer terugkomt. Andere informatie (een eenmalige vraag) komt nooit meer terug.
Kareto gebruikt een boodschappenlijstje (een prefix tree) om te zien welke stukjes informatie populair zijn.

  • Populaire stukjes: Deze krijgt een lange "bewaar-tijd" (TTL), zodat ze snel beschikbaar zijn.
  • Onduidelijke stukjes: Deze krijgen een korte bewaar-tijd of worden snel verwijderd.
    Het is alsof je in je koelkast alleen de melk en het brood (die je elke dag gebruikt) op een handige plek legt, en de rare kruiden (die je maar één keer per jaar gebruikt) in een hoekje of zelfs niet in huis haalt. Dit maakt het geheugen veel efficiënter.

Wat levert dit op?

Door deze slimme aanpak kunnen bedrijven:

  • Sneller zijn: De robot reageert tot wel 58% sneller op vragen.
  • Meer doen: Ze kunnen meer vragen tegelijk afhandelen (tot 9% meer).
  • Besparen: Ze hoeven minder dure hardware te huren, wat 20% kostenbesparing oplevert.

Kortom: Kareto is de slimme manager die voor je uitzoekt hoeveel snel geheugen en hoeveel goedkoop geheugen je precies nodig hebt, op basis van wat je klanten echt doen. Het voorkomt dat je geld weggooit aan dure hardware die niet gebruikt wordt, of dat je klanten laat wachten omdat je te weinig geheugen hebt.