Mooncake: inferenza disaggregata prefill-decode per il 525% in più di throughput
In una frase Moonshot AI (Kimi) separa le fasi prefill (GPU compute-bound) e decode (GPU memory-bound) su pool di GPU dedicati con trasferimento KV cache, raggiungendo il 525% di throughput in più nei deployment di produzione.
Quando un LLM risponde a un messaggio, fa due cose molto diverse in sequenza. Prima legge e comprende l'intera domanda tutta in una volta — questa fase si chiama prefill ed è molto intensa dal punto di vista computazionale, come un processore che lavora a pieno regime. Poi genera la risposta parola per parola — questa si chiama decode ed è limitata dalla velocità con cui si può leggere la memoria, non dalla potenza di calcolo.
Il problema di eseguire entrambe le fasi sulla stessa GPU è che si sta usando hardware costoso in modo non ottimale: durante il decode la potenza computazionale della GPU è per lo più sprecata, e durante il prefill la bandwidth di memoria è sottoutilizzata.
Moonshot AI ha risolto questo problema fisicamente separando i due tipi di lavoro. Un pool di GPU (prefill pool) fa solo il lavoro di comprensione delle domande, che è compute-intensive. Un altro pool (decode pool) fa solo la generazione della risposta, che è memory-intensive. Tra i due, il risultato intermedio del calcolo del prefill viene trasferito via rete veloce. Questo permette di dimensionare i due pool in modo ottimale per il loro tipo di lavoro, senza compromessi. Il risultato nel deployment di produzione di Kimi è stato un aumento di 5.25 volte il throughput totale del sistema.
Aziende
Moonshot AI
Tool
—
Tag
Fonti