IntelligenceBox
Come eseguire LLM in locale: hardware, VRAM e basi di performance
Torna al Blog
Tecnologia5 marzo 20266 min readIntelligenceBox Team

Come eseguire LLM in locale: hardware, VRAM e basi di performance

Guida pratica per eseguire modelli LLM in locale: perché la VRAM è cruciale, come contesto e quantizzazione influenzano memoria e velocità, differenze tra CPU e GPU e checklist di ottimizzazione.

Come eseguire LLM in locale: hardware, VRAM e basi di performance

Come eseguire LLM in locale: hardware, VRAM e basi di performance

Eseguire un Large Language Model (LLM) in locale significa avere un assistente AI che gira sul tuo PC o server, senza inviare i prompt a servizi cloud. Il vantaggio è chiaro: più controllo su dati e costi, e spesso latenza più bassa. Il rovescio della medaglia è che devi capire bene hardware, VRAM/RAM, quantizzazione e throughput per ottenere prestazioni accettabili. In questa guida trovi una base solida (e pratica) per scegliere la configurazione giusta e stimare cosa aspettarti.

Perché far girare un LLM in locale (e quando non conviene)

Vantaggi principali

  • Privacy e compliance: i dati restano in casa (utile per documenti interni e PII).
  • Costi prevedibili: niente consumo a token o abbonamenti per uso intensivo.
  • Personalizzazione: più libertà su modelli, prompt, RAG e fine-tuning leggero.

Limiti tipici

  • VRAM/RAM: il collo di bottiglia più comune.
  • Velocità: su CPU o GPU entry-level, i token/secondo possono essere bassi.
  • Setup e manutenzione: driver, runtime, formati modello, aggiornamenti.

Concetti base: parametri, token e memoria

Parametri del modello: cosa indicano davvero

La “taglia” di un LLM è spesso espressa in miliardi di parametri (es. 7B, 13B, 70B). Più parametri = potenzialmente più qualità, ma più memoria e calcolo.

In prima approssimazione, la memoria per pesi dipende da quanti byte usi per parametro:

  • FP16: ~2 byte/parametro
  • INT8: ~1 byte/parametro
  • INT4: ~0,5 byte/parametro Questa è una semplificazione utile per farti un’idea. Nella pratica entrano anche overhead, KV cache e gestione dei tensori. Il tema della quantizzazione (INT8/INT4) è centrale proprio perché riduce drasticamente la memoria necessaria.

Token: input e output sono “pezzi” di testo

Gli LLM non leggono caratteri ma token. Per l’italiano, una stima rozza è:

  • 1 token ≈ 3–4 caratteri medi (varia moltissimo) Le prestazioni si misurano spesso in:

  • token/s (generazione)

  • time-to-first-token (TTFT): quanto aspetti prima di vedere il primo token

VRAM e RAM: la differenza (e perché la VRAM è la risorsa critica)

VRAM (GPU)

La VRAM è memoria molto veloce e vicina alla GPU. Se i pesi del modello e la KV cache stanno in VRAM, ottieni throughput molto più alto.

RAM (CPU)

La RAM è più capiente e più economica, ma più lenta. Puoi far girare modelli in RAM (CPU inference) oppure usare offloading (parte su GPU, parte su CPU). Funziona, ma il bus (PCIe) e la latenza impattano.

KV cache: memoria che cresce con il contesto

Durante la generazione, il modello mantiene una cache (KV) che aumenta con:

  • lunghezza del contesto (es. 4k, 8k, 16k token)
  • dimensione del modello
  • batching e numero di conversazioni simultanee In pratica: anche se il modello “entra” in VRAM, potresti saturarla quando aumenti il contesto o apri più sessioni.

Quantizzazione: come far “entrare” un modello nella tua macchina

La quantizzazione riduce precisione dei pesi per diminuire memoria e, spesso, aumentare velocità.

