Ollama – parte 11 – terminologia

Dialogo con Gemini.

Potresti spiegare in modo divulgativo cosa significhino: “sweet spot ideale”, “fascia dei modelli da 7B – 8B”, “parametri quantizzati a 4-bit”?

Queste tre espressioni descrivono il punto di equilibrio perfetto per far girare modelli linguistici (LLM) su computer normali, senza bisogno di server aziendali da decine di migliaia di euro.

Fascia dei modelli da 7B – 8B

“B” sta per Billion (miliardi in inglese). Si riferisce al numero di parametri del modello, ossia i collegamenti interni e le “manopole” matematiche che la rete neurale regola durante l’addestramento per imparare a ragionare e a scrivere.

  • Cosa significa in pratica: Un modello con 7 o 8 miliardi di parametri (come Meta Llama 3 8B o Mistral 7B) è una versione compatta rispetto ai giganti del settore (che arrivano a 70B o centinaia di miliardi).
  • Perché conta: Pur essendo relativamente piccolo, ha capacità di comprensione, scrittura e logica sorprendenti per le sue dimensioni.

Parametri quantizzati a 4-bit

Di fabbrica, ogni singolo parametro viene salvato come numero decimale ad alta precisione a 16-bit (formato floating point), occupando circa 2 byte di memoria RAM/VRAM ciascuno. Un modello da 8 miliardi di parametri richiederebbe quindi circa 16 GB solo per essere caricato.

  • La quantizzazione: È una tecnica di compressione intelligente. Invece di usare numeri lunghi e precisissimi, si arrotondano i valori per memorizzarli usando solo 4-bit (mezzo byte per parametro).
  • L’effetto pratico: La dimensione del file crolla a circa 4 – 5 GB, con una perdita di intelligenza minima e quasi impercettibile nell’uso quotidiano.

Sweet spot ideale

Nel gergo ingegneristico, lo sweet spot è la combinazione ottimale in cui si ottiene il massimo beneficio con il minimo sforzo o costo.

CaratteristicaModello 8B a 16-bit (non compresso)Modello 8B quantizzato a 4-bit (Sweet Spot)
VRAM / RAM richiesta~16 GB (solo per il modello)~5-6 GB (inclusa memoria di lavoro)
Hardware necessarioSchede video professionali o PC costosiPortatili moderni, MacBook base, GPU economiche
Velocità di generazioneSpesso lenta se sfora nella RAM di sistemaMolto veloce, gira interamente nella memoria GPU
Qualità delle risposte100%~95-98% (quasi indistinguibile)

Unire la taglia 7B-8B con la quantizzazione a 4-bit rappresenta lo “sweet spot” perché permette a chiunque abbia un normale computer consumer di eseguire un’intelligenza artificiale potente localmente, senza connessione internet e a costo zero.

Nel gergo ingegneristico, lo sweet spot è la combinazione ottimale in cui si ottiene il massimo beneficio con il minimo sforzo o costo.

CaratteristicaModello 8B a 16-bit (non compresso)Modello 8B quantizzato a 4-bit (Sweet Spot)
VRAM / RAM richiesta~16 GB (solo per il modello)~5-6 GB (inclusa memoria di lavoro)
Hardware necessarioSchede video professionali o PC costosiPortatili moderni, MacBook base, GPU economiche
Velocità di generazioneSpesso lenta se sfora nella RAM di sistemaMolto veloce, gira interamente nella memoria GPU
Qualità delle risposte100%~95-98% (quasi indistinguibile)

Unire la taglia 7B-8B con la quantizzazione a 4-bit rappresenta lo “sweet spot” perché permette a chiunque abbia un normale computer consumer di eseguire un’intelligenza artificiale potente localmente, senza connessione internet e a costo zero.

Quali requisiti hardware minimi e consigliati servono per far girare modelli 8B a 4-bit in locale?

Per far girare un modello da 8B quantizzato a 4-bit (formato GGUF come Q4_K_M, circa 4.5–5 GB su disco), i requisiti variano drasticamente a seconda che si utilizzi l’accelerazione GPU oppure solo la CPU di sistema.

