La domanda non è soltanto quanti parametri ha il modello
Sapere quanti parametri ha un modello può essere utile per orientarsi, ma non risponde da solo alla domanda pratica: funzionerà con la configurazione che mi serve su questa GPU? Per rispondere occorre considerare il modello specifico, il formato dei suoi pesi, il runtime, il contesto da elaborare, le richieste simultanee e la memoria già utilizzata dal sistema.
Perciò «ci sta» non è una proprietà isolata del modello. Può starci durante il caricamento e poi esaurire la memoria quando il contesto cresce; può funzionare con una richiesta ma non con più richieste; oppure può avviarsi perché una parte del lavoro viene eseguita in RAM, anche se il modello non è interamente sulla GPU. Il risultato può cambiare anche passando a un altro runtime o modificandone le opzioni.
Questa guida serve a costruire una stima iniziale e poi a sottoporla a una prova controllata. La stima aiuta a scartare le configurazioni chiaramente impraticabili e a capire che cosa misurare. Non sostituisce una prova con l’hardware, il runtime e il carico effettivi. Inoltre, non consente di dedurre velocità, qualità delle risposte o stabilità nel lungo periodo.
Che cosa occupa memoria durante l’esecuzione
Una stima utile distingue almeno quattro componenti: i pesi del modello, la cache KV, i buffer temporanei di calcolo e lo spazio richiesto dal runtime insieme al sistema e agli altri processi. È una distinzione concettuale: a seconda del runtime, delle opzioni e dell’hardware, le allocazioni possono essere registrate in modo diverso e non sempre compaiono come categorie separate in uno strumento di monitoraggio.
I pesi sono i dati del modello che il runtime carica per eseguire l’inferenza. Le dimensioni del file possono dare un’indicazione del loro ingombro, ma non corrispondono automaticamente alla memoria totale necessaria. Il formato e la quantizzazione influiscono sulle dimensioni dei pesi, mentre il caricamento comporta anche memoria di lavoro e strutture del runtime. Non trasformare le dimensioni del file in una stima della VRAM disponibile senza aver misurato la configurazione scelta.
La cache KV conserva informazioni relative ai token già elaborati, così da proseguire la generazione. Il suo ingombro dipende dal carico attivo e da caratteristiche del modello, non solo dal nome o dal numero di parametri. Il contesto previsto e le richieste parallele sono variabili da definire prima della stima; anche l’architettura e il tipo di cache configurato possono cambiare il risultato.
I buffer di calcolo sono memoria temporanea usata durante le operazioni del runtime. Le loro dimensioni possono dipendere dall’implementazione e dalle opzioni attive. Anche il runtime e il sistema hanno bisogno di margine; inoltre, la GPU può condividere la memoria con il display o con altri processi. Per questo la memoria nominale della scheda non va considerata interamente libera per il modello.
Inventario iniziale della memoria
Annota ciò che sai e ciò che dovrai verificare. Le categorie aiutano a orientare la stima, ma non implicano che il runtime renda visibile separatamente ogni uso.
| Componente | Che cosa lo modifica | Che cosa registrare |
|---|---|---|
| Pesi | Modello, formato e quantizzazione | Dimensioni e formato esatti dell’artefatto caricato dal runtime |
| Cache KV | Contesto attivo, richieste simultanee, architettura e strategia della cache | Configurazione del contesto, concorrenza e cache |
| Buffer di calcolo | Runtime, operazione e opzioni di esecuzione | Picchi osservati durante il caricamento e l’inferenza |
| Runtime e sistema | Processi aggiuntivi, memoria del display e configurazione del computer | Memoria libera prima e durante la prova |
Raccogli i dati prima di fare i calcoli
Per prima cosa identifica l’artefatto preciso del modello: non soltanto il nome commerciale, ma anche il file o il formato da caricare e la relativa configurazione. Una scheda di configurazione può indicare dimensioni non specificate dal nome, come il numero di layer e alcune dimensioni e teste di attenzione. Sono dati utili a descrivere l’architettura, ma da soli non bastano a calcolare il consumo finale: conta anche il modo in cui il runtime rappresenta e alloca la cache e i buffer.
Poi definisci il runtime e le relative opzioni. Registra la versione o configurazione che stai provando, la quantità di contesto richiesta, la concorrenza prevista e qualsiasi scelta relativa al tipo o alla posizione della cache. Se il runtime consente di collocare alcuni layer sulla GPU, trasferire una parte del lavoro alla CPU o distribuire il carico fra più schede, annota anche queste scelte. Una stima priva di tali condizioni finisce per mescolare scenari diversi.
Infine, annota lo stato iniziale del computer: memoria totale e disponibile della GPU, processi che la stanno già usando e se la scheda è dedicata all’inferenza o svolge anche altre funzioni. Gli strumenti di gestione della GPU possono mostrare la memoria totale, riservata, utilizzata e libera; sono osservazioni dello stato del dispositivo, non una spiegazione completa di quale componente del modello occupi ciascun blocco.
Scheda della configurazione
Compila questa scheda prima di stimare. Mantieni invariati gli stessi valori durante la prova iniziale, così potrai attribuire i cambiamenti a una variabile specifica.
- 01Identifica il modello e il formato esatto dei pesi che verranno caricati dal runtime.
- 02Registra i parametri architetturali disponibili nella configurazione del modello; contrassegna come sconosciuti quelli non documentati.
- 03Specifica il runtime e le opzioni di esecuzione, compresi eventuali trasferimenti in RAM o ripartizioni tra GPU.
- 04Definisci il contesto massimo che prevedi davvero di usare e il numero di richieste che potrebbero essere attive contemporaneamente.
- 05Misura la memoria libera della GPU prima dell’avvio e registra i processi che la stanno già utilizzando.
Come costruire una stima iniziale
Come prima approssimazione, considera la VRAM richiesta come la somma dei pesi residenti sulla GPU, della cache KV allocata sulla GPU, dei buffer e del costo del runtime, più un margine per le variazioni del carico e gli altri usi della scheda. Non è una formula esatta, né un valore da ricavare da dati generici: le categorie e le loro dimensioni dipendono dall’implementazione e dalla configurazione.
Distingui i valori noti dalle approssimazioni. Le dimensioni del file sono un dato osservabile, ma non dimostrano quanto di quel contenuto risulterà residente sulla GPU né quale sarà il picco di memoria. Il contesto e la concorrenza desiderati sono requisiti che devi stabilire. Per l’architettura e la strategia della cache servono informazioni sul modello e sul runtime. Buffer e margine spesso devono essere misurati sul sistema in cui avverrà l’esecuzione.
Se una variabile importante è sconosciuta, non nasconderla dietro un unico valore. È più onesto preparare più scenari: per esempio, una configurazione con contesto moderato e una più impegnativa, ciascuna con il livello di concorrenza richiesto dal servizio. Queste etichette non garantiscono consumi specifici; servono a fare in modo che la prova copra le condizioni d’uso, invece di convalidare solo il caso più semplice.
La documentazione di un runtime può aiutare a capire quali opzioni offre e quali limiti dichiara, ma una capacità dichiarata o un valore di configurazione non dimostrano che il computer reggerà il carico durante l’esecuzione. Usa la documentazione per definire la prova e i consumi misurati per verificare la configurazione.
La cache KV cambia con il contesto e il carico
La cache KV merita particolare attenzione perché il suo ingombro è legato al lavoro attivo. Un contesto più lungo può richiedere di conservare più informazioni per proseguire la generazione; più richieste simultanee possono mantenere attive più sequenze. Non è possibile dedurre un valore preciso dal nome del modello o dal numero dei suoi parametri.
L’architettura è importante. Per una stima più fondata servono gli attributi di configurazione del modello e i dettagli di come il runtime gestisce l’attenzione e la cache. Anche con queste informazioni, il valore osservato può dipendere dal tipo di cache scelto, dall’allocazione della memoria e dalle opzioni del runtime. Una regola generica priva di questi dati può dare un’indicazione qualitativa, ma non garantisce che una certa configurazione ci stia.
I runtime possono offrire strategie diverse, come cache dinamiche, statiche, quantizzate o trasferite alla CPU. Cambiare strategia può modificare la distribuzione della memoria e le condizioni di esecuzione. Non confrontare due stime come se fossero equivalenti quando impiegano strategie diverse o differiscono per runtime e opzioni.
Che cosa controllare quando cresce la cache
Usa questa tabella per individuare possibili cause di un cambiamento osservato; non presuppone un tasso di crescita universale.
| Cambiamento nella prova | Che cosa potrebbe cambiare | Che cosa mantenere o registrare |
|---|---|---|
| Aumento del contesto | Più token attivi e una diversa allocazione della cache | Contesto richiesto e memoria durante il caricamento e la generazione |
| Aumento delle richieste parallele | Più sequenze attive e più cache associata al carico | Numero di richieste simultanee e durata della prova |
| Cambio della strategia della cache | Rappresentazione, posizione o allocazione della memoria differenti | Tipo di cache e opzioni esatte del runtime |
| Cambio del runtime | Implementazione e gestione della memoria differenti | Ripetere la prova; non trasferire automaticamente il risultato precedente |
Intera GPU, trasferimento in RAM o più schede
Un’esecuzione può usare tutta la GPU per il modello, collocarvi soltanto una parte dei layer, trasferire parte della cache alla CPU oppure distribuire il modello tra più GPU. Alcune di queste opzioni permettono di provare configurazioni che non entrerebbero in una sola scheda se tutte le componenti fossero collocate al suo interno, ma non dimostrano che il modello sia interamente residente in VRAM. Inoltre, da sole non permettono di dedurre le prestazioni che si otterranno.
Verifica la modalità di esecuzione nelle opzioni e nei log del runtime. Se gli strumenti consentono di specificare i layer sulla GPU o di distribuire il lavoro tra schede, annota i valori applicati. Se viene attivato un trasferimento alla CPU o una strategia di cache su CPU, la memoria della GPU non rappresenta più da sola l’intero utilizzo di memoria dell’esecuzione. Distingui fra «l’applicazione si è avviata» e «la configurazione soddisfa i requisiti di residenza e carico definiti».
Con più GPU, conoscere la somma della memoria nominale delle schede non basta comunque a sapere come verrà distribuito il modello. La ripartizione dipende dalle capacità del runtime e dalla configurazione scelta. Valuta ciascun dispositivo e l’allocazione effettiva; non dare per scontato che tutta la memoria aggregata sia disponibile per qualsiasi distribuzione.
Che cosa significa che il processo si avvia
Classifica il risultato in base alla modalità di esecuzione verificata, non soltanto all’assenza di un errore all’avvio.
| Risultato | Che cosa puoi concludere | Che cosa non puoi concludere |
|---|---|---|
| Pesi e cache sulla GPU secondo la configurazione prevista | L’esecuzione osservata usa la GPU conformemente alle opzioni verificate | Che supporterà qualsiasi contesto, concorrenza o durata |
| Una parte dei layer o della cache è sulla CPU | Il runtime ha potuto proseguire trasferendo o ripartendo la memoria | Che l’intero modello ci sta nella VRAM |
| Modello caricato, ma carico previsto non ancora provato | Il caricamento è terminato in quelle condizioni | Che funzioneranno un contesto lungo o più richieste |
| Errore durante il caricamento o la prova | La configurazione attuale non ha completato l’esecuzione | Che il modello non possa funzionare con altre opzioni o hardware |
Verifica la stima con una prova controllata
La prova deve riprodurre lo scenario che vuoi usare. Fissa modello, formato, runtime, contesto, concorrenza e opzioni di cache e trasferimento. Registra lo stato iniziale della memoria e gli eventuali processi esterni che condividono la GPU. Se cambi più opzioni contemporaneamente, sarà difficile capire quale abbia determinato il risultato.
Carica il modello e registra la memoria utilizzata e quella disponibile. Poi esegui una richiesta con la configurazione prevista. Aumenta gradualmente contesto o concorrenza, una variabile per volta, e annota quando compare un errore, si attiva un trasferimento oppure il consumo si avvicina al limite osservato. Non interpretare una singola lettura come un massimo stabile: osserva la memoria durante l’esecuzione, perché il consumo può differire tra la fase di caricamento e quella di inferenza.
Usa i log del runtime per verificare la distribuzione tra GPU e CPU e le opzioni effettivamente applicate. Confronta quanto osservi con uno strumento GPU che mostri memoria totale, utilizzata, riservata e libera. Questa lettura descrive lo stato del dispositivo, ma non sempre separa pesi, cache e buffer. Ripeti l’esecuzione per rilevare variazioni sullo stesso computer e annota le condizioni esatte.
Definisci in anticipo cosa significa superare la prova: completare il contesto previsto, sostenere la concorrenza richiesta e non dipendere da un trasferimento che non avevi previsto. Se il sistema deve lasciare margine ad altri processi, includilo tra i requisiti. Una prova senza errori può comunque essere insufficiente per l’uso previsto se non resta quel margine.
Procedura di verifica
Esegui i passaggi senza cambiare più condizioni contemporaneamente. Conserva i log, così potrai ripetere la prova dopo aver cambiato hardware o runtime.
- 01Annota modello, formato, runtime, opzioni della cache, contesto, concorrenza e modalità di ripartizione.
- 02Misura la memoria libera prima del caricamento e registra gli altri processi che usano la GPU.
- 03Carica il modello e osserva memoria e log del runtime; verifica se ci sono layer o cache sulla CPU.
- 04Prova prima un carico ridotto, poi aumenta il contesto mantenendo fissa la concorrenza.
- 05Riavvia o ripristina condizioni comparabili e aumenta la concorrenza mantenendo fisso il contesto.
- 06Registra errori, picchi osservati, trasferimenti in RAM e risultato di ogni esecuzione.
- 07Ripeti la prova e valuta se il margine disponibile soddisfa il requisito operativo definito.
Errori frequenti e limiti della stima
L’errore più comune è trattare le dimensioni del file come se fossero il consumo totale. Quel dato non include necessariamente cache, buffer, runtime o la memoria già occupata dal sistema. Un altro errore è confrontare il risultato con la capacità nominale della GPU senza misurare quanta memoria rimanga disponibile nelle reali condizioni d’uso del computer.
È facile anche provare soltanto l’avvio e supporre che ciò convalidi un contesto esteso o più richieste. Il caricamento iniziale e un carico sostenuto sono fasi diverse della prova. Se cambi contesto, concorrenza, tipo di cache, runtime o ripartizione tra GPU e CPU, stai provando una configurazione diversa.
Infine, non trasferire con leggerezza un valore da un runtime all’altro. Gli strumenti possono gestire la memoria ed esporre le metriche in modi diversi. I valori osservati descrivono il computer e le opzioni testate; non garantiscono lo stesso risultato su un altro sistema né un’esecuzione stabile a tempo indeterminato. La prova non determina nemmeno la qualità dell’output o se la velocità sia sufficiente per un caso d’uso.
Decisione pratica
La stima serve a orientare il passo successivo. Se le prove non rispondono a una condizione essenziale, la conclusione corretta è «da provare», non «ci sta».
| Situazione | Decisione ragionevole | Passo successivo |
|---|---|---|
| La stima supera chiaramente la memoria disponibile già prima di aggiungere cache e buffer | Scartare la configurazione su quella GPU o modificare i requisiti | Valutare un altro formato, una ripartizione o un altro hardware e misurare di nuovo |
| Il caricamento iniziale termina, ma il contesto richiesto non è stato provato | Non considerare convalidato il caso d’uso | Aumentare il contesto in modo controllato |
| Il processo funziona tramite un trasferimento alla CPU non previsto | Non affermare che il modello entri interamente nella VRAM | Verificare le opzioni del runtime e decidere se il trasferimento è accettabile |
| Contesto e concorrenza richiesti superano prove ripetute con margine | La configurazione dispone di riscontri pratici per quel computer e runtime | Documentare le condizioni e ripetere la prova se cambiano i componenti |
Criteri finali per scegliere o riutilizzare l’hardware
Prima di acquistare una GPU, individua un carico rappresentativo e verifica se la memoria disponibile può ospitare le componenti che vuoi mantenere al suo interno, oltre al margine necessario al sistema. Se la stima supera chiaramente la capacità utilizzabile, non serve fingere precisione: quella combinazione richiede di cambiare i requisiti, la distribuzione o l’hardware. Se sei vicino al limite, una prova sul computer specifico è particolarmente importante.
Se riutilizzi una GPU, misura il suo stato reale e verifica chi condivide la memoria. Non trattare la capacità totale come se fosse libera. Se accetti un’esecuzione parziale in RAM o la ripartizione tra schede, registra questa scelta come parte della configurazione, non come un dettaglio invisibile. Quando confronti alternative, usa lo stesso carico e gli stessi criteri.
Per approfondire i modelli locali, puoi consultare la guida sui modelli locali, il comparatore e la sezione di scoperta. Mantieni lo stesso metodo anche quando valuti un’opzione: identifica la configurazione esatta e verifica le condizioni importanti per il tuo caso. La conclusione utile non è un valore universale di VRAM, ma un risultato riproducibile per un modello, un runtime, un hardware e un carico definiti.
Questioni aperte
- La documentazione citata non fornisce una formula universale per calcolare il consumo totale di VRAM di qualsiasi modello, runtime e hardware.
- La separazione osservabile tra pesi, cache KV, buffer e memoria del runtime dipende da come il runtime gestisce ed espone le allocazioni.
- I valori di utilizzo possono variare tra esecuzioni e runtime; le prove vanno ripetute sul computer e con le opzioni previste.
- I parametri disponibili nella configurazione del modello non bastano da soli a dedurre il consumo finale senza conoscere la strategia del runtime.
Continua a esplorare
Fonti consultate
Correzioni e trasparenza
Se trovi un dato errato o non aggiornato, inviaci la pagina e la fonte da verificare.
Proponi una correzione