🔒 Calcolo sul tuo dispositivo · nessun dato inviato o salvato
📲 Installa l'app: tocca Condividi e poi «Aggiungi alla schermata Home».
Li trovi nel config.json del modello su Hugging Face: num_hidden_layers, num_key_value_heads e head_dim (oppure hidden_size ÷ num_attention_heads).
Ogni conversazione aperta ha la sua cache KV.
Tutte le quantizzazioni
Memoria totale per il modello e il contesto scelti.
Come si calcola la VRAM di un LLM
La memoria necessaria per far girare un modello linguistico in locale è la somma di tre parti.
1. I pesi del modello
Pesi = parametri × bit per peso ÷ 8. Un modello da 8 miliardi di parametri in FP16 (16 bit) occupa circa 16 GB; quantizzato a 4 bit ne occupa circa un terzo. I valori usati sono i bit effettivi dei formati GGUF di llama.cpp, che includono le scale di quantizzazione: per esempio Q4_K_M vale circa 4,85 bit per peso, non 4.
2. La quantizzazione e la qualità
- Q8_0: praticamente identico all'originale.
- Q6_K e Q5_K_M: differenza difficile da notare.
- Q4_K_M: il compromesso più usato, perdita di qualità piccola.
- Q3 e Q2: la qualità cala in modo evidente, soprattutto sui modelli piccoli. Meglio un modello più piccolo a Q4 che uno grande a Q2.
3. La cache KV (il contesto)
Per ogni token nel contesto il modello conserva chiavi e valori di ogni layer: cache KV = 2 × layer × teste KV × dimensione testa × byte × token. Cresce in modo lineare con il contesto e con gli utenti in parallelo: con 128k token può pesare quanto il modello stesso. Si può dimezzare quantizzando la cache a Q8_0. Alcuni modelli (Gemma 3, gpt-oss) usano l'attenzione a finestra su parte dei layer, che tiene in memoria solo gli ultimi token: il calcolo ne tiene conto.
4. Overhead e memoria usabile
Il motore (llama.cpp, Ollama, vLLM, LM Studio) aggiunge buffer di calcolo: stimati in 0,4 GB più il 4% dei pesi. Sui Mac e sui mini PC a memoria unificata la GPU può usare di norma circa il 75% della memoria totale. vLLM di default riserva il 90% della VRAM per la cache, quindi lì i numeri reali sono diversi.
Le stime hanno un margine di ±10–20%: dipendono dal motore, dalla versione e dalle impostazioni. Architetture dei modelli prese dai file config.json ufficiali.