Guida ai carichi di lavoro GPU
Quanta VRAM GPU ti serve davvero?
Un budget di memoria pratico per inferenza, fine-tuning, generazione di immagini e carichi di lavoro video—da 24 GB a 192 GB.
Di AnchorGPU · Aggiornato · 6 min di letturaVRAM è un budget, non un'etichetta di modello
La memoria della GPU è consumata da diverse categorie indipendenti: pesi del modello, cache KV di inferenza, attivazioni temporanee, aree di lavoro del framework, cache dell'allocatore e, durante l'addestramento, gradienti e stato dell'ottimizzatore. Un modello che rientra in una configurazione non dimostra che rientrerà con un contesto più lungo, un batch più grande, una precisione diversa o più richieste concorrenti.
Pianifica a partire dalla revisione esatta del modello e dalla configurazione di runtime. Etichette come 7B, 13B o 70B descrivono la scala dei parametri, non la memoria operativa totale, quindi non dovrebbero mai essere mappate universalmente a una GPU.
Stima prima i pesi grezzi
Come esempio esplicitamente ipotetico, supponiamo che un modello abbia esattamente 13 miliardi di parametri e memorizzi ogni parametro in un formato a 16 bit. L'archiviazione grezza dei pesi è 13,000,000,000 × 2 byte = 26,000,000,000 byte, ovvero circa 24.2 GiB. Questo numero esclude ogni altra allocazione, quindi è un limite inferiore piuttosto che una raccomandazione GPU.
La quantizzazione può ridurre l'archiviazione dei pesi, ma l'impronta reale include anche scale, metadati, buffer di dequantizzazione, tensori duplicati e spazi di lavoro runtime. Usa il formato prodotto dal caricatore effettivo invece di dividere il numero di parametri per una larghezza di bit nominale e trattare il risultato come definitivo.
L'inferenza aggiunge cache KV e memoria di lavoro
Il serving autoregressivo conserva i tensori chiave e valore per le sequenze attive. La richiesta di cache KV dipende dall'architettura del modello, dalla precisione della cache, dalle sequenze concorrenti e dal numero di token attivi in tali sequenze. Aumentare il contesto massimo o la concorrenza può esaurire la memoria anche quando i pesi vengono caricati correttamente.
Attivazioni temporanee, spazi di lavoro per l'attenzione, kernel compilati, buffer di comunicazione e l'allocatore del framework consumano memoria aggiuntiva. vLLM riporta la capacità disponibile della cache KV della GPU e una concorrenza stimata per la lunghezza di sequenza configurata; tratta queste cifre di avvio come evidenza di pianificazione, quindi riproduci prompt rappresentativi prima di impegnare un carico di lavoro di produzione.
L'addestramento ha una forma di memoria diversa
Il fine-tuning aggiunge gradienti, stato dell'ottimizzatore, attivazioni salvate e talvolta copie aggiuntive a precisione completa. La loro dimensione esatta dipende dall'ottimizzatore, dalla politica di precisione, dall'insieme di parametri addestrabili e dalla strategia di sharding, quindi un singolo moltiplicatore per l'inferenza è fuorviante.
DistributedDataParallel replica lo stato di addestramento necessario a ciascun worker; non trasforma più GPU in un unico pool di memoria contiguo. Fully Sharded Data Parallel può suddividere parametri, gradienti e stati dell'ottimizzatore tra i worker, mentre il checkpointing delle attivazioni riduce la memoria delle attivazioni salvate ricalcolando porzioni selezionate del lavoro durante la retropropagazione. Entrambe le tecniche scambiano semplicità o calcolo con memoria.
Misura la configurazione che eseguirai
Testa il caricamento del modello e una richiesta di inferenza rappresentativa completa o un passo di addestramento, incluso l'aggiornamento dell'ottimizzatore, con il framework, la precisione, il contesto, il batch e le impostazioni di parallelismo esatti. Registra il picco di memoria allocata e riservata, quindi ripeti con concorrenza realistica o accumulo del gradiente. Lascia margine operativo invece di puntare all'ultimo byte disponibile.
Scegli una GPU con più memoria quando il picco misurato non può essere ridotto in sicurezza. Aggiungi GPU solo quando il software suddivide esplicitamente il modello o il carico di lavoro e l'interconnessione fornita è nota. Ripeti la misurazione dopo qualsiasi modifica di modello, runtime, quantizzazione, contesto o batch.
Fonti e metodo editoriale
La documentazione ufficiale supporta le spiegazioni tecniche. Le raccomandazioni hardware sono la nostra interpretazione dipendente dal carico di lavoro, non una garanzia di prestazioni misurate.
vLLM — parallelismo e scalabilità ↗PyTorch — FullyShardedDataParallel ↗PyTorch — checkpointing delle attivazioni ↗