In che modo la lunghezza del contesto influisce sul throughput degli LLM locali?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Un contesto più lungo generalmente riduce il throughput degli LLM locali aumentando il calcolo di prefill, la memoria della cache KV, il lavoro di decodifica e la contesa per la capacità delle sequenze concorrenti.

L'effetto non segue un'unica curva universale di token al secondo. La lunghezza del prompt amplia principalmente la fase di prefill, mentre il contesto attivo crescente fa sì che le fasi successive di decodifica eseguano l'attenzione su un numero maggiore di chiavi e valori memorizzati nella cache. Se la memoria si esaurisce, il server può accettare meno richieste, sospendere sequenze, trasferire la cache o rifiutare il lavoro, quindi il throughput dipende dal modello, dal kernel di attenzione, dall'hardware, dallo scheduler e dalla combinazione dei carichi di lavoro.

La lunghezza del prompt aumenta il lavoro di prefill prima del primo token

Durante il prefill, il modello elabora tutti i token del prompt per creare gli stati nascosti e la cache iniziale di chiavi e valori. Il lavoro dell'attenzione standard cresce rapidamente con la lunghezza della sequenza, anche se i kernel ottimizzati riducono il traffico di memoria e i fattori costanti senza rendere gratuita l'elaborazione dell'input.

L'articolo sull'attenzione consapevole dell'I/O introduce un algoritmo di attenzione esatta consapevole dell'I/O che riduce i trasferimenti tra i livelli di memoria della GPU. I suoi miglioramenti prestazionali mostrano perché la scelta del kernel modifica la curva, mentre il contesto sottostante richiede comunque calcolo e movimento dei dati in memoria.

Un server che comunica soltanto i token al secondo in decodifica può nascondere questo costo. Per RAG e conversazioni lunghe, il tempo al primo token e i prompt elaborati al secondo sono metriche necessarie insieme al throughput dell'output. Questa distinzione rimane visibile durante i successivi test domestici.

La cache KV cresce con ogni token di contesto attivo

La decodifica autoregressiva memorizza le chiavi e i valori dei token precedenti, così non devono essere ricalcolati. La memoria della cache scala in base alla lunghezza della sequenza attiva, al numero di livelli, alle dimensioni, alla precisione e al numero di sequenze concorrenti; contesti più lunghi riducono quindi il numero di richieste che possono essere gestite contemporaneamente.

PagedAttention di vLLM presenta PagedAttention per ridurre la frammentazione della cache KV e consentire una condivisione flessibile. Una migliore allocazione aumenta la capacità utilizzabile, ma non elimina i byte richiesti dal contesto conservato. Il risultato intermedio deve rimanere ispezionabile prima che l'automazione proceda.

Quando la capacità si esaurisce, i sistemi possono accodare le nuove richieste, espellere o ricalcolare la cache, trasferirla nella memoria dell'host oppure ridurre il batch. Questi criteri possono trasformare un benchmark fluido per un singolo utente in un goodput instabile per più utenti. Questo limite dovrebbe essere misurato separatamente in condizioni operative realistiche.

Le fasi di decodifica leggono una quantità maggiore di cronologia quando il contesto cresce

Ogni token generato interroga la cache accumulata, quindi le letture dalla memoria e il lavoro di attenzione aumentano con la lunghezza della sequenza. Il modello può rimanere limitato dalla larghezza di banda della memoria, mentre la compressione del contesto o la quantizzazione della cache scambiano il risparmio di memoria con l'accuratezza e il supporto del kernel.

Il lavoro sulla quantizzazione della cache KV quantizza la cache KV per consentire contesti molto più lunghi e identifica esplicitamente la capacità della cache come un collo di bottiglia per i contesti lunghi. Questo dimostra che il contesto massimo dichiarato e il throughput sostenuto efficiente sono proprietà diverse. La conseguenza pratica emerge quando diverse fonti competono per una capacità di contesto limitata.

Il limite di funzionamento consiste nel confrontare due contesti modificando contemporaneamente la composizione del prompt, la lunghezza dell'output, la concorrenza o la precisione della cache. La qualità del recupero può migliorare con l'aggiunta di contenuti, anche mentre il throughput del sistema diminuisce; perciò le prestazioni e l'utilità della risposta devono essere valutate su assi separati.

Misura il throughput tra intervalli di lunghezza del prompt

Crea intervalli di prompt fissi, ad esempio di 512, 2.048, 8.192 e 16.384 token, con lunghezze dell'output controllate. Esegui ogni test con un utente e poi con una concorrenza crescente, registrando i token del prompt al secondo, i token dell'output al secondo, il tempo al primo token, la latenza tra i token, l'utilizzo della cache, il tempo in coda, le sospensioni e gli errori.

Confronta la curva con il rallentamento delle conversazioni lunghe descritto nel rallentamento della finestra di contesto. Mantieni costanti modello, quantizzazione, campionamento, scheduler e hardware, quindi ripeti l'esperimento con il caching del prefisso o la quantizzazione della cache come uniche variabili, in test separati. Questa dipendenza dovrebbe rimanere esplicita nell'interfaccia finale.

Stabilisci un budget operativo per il contesto a partire dal goodput rispetto all'obiettivo di latenza richiesto, non dalla lunghezza massima accettata dal modello. Recupera o riassumi i contenuti soltanto quando il conseguente miglioramento della qualità giustifica il costo misurato di prefill e cache.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.