Calcolatore della VRAM di inferenza per LLM
Dati di input
| Parametri | 7 |
|---|---|
| Precisione dei pesi | FP16 / BF16 (16 bit) |
| Overhead di runtime | 20 % |
Calcolatore della VRAM di inferenza per LLM
Stima la VRAM della GPU necessaria per servire in inferenza un modello linguistico di grandi dimensioni a partire dal numero di parametri, dalla precisione dei pesi e dall'overhead di runtime per la cache KV, le attivazioni e la frammentazione.
Dati di input
Modello
Runtime
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
La VRAM di inferenza per LLM
Servire un modello linguistico di grandi dimensioni parte da una domanda secca: entrerà nella GPU? La risposta è dominata dai pesi del modello, ma i soli pesi sottostimano il fabbisogno, perché un server di inferenza deve anche mantenere la cache KV, le attivazioni che attraversano ogni strato e una parte di memoria persa per la frammentazione. Questo calcolatore stima la VRAM totale a partire da tre dati: il numero di parametri, la precisione con cui sono memorizzati i pesi e un overhead di runtime che riassume tutto il resto in un singolo valore regolabile.
I pesi fissano il minimo
I pesi di un modello sono il suo costo fisso più grande in memoria. Ogni parametro è memorizzato a una precisione scelta: i pesi a 16 bit pieni occupano due byte ciascuno, la quantizzazione a 8 bit ne occupa uno e quella a 4 bit mezzo byte. Quindi un numero di parametri in miliardi, memorizzati a bit, occupa
W=8N⋅b GBUn miliardo di parametri a 16 bit è esattamente 2 GB, motivo per cui un modello da 7B richiede 14 GB solo per i pesi. Dividere il numero di bit per otto converte i bit in byte e, poiché i parametri si contano in miliardi e la memoria in gigabyte, le unità si allineano direttamente.
Aggiungere l'overhead di runtime
I pesi sono solo il minimo. Durante l'inferenza il server mantiene una cache KV che contiene le chiavi e i valori di attenzione per ogni token in elaborazione, alloca le attivazioni mentre ogni richiesta attraversa gli strati e perde un po' di memoria per la frammentazione. Il totale è
V=W⋅(1+o)dove è l'overhead espresso come frazione della dimensione dei pesi. La cache KV è la componente più grande e variabile — cresce con la lunghezza del contesto e con il numero di richieste concorrenti — quindi l'overhead corretto dipende fortemente dal carico di lavoro. Il venti percento è un punto di partenza ragionevole per prompt brevi con batch di dimensioni modeste; il serving a contesto lungo e ad alto throughput può farlo salire molto.
Esempio svolto
Consideriamo un modello da 7 miliardi di parametri servito a 16 bit di precisione con un overhead del 20 percento:
WV=87×16=14 GB=14×(1+0,20)=16,8 GBIl totale di 16,8 GB entra comodamente in una scheda da 24 GB ma non lascia spazio su una da 16 GB. Per eseguire lo stesso modello su una GPU più piccola, scendere a 8 bit dimezzerebbe i pesi a 7 GB e porterebbe il totale vicino a 8,4 GB. Il rapporto tra dimensione del modello e precisione è approfondito nel Calcolatore della dimensione del modello dalla quantizzazione.
Far entrare un modello
Poiché la memoria scala in proporzione diretta ai bit per peso, la quantizzazione è la leva più diretta: da 16 a 8 bit dimezza la memoria dei pesi, e da 8 a 4 bit la dimezza di nuovo, di solito con una perdita di qualità dell'output modesta e accettabile. Quando persino un modello quantizzato supera un singolo acceleratore, le alternative sono suddividere i pesi su più GPU oppure scaricare parte del modello sulla memoria di sistema, con un forte costo in velocità. La stima di quanti acceleratori servono per un modello è trattata nel Calcolatore del numero di GPU per un modello. Considera il valore qui riportato come una stima di pianificazione e confermalo con un'esecuzione di serving reale, dato che il framework, la lunghezza del contesto e la dimensione del batch spostano tutti il numero effettivo.
Domande frequenti (FAQ)
Cosa copre l'overhead di runtime?
Oltre ai pesi, un server di inferenza deve mantenere la cache KV che memorizza le chiavi e i valori di attenzione per ogni token in elaborazione, le attivazioni prodotte mentre ogni richiesta attraversa gli strati e un margine perso per la frammentazione della memoria. La cache KV è la parte più grande e variabile: cresce con la lunghezza del contesto e con il numero di richieste concorrenti, quindi un server che gestisce prompt lunghi o batch grandi può richiedere molto più del valore predefinito del venti percento.
L'unica percentuale di overhead riassume tutto questo in un singolo valore regolabile.
Come capisco se un modello entra in una data GPU?
Confronta la stima della VRAM totale con la memoria dell'acceleratore di destinazione, lasciando un margine per il sistema operativo e il driver. Un modello da 7 miliardi di parametri a 16 bit richiede circa 17 GB compreso l'overhead, che entra comodamente in una scheda da 24 GB ma non in una da 16 GB.
Se la stima supera una singola GPU, il modello deve essere quantizzato, suddiviso su più GPU oppure parzialmente scaricato sulla memoria di sistema, con un grande costo in velocità.
Quanta memoria fa risparmiare la quantizzazione?
La memoria scala in proporzione diretta ai bit per peso, quindi passare da 16 a 8 bit dimezza la memoria dei pesi e passare a 4 bit la riduce a un quarto. Un modello da 13 miliardi di parametri richiede circa 26 GB di pesi a 16 bit, ma solo 13 GB a 8 bit e circa 6,5 GB a 4 bit, prima dell'overhead.
Una precisione più bassa permette a modelli più grandi di entrare in schede più piccole con una perdita di qualità dell'output modesta e di solito accettabile a 8 e a 4 bit.
Avvertenze legali
Questa è una stima di primo livello. La VRAM effettiva dipende dal framework di serving, dalla lunghezza del contesto, dalla dimensione del batch e dalla precisione della cache KV, tutti riassunti qui in un'unica percentuale di overhead. Dimensiona l'hardware con un margine e conferma con un carico di lavoro reale prima di impegnarti.