SLO-Aware Compute Resource Allocation for Prefill-Decode Disaggregated LLM Inference

Questo articolo propone un approccio ibrido che combina modellazione teorica e benchmark empirico per determinare l'allocazione ottimale delle risorse hardware nella disaggregazione Prefill-Decode per l'inferenza di LLM, garantendo il rispetto degli obiettivi di livello di servizio (SLO) relativi a throughput e latenza.

Luchang Li, Dongfang Li, Bozhao Gong, Yu Zhang

Pubblicato 2026-03-06
📖 4 min di lettura🧠 Approfondimento

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

Immagina di gestire un ristorante di lusso molto affollato, dove gli chef devono preparare piatti complessi (le risposte di un'intelligenza artificiale) per centinaia di clienti contemporaneamente.

In passato, ogni chef faceva tutto da solo: prima preparava gli ingredienti (la fase di "Prefill") e poi cuoceva il piatto (la fase di "Decode"). Il problema? Se uno chef era troppo lento a preparare gli ingredienti, tutti gli altri restavano fermi ad aspettare, e se era troppo lento a cuocere, gli ingredienti si accumulavano. Era un caos, e i clienti si lamentavano perché il primo boccone arrivava troppo tardi o il servizio era lento.

La soluzione moderna è stata separare i compiti: abbiamo un team di "Preparatori" (Prefill) che si occupa solo degli ingredienti e un team di "Cuochi" (Decode) che si occupa solo della cottura. Questo è il concetto di Disaggregazione Prefill-Decode.

Ma ecco il nuovo problema: Quanti preparatori e quanti cuochi servono esattamente?
Se ne assumi troppi, sprechi soldi. Se ne assumi troppo pochi, i clienti si arrabbiano perché aspettano troppo.

Questo articolo scientifico di Kingsoft Cloud offre una ricetta matematica per trovare il numero perfetto di staff, garantendo che il ristorante sia veloce, economico e che non si rompa mai.

Ecco come funziona la loro "ricetta", spiegata in modo semplice:

1. La Teoria: Il Bilancio del Traffico

Immagina che il ristorante debba servire un certo numero di piatti al minuto (il "Throughput").

  • Se i piatti sono lunghi (molte parole da generare), servono più Cuochi.
  • Se gli ordini sono complessi (molte parole da leggere prima di iniziare), servono più Preparatori.

Gli autori hanno creato una formula che dice: "Se so quanti piatti devo fare e quanto sono lunghi, posso calcolare esattamente quanti preparatori e cuochi mi servono".

2. Il Problema del "Primo Boccone" (TTFT)

C'è una regola d'oro: il cliente non deve aspettare più di 2 secondi per vedere il primo boccone (chiamato TTFT).

  • L'approccio vecchio: Si pensava che più veloce fosse il preparatore, meglio era.
  • La scoperta di questo articolo: Se il preparatore corre troppo veloce, si crea una coda di ordini in attesa che lo rallenta! È come se un'autostrada fosse vuota ma ci fossero troppi incroci: il traffico si blocca.

Usando una teoria matematica chiamata Teoria delle Code (M/M/1), gli autori spiegano che per rispettare la regola dei "2 secondi", il preparatore deve lavorare a una velocità precisa, né troppo lenta né troppo veloce. Se il cliente è impaziente (vuole il primo boccone subito), il preparatore deve rallentare leggermente per non creare ingorghi, garantendo che il primo ordine esca sempre in tempo.

3. Il Problema della "Cottura" (TPOT)

Una volta iniziato il piatto, il cliente vuole che arrivi il resto velocemente (ogni parola nuova deve arrivare ogni 20 millisecondi, chiamato TPOT).

  • Qui, i "Cuochi" lavorano meglio se cucinano più piatti insieme (in gruppo), ma se il gruppo è troppo grande, la cottura diventa lenta per tutti.
  • Gli autori hanno fatto degli esperimenti pratici (benchmark) per trovare il "numero magico" di piatti da cuocere insieme. Hanno scoperto che c'è un punto esatto in cui il gruppo è abbastanza grande da essere efficiente, ma non così grande da far aspettare il cliente.

4. La Soluzione Pratica: Il Test di Assaggio

Per trovare il numero perfetto di staff, l'articolo suggerisce di fare due cose:

  1. Misurare la velocità massima dei preparatori e dei cuochi quando non sono disturbati.
  2. Applicare la "Teoria delle Code" e i dati reali per vedere quanto velocemente possono lavorare senza far aspettare i clienti.

Esempio reale dal testo:
Hanno testato questo metodo su un modello di intelligenza artificiale molto grande (DeepSeek-V3.1).

  • Obiettivo: Servire 5 milioni di parole al minuto, con tempi di attesa brevissimi.
  • Risultato: La loro formula ha detto: "Ti servono 3 Preparatori e 4 Cuochi".
  • Verifica: Hanno provato a usare 3 Preparatori e 3 Cuochi. Risultato? Il servizio era lento e i clienti si lamentavano. Con 3 e 4, invece, tutto scorreva perfettamente e si risparmiavano risorse.

In Sintesi

Questo articolo ci dice che non serve indovinare quanti computer (GPU) usare per l'intelligenza artificiale. Basta:

  1. Sapere cosa vogliono i clienti (quanto sono veloci e quanto sono lunghe le richieste).
  2. Misurare quanto sono veloci i computer da soli.
  3. Usare una semplice formula matematica (basata su come si comportano le code al supermercato) per calcolare il mix perfetto tra chi prepara e chi finisce il lavoro.

È come avere un GPS per l'efficienza: ti dice esattamente quante risorse usare per non sprecare soldi e per garantire che l'intelligenza artificiale risponda sempre in tempo, senza mai bloccarsi.