🔒 Calcolo sul tuo dispositivo · nessun dato inviato o salvato

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.

🍺 Buy me a beer