Quanta VRAM serve davvero a un modello.
Sono due numeri a deciderlo: i pesi, che sono fissi, e la cache KV, che cresce con la quantità di contesto servito. Quasi ogni risposta sbagliata nasce dallo stimare il secondo a partire dal primo.
La risposta breve
- Weights
- Parametri in miliardi × byte per parametro. 70B a 4 bit sono 35 GB.
- Cache KV
- 2 × livelli × teste KV × dimensione della testa × byte, per token. Non ha nulla a che vedere con il numero di parametri.
- Overhead
- Aggiunga circa il 15% per attivazioni, contesto CUDA e frammentazione dell’allocatore.
- La trappola
- Quantizzare i pesi a 4 bit non quantizza la cache. Resta FP16 in ogni stack comune.
La formula
Non esiste qui una regola empirica che sopravviva al confronto con un secondo modello. L’intero calcolo è di tre righe, e vale la pena farle piuttosto che fidarsi di un moltiplicatore.
# 1. Weights
weights_gb = parameters_in_billions × bytes_per_parameter
# 2. KV cache, per token — then multiplied by the context you serve
bytes_per_tok = 2 × layers × kv_heads × head_dim × cache_bytes
cache_gb = bytes_per_tok × context_tokens × batch / 1024³
# 3. Everything else
total_gb = (weights_gb + cache_gb) × 1.15
Il 2 c’è perché ci sono due tensori per token, K e V. bytes_per_parameter è 2 per BF16, 1 per FP8, 0.5 per 4-bit. cache_bytes è un numero separato, e questa separazione è la fonte più comune in assoluto di una risposta sbagliata — consulti qui sotto.
Pesi
La metà facile. È esattamente lineare nel numero di parametri, e l’unica decisione è la precisione.
| Modello | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) |
|---|---|---|---|
| Llama 3.1 8B | 16.0 GB | 8.0 GB | 4.0 GB |
| Qwen 3 32B | 64.0 GB | 32.0 GB | 16.0 GB |
| Llama 3.3 70B | 140.0 GB | 70.0 GB | 35.0 GB |
| Llama 3.1 405B | 810.0 GB | 405.0 GB | 202.5 GB |
La quantizzazione a 4 bit ha un costo in qualità, e quanto dipende dal modello molto più che dal metodo. È il compromesso giusto quando fa la differenza tra una scheda e quattro; è un compromesso scadente quando si è già ampiamente nei margini.
La cache KV
La metà difficile, quella che decide se una macchina è adeguata a 4k e inutilizzabile a 128k. Dipende dai livelli e dalle teste KV — non da quanto è grande il modello.
| Modello | Per token | contesto di 4k | contesto di 8k | contesto di 32k | contesto di 128k |
|---|---|---|---|---|---|
| Llama 3.1 8B | 128 KB | 0.5 GB | 1.0 GB | 4.0 GB | 16.0 GB |
| Gemma 3 27B | 496 KB | 1.9 GB | 3.9 GB | 15.5 GB | 62.0 GB |
| Llama 3.3 70B | 320 KB | 1.3 GB | 2.5 GB | 10.0 GB | 40.0 GB |
| DeepSeek V3 671B-A37B (MoE) | 70 KB | 0.3 GB | 0.5 GB | 2.2 GB | 8.8 GB |
| Llama 3.1 405B | 504 KB | 2.0 GB | 3.9 GB | 15.8 GB | 63.0 GB |
Legga prima l’ultima colonna, poi la prima. A un contesto di 4k la cache è un errore di arrotondamento trascurabile per ogni modello qui presente; a 128k è più grande dei pesi di un modello da 70B a 4 bit. DeepSeek V3 è l’eccezione perché la sua attenzione latente comprime la cache per progettazione — motivo per cui resta utilizzabile a contesti lunghi pur essendo il modello più grande dell’elenco.
Dove le stime sbagliano
Far scalare la cache in base al numero di parametri. L’errore più comune, ed è quello mostrato sopra. Un modello da 27B può richiedere più cache di uno da 70B.
Supporre che pesi a 4 bit significhino una cache a 4 bit. Non è così. AWQ e GPTQ quantizzano solo i pesi; la cache resta FP16 a meno che non si attivi esplicitamente la cache KV FP8. Un modello da 70B a 4 bit e contesto 128k è 35 GB di pesi e 40 GB di cache.
Dimensionare per una sola richiesta. La cache è per sequenza concorrente. Servire otto utenti contemporaneamente richiede otto volte la cache — consulti qui sotto.
Dimenticare l’overhead. Le attivazioni, il contesto CUDA e la frammentazione dell’allocatore sono reali. Il 15% è un margine deliberatamente prudente; ignorarlo del tutto è il modo in cui un modello che «ci sta» non riesce a caricarsi.
Sommare la VRAM totale tra più schede. Quattro schede da 24 GB non sono una scheda da 96 GB. Il tensor parallelism può suddividere un modello tra loro, ma ogni livello deve poi sincronizzarsi sul collegamento — consulti la guida a NVLink.
Dimensionare un MoE in base ai parametri attivi. DeepSeek V3 attiva 37B per token, ma è necessario tenere in memoria tutti i 671B. I parametri attivi prevedono la velocità; i parametri totali decidono se il modello si carica affatto.
Esempi svolti
Memoria totale richiesta, pesi più cache più overhead, a un contesto di 8k e una richiesta. È lo stesso calcolo che il configuratore esegue su ogni configurazione del catalogo.
| Modello | BF16 / FP16 | FP8 | 4-bit (AWQ, GPTQ) | Il nodo più piccolo che ci sta |
|---|---|---|---|---|
| Llama 3.1 8B | 20 GB | 10 GB | 6 GB | NVIDIA L4 |
| Mistral Small 24B | 57 GB | 28 GB | 15 GB | NVIDIA L4 |
| Gemma 3 27B | 67 GB | 33 GB | 20 GB | NVIDIA L4 |
| Qwen 3 32B | 76 GB | 38 GB | 21 GB | NVIDIA L4 |
| Llama 3.3 70B | 164 GB | 82 GB | 43 GB | 2 × NVIDIA L4 |
| Mixtral 8×22B (MoE) | 326 GB | 163 GB | 83 GB | 4 × NVIDIA L4 |
| Qwen 3 235B-A22B (MoE) | 542 GB | 271 GB | 137 GB | 8 × NVIDIA L4 |
| DeepSeek V3 671B-A37B (MoE) | 1,544 GB | 772 GB | 386 GB | 8 × NVIDIA A100 PCIe |
| Llama 3.1 405B | 936 GB | 468 GB | 237 GB | 10 × NVIDIA L4 |
L’ultima colonna è il nodo più economico del nostro catalogo che contiene il modello a 4 bit e contesto 8k, con la velocità di generazione a flusso singolo consentita dalla larghezza di banda della memoria. I valori di throughput sono deliberatamente conservativi e calibrati su misurazioni pubblicate — li consideri un minimo garantito, non una promessa.
Servire più di una richiesta
È qui che una macchina dimensionata per una demo diventa una macchina incapace di servire un prodotto. I pesi si pagano una volta sola; la cache si paga per sequenza concorrente.
| Richieste concorrenti | contesto di 4k | contesto di 8k | contesto di 32k |
|---|---|---|---|
| 1 richiesta | 42 GB | 43 GB | 52 GB |
| 4 richieste | 46 GB | 52 GB | 86 GB |
| 16 richieste | 63 GB | 86 GB | 224 GB |
| 64 richieste | 132 GB | 224 GB | 776 GB |
Llama 3.3 70B a 4 bit sono 35 GB di pesi in ogni caso. Tutto ciò che in quella tabella supera i 35 GB è cache. Ecco perché «funzionava bene sul mio laptop» e «è crollato in produzione» sono lo stesso modello sulla stessa scheda.
--max-model-len al contesto effettivamente servito: vLLM riserva la cache per il massimo dichiarato, quindi dichiarare 128k quando si serve 8k spreca sedici volte la memoria necessaria.
Quale macchina ne consegue
Tre regole pratiche che derivano da tutto quanto sopra, nell’ordine in cui contano.
- Una scheda sola batte più schede, ogni volta che è possibile. Niente sharding, niente sincronizzazione tra livelli, nessuna interconnessione a cui pensare. Se il suo modello, al suo contesto, ci sta su una scheda singola, acquisti quella scheda.
- Dimensioni in base al contesto reale e alla concorrenza reale, non al massimo dichiarato dal modello. Il massimo dichiarato è una capacità, non un requisito.
- Quando deve suddividere, preferisca NVLink. Suddividere su quattro schede PCIe funziona; suddividere su quattro schede NVLink funziona ed è sensibilmente più veloce. La prossima guida tratta esattamente di quando vale la pena pagare quella differenza.
Il configuratore esegue questo calcolo in tempo reale su tutte le 41 configurazioni: scelga un modello, una precisione e una lunghezza di contesto, e Le indicherà quali nodi lo contengono, quali lo contengono su una scheda singola, e quanto costa ciascuno al mese. Usa la formula di questa pagina, quindi se non è d’accordo con i nostri calcoli può ora dire esattamente dove.
Verifichi il suo modello su ogni macchina che noleggiamo.
Il configuratore esegue il calcolo qui sopra su tutte le 41 configurazioni, prima che paghi qualsiasi cosa.
Altre guide
- Dimensionamento · 7 min
NVLink o PCIe: quale serve al carico di lavoro
Quando il collegamento tra le schede decide il throughput, quando non cambia nulla, e come capire in quale caso ci si trova prima di pagare per il nodo sbagliato.
Leggi la guida - Dimensionamento · 9 min
Scegliere una scheda per modelli di immagine e video
Quanta VRAM richiedono FLUX, SDXL, SD 3.5 e Wan 2.1, quale scheda del catalogo li ospita, e perché la più economica che ci sta è raramente quella da noleggiare.
Leggi la guida - Dimensionamento · 10 min
Scegliere un formato di quantizzazione
Quanto costano AWQ, GPTQ, GGUF e FP8 in memoria, velocità e qualità — e perché il formato con i pesi più piccoli raramente dà il modello più piccolo.
Leggi la guida