Quantizzazioni comuni (idea generale)

  • 8-bit: buon compromesso qualità/memoria

  • 4-bit: ottimo per far girare modelli grandi su GPU consumer; qualità spesso sorprendentemente buona per chat e Q&A Molti flussi locali usano formati e tool ottimizzati per inference con quantizzazione, come:

  • llama.cpp e derivati (CPU/GPU), progetto molto diffuso per inference locale con modelli tipo Llama e compatibili, secondo llama.cpp

  • stack di esecuzione per GPU NVIDIA con kernel ottimizzati, ad esempio tramite ecosistemi citati nella documentazione di NVIDIA TensorRT-LLM

Stima pratica: quanta VRAM serve?

Non esiste una tabella universale (dipende da architettura, formato, contesto, runtime), ma queste linee guida sono utili per orientarti.

Regola “da tavolo” per i pesi

  • 7B in 4-bit: tipicamente gestibile su 8 GB VRAM in molte configurazioni, con attenzione a contesto e overhead

  • 13B in 4-bit: spesso più comodo con 12–16 GB VRAM

  • 30–34B in 4-bit: di solito 24 GB VRAM è una soglia realistica per evitare troppo offload

  • 70B in 4-bit: spesso richiede multi-GPU o offloading pesante, oppure CPU/RAM molto generosa Perché “tipicamente”? Perché l’uso reale dipende molto da:

  • contesto (4k vs 16k)

  • implementazione della KV cache

  • attivazioni e buffer del runtime

  • parallelismo e batch

Consiglio pratico

Se sei all’inizio, punta a una configurazione che non stia al limite: lascia 10–20% di VRAM libera per stabilità e per contesti più lunghi.

CPU, GPU e storage: cosa conta davvero per la velocità

GPU: il fattore principale per token/s

Per inference LLM, una GPU con:

  • molta VRAM
  • buona banda memoria
  • kernel ottimizzati (CUDA/ROCm) …di solito batte la CPU di molto.

CPU: importante per TTFT e per pipeline/RAG

La CPU conta per:

  • pre/post-processing

  • tokenizzazione

  • retrieval (ricerca su vettori) se fai RAG

  • esecuzione totale se non hai GPU Se fai CPU-only, cerca:

  • alta frequenza single-core e buoni AVX/AMX (dipende dalla piattaforma)

  • molta RAM

Storage: evita colli di bottiglia banali

Un SSD NVMe aiuta soprattutto per:

  • caricamento modello
  • indicizzazione e ricerca documentale Non aumenta direttamente i token/s, ma riduce tempi morti e rende l’esperienza più fluida.

Leve principali per migliorare le performance

1) Riduci il contesto quando puoi

Se non ti serve 16k token, restare a 4k–8k riduce memoria e spesso migliora velocità.

2) Usa quantizzazione adeguata

  • Parti da 4-bit per massimizzare compatibilità con GPU consumer.
  • Se noti cali qualitativi su task specifici (ragionamento, estrazione), prova 8-bit.

3) Limita la lunghezza di output

Imposta max_tokens o limiti simili. Output lunghi moltiplicano i costi.

4) Scegli runtime ottimizzato per il tuo hardware

  • Per compatibilità ampia e semplicità: soluzioni basate su llama.cpp (CPU/GPU) secondo llama.cpp
  • Per pipeline NVIDIA e ottimizzazioni avanzate: riferimenti e implementazioni in TensorRT-LLM

5) Offloading intelligente

Se la VRAM non basta:

  • offloada parte dei layer su CPU/RAM
  • accetta una riduzione di throughput, ma ottieni stabilità e modelli più grandi

Configurazioni consigliate (per profili)

Profilo A: “Starter” (chat locale e piccoli progetti)

  • GPU: 8–12 GB VRAM
  • RAM: 16–32 GB
  • Target: modelli 7B (4-bit) e alcuni 13B leggeri

Profilo B: “Power user” (RAG su documenti, contesto medio-lungo)