ComponenteRequisito Minimo (CPU Only / Funzionante)Requisito Consigliato (GPU Dedicata / Esperienza Fluida)
GPU (VRAM)Nessuna (oppure integrata con RAM condivisa)8 GB – 12 GB VRAM (es. NVIDIA RTX 3060 12GB, RTX 4060 8GB)
RAM di Sistema16 GB DDR4/DDR516 GB – 32 GB
Processore (CPU)4–6 core moderni (AVX2 supportato)8+ core recenti (AMD Ryzen serie 5000/7000 o Intel Core 12a+ gen)
Archiviazione10 GB liberi su SSD SATASSD NVMe M.2 (per caricamento istantaneo)
Apple Silicon (Mac)M1 / M2 / M3 con 8 GB di memoria unificataMac con chip M-series e 16 GB+ di memoria unificata

Cosa cambia tra configurazione minima e consigliata

  • Velocità di generazione (Token/s): willitrun·ai
    • Solo CPU / RAM di sistema: La velocità si attesta in genere tra i 4 e gli 8 token al secondo (sufficiente per leggere mentre scrive, ma lenta su testi lunghi).
    • GPU dedicata (tutto in VRAM): Il modello raggiunge agevolmente i 35–60+ token al secondo, fornendo risposte istantanee.
  • La memoria di lavoro (KV Cache & Contesto):
    • Il file pesa circa 5 GB, ma man mano che la conversazione o il documento caricato si allungano (contesto di 4k, 8k o 32k token), la memoria di lavoro cresce di ulteriori 1–3 GB. willitrun·ai
    • Una scheda grafica da 8 GB di VRAM è sufficiente per compiti standard e prompt brevi/medi; una scheda da 12 GB (come una RTX 3060) garantisce di non esaurire la VRAM anche con finestre di contesto ampie o con quantizzazioni leggermente superiori (Q5/Q6).

Qual è la differenza pratica tra quantizzazioni Q4_K_M, Q5_K_M e Q8_0 in termini di memoria e qualità?

La sigla indica sia il numero di bit assegnati ai pesi, sia lo schema di compressione introdotto dall’ecosistema llama.cpp / GGUF (dove i formati k-quants applicano precisioni differenziate ai layer critici della rete).

Livello di QuantizzazioneBit effettivi per pesoDimensione file (modello 8B)VRAM minima consigliataPerdita di precisione (Perplessità)Caso d’uso ideale
Q4_K_M~4.5 bpw~4.9 GB8 GBMinima (~1–2%)Standard per consumer GPU (8 GB VRAM); bilanciamento ottimale tra velocità e memoria.
Q5_K_M~5.5 bpw~5.7 GB8–10 GBTrascurabile (<0.5%)Ideale quando si ha VRAM sufficiente e serve massima aderenza su task logici, codice o matematica.
Q8_08.0 bpw~8.5 GB12–16 GBPraticamente zeroRiferimento quasi identico a 16-bit nativo; poco efficiente per VRAM limitata rispetto ai vantaggi reali.

Cosa significa la sigla (es. Q4_K_M)

  • Q4 / Q5 / Q8: Il numero base di bit (4, 5 o 8 bit).
  • K (“k-quants”): Indica l’uso di “super-blocchi” e quantizzazione a blocchi gerarchici, riducendo gli errori di quantizzazione rispetto ai vecchi metodi legacy (come i vecchi Q4_0).
  • M (“Medium”): Significa che alcuni tensori critici (es. matrici di attenzione e gate) vengono mantenuti a una precisione leggermente più elevata (es. 5 o 6 bit), mentre il resto dei pesi scende a 4 bit, massimizzando il rapporto qualità/peso.

Confronto pratico sulle prestazioni

  • Q4_K_M vs Q5_K_M: Nei compiti di scrittura, riassunto o chat generale, la differenza tra Q4 e Q5 è quasi impercettibile. Q5_K_M diventa vantaggioso quando il modello affronta sintassi rigorosa (generazione di codice, formule LaTeX, ragionamento simbolico), dove un singolo token errato compromette il risultato finale.
  • Q5_K_M vs Q8_0: La quantizzazione a 8 bit raddoppia quasi l’impronta di memoria rispetto a Q4 senza portare un incremento tangibile nelle risposte reali. Con un modello da 8B, Q8_0 satura completamente una scheda da 8 GB (forzando il contesto o parte dei layer nella RAM lenta di sistema), vanificando il vantaggio prestazionale.

