DeepSeek V3.2 localmente: MoE 671B accessibile ai mortels
Installare DeepSeek V3.2 in locale significa fare i conti con una realtà: 671 miliardi di parametri totali, 37 miliardi attivi per token e un nuovo meccanismo di attenzione sparsa che cambia le carte in tavola sui contesti lunghi. Questa guida fornisce i requisiti hardware reali (non quelli del marketing), spiega la quantizzazione Q2_K_XL di ik_llama, mostra l'impresa tecnica dell'offload selettivo tramite --override-tensor e si conclude con i token/sec misurati su una workstation domestica nel 2026.
#Perché installare DeepSeek V3.2 localmente
DeepSeek V3.2 è l'aggiornamento intermedio pubblicato da DeepSeek AI alla fine del 2025, con licenza MIT, che introduce due cambiamenti significativi rispetto a V3: DeepSeek Sparse Attention (DSA), un meccanismo di attenzione sparsa che rende subquadratico il costo in memoria dei contesti lunghi, e un perfezionamento dell'addestramento con predizione di più token. Sulla carta, si mantiene la qualità di V3 e si guadagna in efficienza su 128k+ token.
Installarlo in locale risponde a tre esigenze concrete: riservatezza totale (nessun documento viene inviato a DeepSeek), riproducibilità (i pesi non scompaiono da un giorno all'altro) e libertà di sperimentazione (nessun limite alla frequenza delle richieste, nessun filtro di moderazione imposto).
#MoE 671B / 37B attivi + DeepSeek Sparse Attention
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
DeepSeek V3.2 mantiene l'architettura MoE di V3: un router seleziona 8 esperti su 256 per strato, il che fa lavorare solo circa 37 miliardi di parametri per ogni token generato. I restanti 634 miliardi dormono, ma devono rimanere indirizzabili, altrimenti il router perde l'accesso agli esperti che non ha caricato.
- Parametri totali
- ≈ 671 miliardi (indipendentemente dal numero di bit, questa massa deve trovare posto da qualche parte: nella RAM, nella VRAM o su un SSD tramite mmap).
- Parametri attivi per token
- ≈ 37 miliardi. Questo numero determina la velocità teorica: un MoE da 671B sostiene il costo computazionale di un modello denso da 37B.
- Esperti per layer
- 256 esperti MoE + 1 esperto condiviso, routing top-8. Più RAM hai, più strati di esperti rimangono residenti e più la generazione è stabile.
- Attenzione
- Multi-Head Latent Attention (MLA) ereditata da V3, ora combinata con DeepSeek Sparse Attention (DSA) per i contesti > 32k token.
- Contesto
- 128k token annunciati, utilizzabili in pratica grazie a DSA — la cache KV non esplode più in maniera lineare come su un modello denso classico tipo Qwen 3.5 o Gemma 4.
#Requisiti hardware realistici
Nessuna configurazione consumer riesce a far girare DeepSeek V3.2 senza complicati accorgimenti. Ecco i tre profili realistici nel 2026, ordinati in base al compromesso tra velocità e budget.
- Profilo A — DDR5 potente (192–384 GB)
- Workstation con Threadripper 7960X / Xeon W o EPYC 9354P, 256 GB di DDR5 ECC (8 canali), GPU non obbligatoria. Q2_K_XL entra interamente in RAM. Velocità: 5–9 tok/s usando solo la CPU.
- Profilo B — RTX 5090 + 192 GB DDR5 (raccomandato)
- Il punto ottimale nel 2026: RTX 5090 (32 GB GDDR7, banda passante 1792 GB/s) + 192 GB DDR5 su una piattaforma consumer recente. Si mantengono i livelli di attenzione e l'esperto condiviso sulla GPU, il resto in RAM. Velocità: 10–15 tok/s in generazione.
- Profilo C — RAM modesta + SSD NVMe Gen 4/5
- 96–128 GB di DDR5 + SSD NVMe da almeno 7 GB/s, ≥ 1 TB libero. Gli esperti vengono mappati in memoria dal SSD tramite mmap. Velocità: 1,5–3 tok/s — utilizzabile per batch notturni, non per un uso interattivo.
#1. Scegliere la quantizzazione per V3.2
L'ecosistema GGUF per DeepSeek V3.2 è sostenuto da due attori principali: Unsloth (che pubblica le varianti UD = «Unsloth Dynamic», tra cui la famosa Q2_K_XL) e bartowski. Le UD utilizzano una matrice di importanza per mantenere gli strati sensibili (attenzione, esperto condiviso) a una precisione superiore rispetto al resto: una differenza concreta nella qualità finale.
- IQ1_S (~150 GB)
- Quantizzazione dinamica a 1 bit. Rientra in 192 GB di RAM con margine. Qualità degradata, ma utilizzabile per conversazioni generiche. Da evitare per il codice.
- Q2_K_XL (~220 GB)
- Il riferimento ik_llama / Unsloth Dynamic. Mantiene gli strati critici in Q4-Q5 e comprime gli esperti in Q2. Circa il 95% della qualità di Q4 sui benchmark di ragionamento. Entra in 256 GB di RAM oppure in 192 GB con un po' di offload su SSD.
- Q3_K_S (~290 GB)
- Per le workstation da 384 GB. Qualità quasi-Q4 sui contesti lunghi. Consigliato se intendi utilizzare seriamente i 128k token.
- Q4_K_M (~400 GB)
- A pieno regime. Riservato ai server EPYC a doppio socket con almeno 512 GB di DDR5. Oltre questo livello, il guadagno in qualità diventa marginale per un uso locale.
#2. Compilare ik_llama.cpp (il fork che gestisce V3.2)
Al momento della stesura di queste righe, il ramo principale di ggerganov/llama.cpp supporta DeepSeek V3.2, ma senza ottimizzazioni specifiche per il routing MoE di DeepSeek. Il fork ik_llama.cpp (Iwan Kawrakow) include kernel CUDA accelerati per i tensori degli esperti e il supporto dinamico a DSA — un aumento del throughput dal 30 al 50% su V3.2, a seconda della configurazione.
Su Mac Apple Silicon, sostituire GGML_CUDA con GGML_METAL. Su AMD, GGML_HIP con ROCm 6.3+. Calcola da 10 a 15 minuti di compilazione su una macchina recente: è C++ con generazione CUDA, quindi non avviare la compilazione su un portatile non collegato alla rete elettrica.
#3. Scaricare i GGUF V3.2
I pesi GGUF di DeepSeek V3.2 sono pubblicati su Hugging Face. Per Q2_K_XL Unsloth (l'opzione consigliata per la maggior parte delle configurazioni), un solo download di circa 220 GB suddiviso in diversi file.
Il download richiede diverse ore con una connessione domestica — prevedi una connessione in fibra stabile e un disco di destinazione con almeno 250 GB liberi. I GGUF di queste dimensioni sono suddivisi in un numero di file compreso tra 5 e 7 (split-00001-of-N.gguf), e ik_llama.cpp rileva automaticamente le parti se indichi la prima.
#4. Avvio con --override-tensor (la chiave della performance ibrida)
Il segreto di una buona installazione locale di deepseek v3.2 sta in un'opzione: --override-tensor (alias -ot). Consente di selezionare tramite regex quali layer rimangono su CPU/RAM e quali vengono spostati sulla GPU. Su un MoE, non vogliamo assolutamente caricare tutto sulla GPU (la VRAM non basterà mai), ma vogliamo assolutamente che l'attenzione e i layer condivisi siano accelerati.
L'espressione regolare \.ffn_(up|down|gate)_exps\. seleziona i tre tensori FFN per esperto — cioè la stragrande maggioranza dei 671B parametri — e li forza a rimanere sulla CPU. Sulla GPU vengono caricati: attenzione (MLA), esperto condiviso, embedding, head. Su una RTX 5090 da 32 GB si utilizzano circa 22 GB di VRAM; il resto serve per la cache KV.
#5. Token/sec misurati su workstation domestica
Valori di riferimento misurati con la build di maggio 2026 di ik_llama.cpp, Q2_K_XL, contesto 32k, prompt misto in francese e codice. I valori restano stabili entro ±15 % a seconda del prompt e del warm-up delle pagine di memoria.
- RTX 5090 + Ryzen 9 7950X3D + 192 GB DDR5-6000
- Prefill ~110 tok/s, generazione 12–15 tok/s. La configurazione domestica consigliata per il 2026.
- RTX 4090 + Threadripper 7960X + 256 GB DDR5 ECC
- Prefill ~90 tok/s, generazione 9–12 tok/s. La 4090 è alla pari con la 5090 in questa configurazione ibrida perché il collo di bottiglia è nella RAM, non nella GPU.
- EPYC 9354P + 384 GB DDR5 ECC (12 canali), senza GPU
- Prefill ~70 tok/s, generazione 7–9 tok/s. La banda di memoria totale (~460 GB/s) compensa l'assenza di GPU.
- Mac Studio M3 Ultra 192 GB
- Prefill ~55 tok/s, generazione 6–8 tok/s in Q2_K_XL. La memoria unificata (~820 GB/s) salva la situazione.
- Ryzen 9 7950X + 128 GB DDR5 + SSD Samsung 990 Pro
- Prefill ~25 tok/s, generazione 1,5–2,5 tok/s. Onestamente, utilizzabile solo in batch.
#DeepSeek V3.2 vs DeepSeek R1: quale installare?
È una domanda ricorrente, perché i due modelli condividono la stessa architettura MoE 671B / 37B attivi e la stessa licenza MIT. La differenza sta nel post-addestramento, non nella struttura di base.
- DeepSeek V3.2
- Modello generalista (chat), risposte dirette. Eccellente in francese, molto valido nella programmazione. Aggiunge DSA per il contesto lungo. Da preferire come assistente quotidiano, per la sintesi e la scrittura.
- DeepSeek R1
- Modello di ragionamento (catena di pensiero esplicita in stile o1). Emette molti token interni (<think>...</think>) prima della risposta finale. Da preferire per matematica, logica e debug di algoritmi complessi.
- Costo dell'inferenza
- R1 genera da 3 a 10 volte più token (a causa del thinking) per produrre la stessa risposta finale. A parità di velocità di generazione, R1 impiega 5 minuti mentre V3.2 impiega 30 secondi. È un aspetto critico in locale, dove ogni tok/s conta.
- Contesto lungo
- Grazie a DSA, V3.2 gestisce 128k token con una cache KV di dimensioni ragionevoli. R1 non dispone di DSA e il suo consumo di memoria esplode oltre i 64k token.
- VRAM/RAM richiesta
- Identica. I due modelli condividono l'architettura 671B/37B e occupano entrambi circa 220 GB nella stessa quantizzazione Q2_K_XL.
#Risoluzione dei problemi
- « unknown model architecture: deepseek2 »
- Il tuo llama.cpp è troppo vecchio o è stato compilato senza il supporto per deepseek2. Aggiorna ik_llama.cpp (ramo main successivo ad aprile 2026) e ricompila. Il binario precompilato standard non sempre basta.
- OOM CUDA già durante il caricamento
- Il tuo regex -ot non genera abbastanza esperti su CPU. Verifica con ik_llama-bench lo schema reale delle tensori. Il regex giusto per V3.2 mira bene a ffn_(up|down|gate)_exps, non solo a ffn_exps.
- Generazione a 1 tok/s con 192 GB di RAM
- Il kernel caricherà le pagine dal GGUF finché non avrà caricato tutte quelle utilizzate più spesso. Un primo prompt di riscaldamento da 200 token precarica gli esperti. Altrimenti, aumenta --threads fino al numero di core fisici (non logici).
- Risposte che passano al cinese senza motivo
- Template di chat errato. Verifica che --chat-template sia in modalità auto e che il GGUF includa effettivamente il template Jinja di DeepSeek. Altrimenti, specifica esplicitamente --chat-template deepseek3.
- DSA sembra inattivo (cache KV lineare)
- DSA si attiva solo a partire da una lunghezza minima del contesto (configurabile). Per contesti < 16k, il modello utilizza l'attenzione densa classica: è il comportamento previsto e non cambia nulla in termini di qualità.
- Crash su prompt lungo dopo il warmup
- Probabilmente hai saturato la swap. DeepSeek V3.2 non ama la swap: se la RAM fisica non è sufficiente, disattiva la swap (sudo swapoff -a) e lascia che llama.cpp gestisca la paginazione tramite mmap: è più veloce e più stabile.
#Per approfondire
DeepSeek V3.2 in locale è un punto di partenza per esplorare la categoria dei «modelli di frontiera ospitabili su infrastruttura propria». Tre percorsi complementari:
- Ottimizzare la compilazione di llama.cpp
- La guida "Compilare llama.cpp con CUDA" descrive in dettaglio i flag avanzati (Flash Attention, MMQ, offload tensors) che incidono realmente sulle prestazioni dei modelli MoE.
- Capire le quantizzazioni moderne
- Il manuale "Scegliere la quantizzazione (Q4, Q5, Q8, FP16)" spiega perché Q2_K_XL funziona dove Q2 classico fallisce e in quali casi passare a Q3/Q4.
- Spingersi un passo oltre nelle dimensioni
- La guida "Kimi K2 in locale" applica lo stesso metodo a un MoE con 1T di parametri — utile per anticipare dove andrà l'ecosistema nel 2026-2027.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.