BanaServe: Unified KV Cache and Dynamic Module Migration for Balancing Disaggregated LLM Serving in AI Infrastructure

BanaServe is een dynamisch orchestration framework dat de prestaties van gedisaggregeerde LLM-servingsystemen verbetert door middels migratie van gewichten en KV-cache op laag- en attentieniveau de belasting tussen prefill- en decode-instanties continu te balanceren en zo resource-efficiëntie te maximaliseren terwijl serviceleveldoelstellingen worden gewaarborgd.

Yiyuan He, Minxian Xu, Jingfeng Wu, Jianmin Hu, Chong Ma, Min Shen, Le Chen, Chengzhong Xu, Lin Qu, Kejiang Ye

Gepubliceerd 2026-03-11
📖 5 min leestijd🧠 Diepgaand

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

Stel je voor dat een Grote Taalmodel (LLM) zoals een superintelligente chef-kok in een gigantisch restaurant is. Deze chef kan prachtige recepten (antwoorden) bedenken, maar het koken van een maaltijd bestaat uit twee heel verschillende fases:

  1. Het lezen van het menu (Prefill): De chef leest de hele bestelling van de klant in één keer. Dit is een zware, snelle taak die veel hersenkracht (rekenkracht) vraagt, maar weinig ruimte in de koelkast (geheugen).
  2. Het opdienen van het eten (Decode): De chef serveert het gerecht woord voor woord. Dit is een langzame, herhalende taak die veel koelkastruimte nodig heeft om de ingrediënten bij de hand te houden, maar minder hersenkracht vraagt.

Het Probleem: Twee Restaurants in Eén Gebouw

In de huidige systemen (zoals vLLM of DistServe) proberen ze deze twee fases te regelen, maar er zijn drie grote problemen:

  1. Statische indeling: Ze hebben vaste keukens voor "lezen" en vaste keukens voor "serveren". Als er ineens 100 mensen tegelijk een menu willen lezen, staat de lees-keukens vol, terwijl de server-keukens leeg staan. En andersom: als er veel bestellingen zijn om op te dienen, staat de server-keukens vol, maar de lees-keukens staan stil. Het is alsof je 10 koks hebt voor het lezen, maar maar 1 voor het serveren; of andersom.
  2. De "Populaire Recepten" valkuil: Sommige bestellingen zijn heel populair (bijv. "Hoe maak ik een pizza?"). De chef die dit al eens heeft gekookt, heeft de recepten in zijn hoofd (cache). Het systeem stuurt alle pizza-bestellingen naar die ene chef, omdat hij het snelst kan. Resultaat? Die ene chef staat in de file, terwijl de andere chefs met lege handen toekijken.
  3. Onbalans: De "lees-fase" is zwaar op de rekenkracht, de "server-fase" is zwaar op het geheugen. Ze passen niet goed bij elkaar in één systeem.

De Oplossing: BanaServe (De Slimme Restaurantmanager)

De auteurs van dit papier hebben BanaServe bedacht. Dit is een slimme manager die het restaurant volledig herindelt, afhankelijk van wat er op dat moment gebeurt.

Hier is hoe het werkt, met een paar creatieve vergelijkingen:

1. De "Dynamische Verhuizing" (Module Migration)

Stel je voor dat de chef-koks niet vastzitten aan één plek.

  • Grof niveau (Laag-migratie): Als de "lees-keukens" overvol zitten, pakt de manager een hele groep koks (een laag van het model) en verplaatst ze direct naar de "server-keukens". Het is alsof je een hele afdeling verplaatst van de ene verdieping naar de andere om de drukte te verdelen.
  • Fijn niveau (Aandacht-migratie): Soms is het probleem kleiner. De manager verplaatst dan alleen een paar specifieke ingrediënten (de 'KV Cache', de geheugenstukjes) naar een andere chef. Dit is heel snel en kost weinig moeite, maar lost kleine onevenwichtigheden direct op.

Het resultaat: De belasting wordt continu in evenwicht gehouden. Geen enkele chef staat stil, en niemand loopt vast.

2. De "Grote Delenkast" (Global KV Cache Store)

In oude systemen moest een chef naar een specifieke collega rennen om een recept te vinden dat die collega al kende. Dit veroorzaakte files.
BanaServe introduceert een Grote, Centrale Delenkast (een Global Store) waar iedere chef bij kan.

  • Als een klant een pizza bestelt, kijkt de manager niet meer: "Wie heeft dit al in zijn hoofd?"
  • De manager kijkt gewoon: "Wie heeft de minste werk?"
  • De chef pakt het recept zo nodig uit de centrale kast.
  • Vergelijking: Het is alsof elke chef een tablet heeft met toegang tot dezelfde online receptenbank. Je hoeft niet meer naar de enige chef te rennen die het recept kent; iedereen kan het zo opzoeken. Hierdoor verdwijnt de file bij de "populaire" chefs.

3. De "Slimme Planner" (Load-aware Scheduling)

Omdat de centrale delenkast alles oplost, hoeft de planner (de router) zich geen zorgen meer te maken over waar de recepten staan. Hij kijkt alleen nog maar naar wie het minst druk is.

  • "Chef A heeft 10 bestellingen, Chef B heeft 2." -> De nieuwe bestelling gaat naar Chef B.
  • Dit zorgt ervoor dat het hele restaurant gelijkmatig draait, zonder dat er ergens een file ontstaat.

Waarom is dit geweldig?

De tests in het papier tonen aan dat BanaServe veel sneller is dan de huidige systemen:

  • Meer klanten per uur: Het restaurant kan tot 3,9 keer meer bestellingen afhandelen.
  • Snellere bediening: Klanten hoeven minder lang te wachten op hun eerste woord (de eerste hap).
  • Minder verspilling: Geen koks die in de weg staan of lege koelkasten.

Samenvatting in één zin

BanaServe is als een slimme restaurantmanager die continu koks verplaatst tussen de keuken en de serveerkamer, en een centrale receptenbank gebruikt, zodat er nooit files ontstaan en iedereen even hard werkt, ongeacht of het druk is met lezen of met serveren.

Dit maakt het mogelijk om enorme AI-modellen veel efficiënter en goedkoper te draaien, zelfs als de vraag plotseling stijgt (bijvoorbeeld als iedereen tegelijk een chatbot wil gebruiken).