Quante persone può servire davvero una GPU.
Una macchina che contiene il suo modello non è una macchina che serve i suoi utenti. I pesi sono un pedaggio, pagato una sola volta; ciò che resta dopo di essi è l’intero budget a disposizione per servire le persone. Quel resto — non la dimensione della scheda — decide la sua capacità, e si muove molto più rapidamente della memoria.
La risposta breve
- La capacità è il resto, non la scheda
- Llama 3.3 70B a 4 bit riserva 40 GB prima di servire chiunque. Ogni richiesta simultanea successiva costa 2.9 GB in più.
- Ecco perché la memoria si paga due volte
- Sulla stessa identica scheda, passare da 48 GB a 240 GB moltiplica la memoria per 5.0× e il numero di posti per 35×. I pesi sono già pagati.
- Il peggior acquisto della lista ristretta
- NVIDIA L40S a $714 al mese contiene 2 richieste simultanee — $357.00 a posto.
- La migliore costa meno
- 4 × NVIDIA L4 a $564 contiene 19 — $29.68 a posto, con una ricevuta più economica.
La versione breve
Ogni guida che le dice se un modello ci sta risponde a una domanda su una singola richiesta. Un prodotto non è una singola richiesta. Nel momento in cui due persone usano il suo endpoint nello stesso istante, la macchina ha bisogno di una seconda copia della conversazione in memoria — e di una terza, e di una quarantesima — mentre i pesi stessi restano memorizzati esattamente una sola volta.
Quindi il numero che decide quante persone può servire non è la dimensione della scheda. È la dimensione della scheda meno il modello, divisa per quanto costa una conversazione. Entrambi questi termini sono noti prima ancora di ordinare qualsiasi cosa, il che rende la capacità una delle poche cose nel machine learning che si possono calcolare su carta e avere ragione.
I pesi sono un pedaggio. Pagato una sola volta, all’ingresso, qualunque sia il suo traffico. Non crescono con i suoi utenti e non vengono mai restituiti.
La cache chiave-valore è l’affitto. Pagata per ogni richiesta simultanea, per tutto il tempo in cui resta aperta, e in proporzione alla durata della conversazione.
La capacità è ciò che resta, diviso per l’affitto. Ecco perché una macchina con il doppio della memoria spesso serve dieci volte più persone, non il doppio.
E perché la macchina più economica che ci sta è di solito il peggior rapporto qualità-prezzo. Ci sta perché non le resta quasi nulla, e quel poco che le resta è l’unica parte che sta davvero acquistando.
Tutto quanto segue applica la stessa aritmetica del configuratore, sullo stesso catalogo, a 4 bit con 8k di contesto. Se la formula della memoria in sé le è nuova, ha una guida tutta sua — questa pagina racconta cosa le succede quando arriva più di una persona.
Ciò che resta dopo i pesi
Prenda il modello di riferimento di questo sito e lo metta su ogni dimensione di nodo costruito con la stessa scheda. Stesso silicio, stesso prezzo per scheda, stesso tutto il resto — cambia solo la quantità di memoria. Osservi le ultime due colonne muoversi a velocità completamente diverse.
| Nodo | Memoria | Resto dopo i pesi | Richieste concorrenti | Al mese |
|---|---|---|---|---|
| NVIDIA L4 | 24 GB | — | non lo contiene | $125 |
| 2 × NVIDIA L4 | 48 GB | 8 GB | 2 | $285 |
| 4 × NVIDIA L4 | 96 GB | 56 GB | 19 | $564 |
| 8 × NVIDIA L4 | 192 GB | 152 GB | 52 | $1,106 |
| 10 × NVIDIA L4 | 240 GB | 200 GB | 69 | $1,371 |
La prima riga è l’intera lezione: una scheda che non riesce nemmeno a contenere i pesi non serve nessuno, e non ci va nemmeno vicino. Le righe successive guadagnano memoria a passi uguali e guadagnano posti a passi crescenti, perché il pedaggio di 40 GB si paga sulla prima riga e mai più.
posti = (memoria − pesi) ÷ cache_per_richiesta. Per Llama 3.3 70B a 4 bit sono 40 GB di pedaggio e 2.9 GB di affitto per conversazione aperta. Sottragga prima di dividere — farlo nell’ordine inverso è come si finisce per comprare una macchina per una demo e scoprirla poi in produzione.
Quanto costa davvero un utente
Ora gli stessi modelli, ordinati come li ordinerebbe un acquirente: dal più economico. L’ultima colonna è il prezzo mensile diviso per il numero di persone che la macchina può gestire in contemporanea — l’unica colonna che confronta due macchine in modo onesto quando si sta costruendo qualcosa di più di una demo.
Un’ipotesi, dichiarata perché cambia ogni numero: ogni numero di posti vale per una sola istanza del modello distribuita sull’intero nodo, che è ciò che dà --tensor-parallel-size. I pesi sono memorizzati una sola volta, e ogni scheda contribuisce con la propria memoria residua allo stesso pool di conversazioni. Se invece esegue due copie separate sullo stesso nodo, paga il pedaggio due volte, per meno posti in totale.
| Nodo | Memoria | Al mese | Richieste concorrenti | Per utente |
|---|---|---|---|---|
| 2 × NVIDIA L4 | 48 GB | $285 | 2 | $142.50 |
| NVIDIA RTX A6000 | 48 GB | $286 | 2 | $143.00 |
| 2 × NVIDIA RTX 4090 | 48 GB | $416 | 2 | $208.00 |
| 4 × NVIDIA L4 | 96 GB | $564 | 19 | $29.68 |
| 2 × NVIDIA RTX A6000 | 96 GB | $597 | 19 | $31.42 |
| 2 × NVIDIA RTX 5090 | 64 GB | $692 | 8 | $86.50 |
| NVIDIA L40S | 48 GB | $714 | 2 | $357.00 |
| 2 × NVIDIA A100 PCIe | 80 GB | $802 | 13 | $61.69 |
| 4 × NVIDIA RTX 4090 | 96 GB | $814 | 19 | $42.84 |
| NVIDIA A100 PCIe | 80 GB | $1,091 | 13 | $83.92 |
Legga le due celle colorate rispetto alla loro colonna di prezzo. NVIDIA L40S costa $714 al mese e contiene 2; 4 × NVIDIA L4 costa $564 — meno soldi — e contiene 19. È 10× i posti, per 0.79× la ricevuta, eppure è quella costosa a restare quasi sempre nella lista ristretta, perché è quella in cui il modello ci sta su una sola scheda.
Su tutto il catalogo, non solo sulle prime dieci righe, il miglior prezzo a posto per questo modello è 8 × NVIDIA RTX A6000 a $2,239 al mese: 119 richieste simultanee, $18.82 ciascuna. È una ricevuta molto più alta di qualsiasi cosa nella lista ristretta sopra, eppure resta il modo più economico per dare posto a un utente — ed è questa la frase che decide se sta dimensionando un prodotto o un prototipo.
La lunghezza del contesto è l’altro moltiplicatore
Tutto quanto sopra presuppone 8k di contesto. Quest’ipotesi conta più della scelta della macchina. La cache si paga per token oltre che per utente, quindi lo stesso nodo dà posto a un numero di persone completamente diverso a seconda di quanto lascia allungare una conversazione.
Una macchina, quattro modelli, quattro lunghezze di contesto. Il nodo è 8 × NVIDIA L4 a $1,106 al mese — il più economico del nostro catalogo che contiene tutti e quattro i modelli insieme, così ogni numero qui sotto è misurato sulla stessa memoria.
| Modello | Cache per token | 4k | 8k | 32k | 128k |
|---|---|---|---|---|---|
| Llama 3.1 8B | 128 KiB | 325 | 162 | 40 | 10 |
| Qwen 3 32B | 256 KiB | 150 | 75 | 18 | 4 |
| Llama 3.3 70B | 320 KiB | 105 | 52 | 13 | 3 |
| Qwen 3 235B-A22B (MoE) | 188 KiB | 67 | 33 | 8 | 2 |
Su una macchina che resta la stessa, Llama 3.3 70B passa da 105 a 3 utenti simultanei — un fattore di 35× — semplicemente per un numero che si imposta sulla riga di comando. Dell’hardware non si è mosso nulla.
Ne conseguono due cose. La prima è che la colonna di contesto da leggere è quella che serve davvero, non quella dichiarata dalla scheda del modello — un modello che supporta 128k non la obbliga a riservarli. La seconda è che la cache per token varia enormemente tra modelli di dimensioni simili, perché è definita dalla progettazione dell’attenzione più che dal numero di parametri; i modelli più grandi di quella tabella hanno alcune delle cache più piccole, il che è il fatto più controintuitivo di tutto questo ambito.
Quattro modi per riguadagnare capacità
In ordine decrescente di quanto rendono rispetto a quanto costano. Il primo è quasi gratuito e resta quasi sempre inutilizzato.
--max-model-len sul suo tetto reale fin dal primo giorno.| Modello | Cache a 16 bit | Cache a 8 bit | Posti guadagnati |
|---|---|---|---|
| Llama 3.1 8B | 162 | 325 | +163 |
| Qwen 3 32B | 75 | 150 | +75 |
| Llama 3.3 70B | 52 | 105 | +53 |
| Qwen 3 235B-A22B (MoE) | 33 | 67 | +34 |
Stesso nodo, stessi pesi, stessi soldi. L’unico cambiamento è la precisione in cui è memorizzata la cache, ed è la differenza tra una macchina che serve un team e una macchina che serve un prodotto.
I posti non equivalgono al servizio
Una correzione prima che lei dimensioni qualsiasi cosa sui numeri sopra, ed è la correzione che rende onesta questa pagina. Tutto qui conta quante conversazioni la macchina riesce a tenere aperte. Non promette che tutte ricevano risposta rapidamente.
Memoria e larghezza di banda sono due tetti diversi. Su 8 × NVIDIA L4, Llama 3.3 70B ha spazio per 52 conversazioni simultanee, mentre un singolo utente da solo su quella macchina vede circa 17 token al secondo. Riempire tutti i 52 posti non dà a ciascuno 17 token al secondo — la generazione condivide la stessa larghezza di banda della memoria, quindi il totale aggregato sale con il batching e il ritmo per utente scende. Il tetto della larghezza di banda si raggiunge molto prima di quello della memoria.
La buona notizia è che i due tetti si muovono insieme: le macchine in cui resta molta memoria dopo i pesi sono, salvo poche eccezioni, anche le macchine con più larghezza di banda. Scegliere in base al margine raramente costa in velocità. Configurare lo stack di serving sulla macchina scelta è una guida a parte, e i flag che tratta sono dove questi numeri si incassano davvero.
Scegliere in base al proprio numero di utenti
In ordine. Si fermi alla prima riga che descrive il suo carico.
- Una richiesta alla volta. Job in batch, uno strumento interno, un singolo sviluppatore. Acquisti la macchina più economica che contiene il modello su una scheda sola e smetta di leggere — ogni colonna di questa pagina risponde a una domanda che lei non si pone.
- Una manciata di persone, occasionalmente. Uno strumento di team, un prodotto agli esordi. Calcoli il picco di richieste simultanee, non il numero di utenti: cento utenti registrati raramente significano più di una manciata di richieste simultanee. Poi scelga la macchina più economica il cui numero di posti superi comodamente quel picco.
- Un prodotto reale con traffico reale. Ordini il catalogo per prezzo a posto anziché per prezzo, limiti il contesto a quello che serve davvero, abbassi la cache a 8 bit, e si aspetti che la vincitrice sia una macchina che non avrebbe inserito nella lista ristretta in base al prezzo mensile.
- Documenti lunghi o conversazioni lunghe. Legga prima la tabella del contesto e poi quella delle macchine. Da 32k in su la cache domina così tanto che la scelta del modello conta meno della progettazione dell’attenzione che c’è dietro.
- Traffico a picchi, imprevedibile. Dimensioni la capacità sul picco che non può permettersi di fallire, perché la cache non si può prendere in prestito quando finisce — una richiesta che non ha dove mettere la propria conversazione resta in coda. Se il picco è raro ed enorme, un’API a consumo per token per l’eccedenza costa meno di una macchina dimensionata per un picco che si presenta due volte al mese.
Qualunque sia la riga a cui si è fermato, faccia la sottrazione prima di ogni altra cosa: prenda la memoria della macchina, tolga i pesi del suo modello nella precisione in cui lo servirà, e guardi cosa resta. Quel resto è il prodotto che sta noleggiando. Il configuratore applica la stessa aritmetica su ogni nodo che gestiamo, e quanto costa un mese si calcola a parte.
Dimensionare la macchina in base agli utenti, non al modello.
Il configuratore include ogni nodo che noleggiamo, applica la stessa aritmetica della memoria di questa pagina, e mostra cosa resta dopo aver caricato il suo modello — prima che lei paghi qualsiasi cosa.
Altre guide
- Costo · 6 min
Quando il noleggio mensile batte quello orario
Il break-even calcolato su numeri reali, i tre costi che un prezzo orario nasconde fino alla ricevuta, e la trappola dei tempi morti che triplica una stima.
Leggi la guida - Costo · 9 min
Self-hosting contro un’API a pagamento per token
Il break-even tra pagare un’API a token e noleggiare una GPU, calcolato sui nostri prezzi e sul nostro throughput — e le quattro cose che l’aritmetica non considera.
Leggi la guida - Pratica · 11 min
Servire Llama 3.3 70B su un nodo
Da una macchina consegnata a un endpoint compatibile con OpenAI, con i flag che contano e i due che dimezzano in silenzio il throughput.
Leggi la guida