Cascade: Exploiting SLO-Aware latency budget for fair and high goodput LLM inference serving
Cascade è un sistema di serving per LLM che sfrutta un budget di latenza dinamico per richiesta per ottimizzare congiuntamente lo scheduling e la gestione della cache KV, migliorando così significativamente il goodput che soddisfa gli SLO e l'equità, riducendo al contempo le violazioni rispetto agli approcci tradizionali first-come-first-served.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immaginate una stazione ferroviaria frenetica e ad alta velocità dove migliaia di passeggeri cercano di salire su treni diversi esattamente nello stesso momento. Alcuni passeggeri hanno appena uno zainetto (una domanda breve e veloce), mentre altri trascinano enormi e pesanti valigie piene di anni di ricordi (una storia lunga e complessa o un compito di ragionamento profondo). Nel mondo dell'Intelligenza Artificiale, questi "treni" sono i Large Language Models (LLM) — i computer super intelligenti che alimentano chatbot, assistenti alla programmazione ed agenti di ragionamento. I "passeggeri" sono le richieste che inviamo loro.
Affinché questi sistemi possano sembrare veloci e utili, devono promettere di fornire risposte entro un limite di tempo specifico, noto come Service Level Objective (SLO). Pensate a questo come a un biglietto che dice: "Devi essere sul treno e in movimento entro 5 secondi". Il problema è che i direttori della stazione hanno usato per molto tempo una regola molto vecchia: "Chi arriva prima, viene servito per primo". Ciò significa che se un passeggero con una valigia gigante arriva per primo, tutti gli altri devono aspettare dietro di lui, anche se la persona dietro ha solo un piccolo zainetto e potrebbe essere servita in una frazione di secondo. Questo causa un enorme ingorgo di traffico. Inoltre, la stazione dispone di una quantità limitata di memoria ad alta velocità (come una sala d'attesa VIP) per i bagagli dei passeggeri. Se il bagaglio viene conservato in un magazzino lento e distante, recuperarlo richiede tempo. Se il direttore della stazione non sa quanto tempo rimane a ogni passeggero prima che il suo treno parta, potrebbe sprecare secondi preziosi recuperando il bagaglio per qualcuno che è già in ritardo, mentre qualcun altro che è in tempo viene lasciato indietro.
Questa è la sfida affrontata da un nuovo sistema chiamato CASCADE, descritto in un recente articolo di ricercatori della University of British Columbia, Microsoft Azure Research e NVIDIA. I ricercatori si sono resi conto che ogni richiesta ha un "budget di tempo" nascosto — la differenza tra il tempo necessario per completare il proprio lavoro e il tempo che le è consentito impiegare. Alcune richieste hanno un budget enorme (molto tempo extra), mentre altre ne hanno quasi nessuno. L'articolo sostiene che, invece di guardare solo chi è arrivato prima o quanto è grande la richiesta, il sistema dovrebbe guardare questo budget di tempo rimanente per decidere chi va dopo e come gestire i propri dati.
L'idea centrale di CASCADE è trattare questo budget di tempo come una valuta condivisa per due diversi compiti: decidere l'ordine delle richieste e gestire dove risiedono i loro dati. Nelle simulazioni dell'articolo, che hanno utilizzato dati di traffico reali da server di produzione e testato su tre diversi modelli IA giganti (Qwen-2.5-72B, Llama-3-70B e Llama-3-405B), CASCADE ha mostrato risultati impressionanti. Calcolando costantemente quanto "margine di tempo" restava a ogni richiesta, il sistema poteva dare la priorità a quelle che stavano esaurendo il tempo, lasciando al contempo che le richieste con molto tempo attendessero un po' di più o recuperassero i propri dati da un'archiviazione più lenta e meno costosa.
I risultati suggeriscono che questo approccio è una svolta per l'efficienza. Nei loro test, CASCADE ha migliorato il numero di richieste completate con successo dal sistema (chiamato "goodput") fino a 2,4 volte rispetto al metodo standard "chi arriva prima, viene servito per primo" utilizzato da sistemi popolari come vLLM. Ancora più importante, ha ridotto il numero di richieste che hanno mancato i loro limiti di tempo (violazioni SLO) del 40%. Forse in modo più creativo, lo ha fatto senza far soffrire le richieste lunghe e complesse. A differenza di altri metodi che potrebbero affrettare le richieste brevi lasciando a secche quelle lunghe, CASCADE ha mantenuto l'esperienza equa per tutti, assicurando che sia i passeggeri con lo "zainetto" che quelli con la "valigia gigante" venissero serviti in tempo. Il sistema ha ottenuto questo decidendo dinamicamente se recuperare i dati dalla memoria veloce, dall'archiviazione più lenta o semplicemente ricalcolarli, basandosi interamente sul fatto che quella specifica richiesta avesse abbastanza budget di tempo per assorbire il ritardo.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.