Come calcolare quanta VRAM occupa il context window insieme al modello quantizzato?

La VRAM totale richiesta durante l’inferenza è la somma di tre componenti distinte:

VRAMtotale​=Memoria Modello+KV Cache (Contesto)+Overhead / Buffer

1. Memoria dei Pesi del Modello

È la dimensione pura del file caricato in memoria (GGUF o tensori quantizzati):

  • Per un modello 8B a Q4_K_M: circa 4.9 GB
  • Per un modello 8B a Q5_K_M: circa 5.7 GB

2. Calcolo della KV Cache (Context Window)

La KV Cache memorizza i tensori di Key e Value calcolati per ogni token della sequenza, evitando di ricalcolarli a ogni nuova parola generata.

La formula analitica per calcolare la dimensione della KV Cache (in byte) è:

KV Cache=2×L×Hkv​×Dhead​×C×P

Dove:

  • 2: corrisponde ai due tensori memorizzati (Key e Value).
  • L: numero di strati della rete (layers).
  • Hkv​: numero di teste di attenzione assegnate a Key e Value (nei modelli moderni con Grouped-Query Attention, o GQA, questo numero è notevolmente ridotto rispetto alle teste di Query).
  • Dhead​: dimensione di ciascuna testa (Dmodel​/Hquery​).
  • C: lunghezza del contesto in token (es. 4.096, 8.192, 32.768).
  • P: precisione dei dati della cache in byte (di default sono FP16/BF16, quindi 2 byte, riducibile a 1 byte o meno se si quantizza la cache a 8-bit o 4-bit).

Esempio pratico con Llama 3 8B

I parametri architetturali di un modello 8B moderno (come Llama 3) sono:

  • Layers (L) = 32
  • Key/Value heads (Hkv​) = 8 (grazie a GQA, contro le 32 di query)
  • Head dimension (Dhead​) = 128
  • Precisione FP16 (P) = 2 byte

Calcolo per singolo token:

2×32×8×128×2=131.072 byte/token=0.125 MB/token

Lunghezza Contesto (C)Dimensione KV Cache (FP16 nativo)Dimensione KV Cache (Quantizzata a 8-bit / Q8_0)
2.048 token (2k)~0.26 GB~0.13 GB
8.192 token (8k)~1.02 GB~0.51 GB
16.384 token (16k)~2.05 GB~1.02 GB
32.768 token (32k)~4.10 GB~2.05 GB
65.536 token (64k)~8.19 GB~4.10 GB
131.072 token (128k)~16.38 GB~8.19 GB

(Nota: su modelli precedenti senza GQA come Llama 1 o vecchi 7B, Hkv​ era 32, rendendo la cache 4 volte più grande).

3. Overhead di calcolo (CUDA Context & Scratchpad)

L’ambiente di runtime (es. runtime CUDA, buffer di attivazione temporanei e driver) occupa un margine fisso:

  • Tra 300 MB e 600 MB aggiuntivi.

Stima Finale: Modello 8B (Q4_K_M) su GPU

Contesto impostatoModelloKV Cache (FP16)OverheadVRAM Totale RichiestaFattibilità su GPU 8 GB
4.096 token~4.9 GB~0.5 GB~0.5 GB~5.9 GBPiena capienza (rimangono ~2 GB)
8.192 token~4.9 GB~1.0 GB~0.5 GB~6.4 GBSicura
16.384 token~4.9 GB~2.0 GB~0.5 GB~7.4 GBAl limite (rischio OOM se il display usa VRAM)
32.768 token~4.9 GB~4.1 GB~0.5 GB~9.5 GBSfora gli 8 GB (richiede GPU da 12–16 GB o cache quantizzata)

Per estendere il contesto su schede da 8 GB senza saturare la memoria, i motori di inferenza permettono di quantizzare la cache (ad esempio con i flag --cache-type-k q8_0 --cache-type-v q8_0 in llama.cpp), dimezzando il consumo della KV Cache a fronte di un impatto qualitativo trascurabile.