DeepSeek V3.2 localmente: MoE 671B accesible a los mortels
Instalar DeepSeek v3.2 en local implica asumir una realidad: 671 mil millones de parámetros totales, 37 mil millones activos por token y un nuevo mecanismo de atención dispersa que cambia las reglas del juego con los contextos largos. Esta guía presenta los requisitos de hardware reales (no los de marketing), explica la cuantización Q2_K_XL de ik_llama, muestra la proeza del offload selectivo mediante --override-tensor y termina con los tokens/segundo medidos en una estación de trabajo doméstica en 2026.
#Por qué instalar DeepSeek V3.2 en local
DeepSeek V3.2 es la actualización intermedia publicada por DeepSeek AI a finales de 2025, bajo licencia MIT, que introduce dos cambios significativos respecto a V3: DeepSeek Sparse Attention (DSA), un mecanismo de atención dispersa que hace que el coste de memoria del contexto largo sea subcuadrático, y un refinamiento del entrenamiento de predicción de múltiples tokens. Sobre el papel, se mantiene la calidad de V3 y se gana en eficiencia con 128k+ tokens.
Instalarlo en local responde a tres necesidades concretas: confidencialidad total (ningún documento se envía a DeepSeek), reproducibilidad (los pesos no desaparecen de un día para otro) y experimentación libre (sin límites de frecuencia de solicitudes ni filtros de moderación impuestos).
#MoE 671B / 37B activos + DeepSeek Sparse Attention
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
DeepSeek V3.2 mantiene la arquitectura MoE de V3: un router elige 8 expertos de 256 por capa, lo que hace trabajar solo unos ~37 mil millones de parámetros por cada token generado. Los otros 634 mil millones duermen, pero deben seguir siendo accesibles, de lo contrario el router pierde acceso a los expertos que no ha cargado.
- Parámetros totales
- ≈ 671 mil millones (no importa la tasa de bits, es esta cantidad la que debe alojarse en algún lugar: RAM, VRAM o SSD a través de mmap).
- Parámetros activos por token
- ≈ 37 mil millones. Este número determina la velocidad teórica: un MoE 671B soporta el costo de cómputo de un modelo denso de 37B.
- Expertos por capa
- 256 expertos MoE + 1 experto compartido, enrutamiento top-8. Cuanta más RAM tengas, más capas de expertos permanecen en memoria y más estable es la generación.
- Atención
- Multi-Head Latent Attention (MLA) heredada de V3, ahora combinada con DeepSeek Sparse Attention (DSA) en contextos > 32k tokens.
- Contexto
- 128k tokens anunciados, utilizables en la práctica gracias a DSA: la caché KV ya no se dispara de forma lineal como en un modelo denso clásico del tipo Qwen 3.5 o Gemma 4.
#Requisitos de hardware explicados con honestidad
Ninguna configuración de consumo puede ejecutar DeepSeek V3.2 sin malabarismos. Estos son los tres perfiles realistas en 2026, ordenados según el equilibrio entre velocidad y presupuesto.
- Perfil A — DDR5 potente (192–384 GB)
- Estación de trabajo con Threadripper 7960X / Xeon W o EPYC 9354P, 256 GB DDR5 ECC (8 canales), sin necesidad de GPU. Q2_K_XL cabe íntegramente en la RAM. Velocidad: 5–9 tok/s usando solo la CPU.
- Perfil B — RTX 5090 + 192 GB DDR5 (recomendado)
- El punto óptimo de 2026: RTX 5090 (32 GB GDDR7, ancho de banda de 1792 GB/s) + 192 GB DDR5 en una plataforma reciente de consumo. Se mantienen las capas de atención y el experto compartido en la GPU, y el resto en RAM. Velocidad: 10–15 tok/s en generación.
- Perfil C — RAM modesta + SSD NVMe Gen 4/5
- 96–128 GB de DDR5 + SSD NVMe de al menos 7 GB/s, ≥ 1 TB libre. Los expertos se mapean en memoria desde el SSD mediante mmap. Velocidad: 1,5–3 tok/s — utilizable en procesamiento por lotes nocturno, no en modo interactivo.
#1. Elegir la cuantización para V3.2
El ecosistema GGUF para DeepSeek V3.2 está impulsado por dos actores principales: Unsloth (que publica las variantes UD = «Unsloth Dynamic», entre ellas la famosa Q2_K_XL) y bartowski. Las UD utilizan una matriz de importancia para mantener las capas sensibles (atención, experto compartido) con una precisión mayor que el resto, lo que supone una diferencia real en la práctica para la calidad final.
- IQ1_S (~150 GB)
- Cuantización dinámica de 1 bit. Cabe en 192 GB de RAM con margen. Calidad degradada, pero utilizable para chat general. Evitarla para tareas de código.
- Q2_K_XL (~220 GB)
- La referencia ik_llama / Unsloth Dynamic. Conserva las capas críticas en Q4-Q5 y comprime los expertos a Q2. ~95 % de la calidad Q4 en los benchmarks de razonamiento. Cabe en 256 GB de RAM o en 192 GB más un poco de offload en SSD.
- Q3_K_S (~290 GB)
- Para estaciones de trabajo con 384 GB. Calidad casi Q4 en contextos largos. Se recomienda si planeas usar seriamente los 128k tokens.
- Q4_K_M (~400 GB)
- A pleno rendimiento. Reservado para servidores EPYC de doble socket con 512 GB o más de memoria DDR5. Más allá, la mejora de calidad se vuelve marginal para un uso local.
#2. Compilar ik_llama.cpp (el fork que gestiona V3.2)
En el momento de escribir estas líneas, la rama principal de ggerganov/llama.cpp admite DeepSeek V3.2, pero sin optimizaciones específicas para el enrutamiento MoE de DeepSeek. El fork ik_llama.cpp (Iwan Kawrakow) incluye kernels CUDA acelerados para los tensores de los expertos y soporte dinámico de DSA: una mejora del 30 al 50 % en la velocidad de generación de V3.2 según la configuración.
En un Mac con Apple Silicon, reemplazar GGML_CUDA por GGML_METAL. En AMD, usar GGML_HIP con ROCm 6.3+. Calcula entre 10 y 15 minutos de compilación en una máquina reciente: es C++ con generación de código CUDA; no inicies la compilación en un portátil sin conectarlo a la red eléctrica.
#3. Descargar los GGUF V3.2
Los pesos GGUF de DeepSeek V3.2 están publicados en Hugging Face. Para Q2_K_XL Unsloth (la opción recomendada para la mayoría de las configuraciones), una única descarga de ~220 GB dividida en varios archivos.
La descarga tarda varias horas con una conexión doméstica: asegúrate de contar con una conexión de fibra óptica estable y un disco de destino con al menos 250 GB libres. Los GGUF de este tamaño se dividen en entre 5 y 7 archivos (split-00001-of-N.gguf), e ik_llama.cpp detecta automáticamente las partes si indicas el primer archivo.
#4. Inicio con --override-tensor (la clave del rendimiento híbrido)
El secreto de una buena instalación local de deepseek v3.2 radica en una opción: --override-tensor (alias -ot). Permite seleccionar mediante expresiones regulares qué capas permanecen en CPU/RAM y cuáles pasan a la GPU. En un MoE, no queremos en absoluto cargarlo todo en la GPU (la VRAM nunca será suficiente), pero sí queremos a toda costa que la atención y las capas compartidas se aceleren.
La expresión regular \.ffn_(up|down|gate)_exps\. selecciona los tres tensores FFN por experto —es decir, la inmensa mayoría de los 671B parámetros— y los obliga a permanecer en la CPU. Lo que pasa a la GPU: atención (MLA), experto compartido, embeddings, head. En una RTX 5090 de 32 GB, se consumen ~22 GB de VRAM; el resto se destina a la caché KV.
#5. Tokens por segundo medidos en una estación de trabajo doméstica
Valores de referencia medidos con una compilación de ik_llama.cpp de mayo de 2026, Q2_K_XL, contexto de 32k y un prompt mixto de francés y código. Las cifras se mantienen estables dentro de un margen de ±15 % según el prompt y el calentamiento de las páginas de memoria.
- RTX 5090 + Ryzen 9 7950X3D + 192 GB DDR5-6000
- Prefill ~110 tok/s, generación 12–15 tok/s. La configuración doméstica recomendada en 2026.
- RTX 4090 + Threadripper 7960X + 256 GB DDR5 ECC
- Prefill ~90 tok/s, generación 9–12 tok/s. La 4090 está a la par con la 5090 en este perfil híbrido porque el cuello de botella está en la RAM, no en la GPU.
- EPYC 9354P + 384 GB DDR5 ECC (12 canales), sin GPU
- Prefill ~70 tok/s, generación 7–9 tok/s. El ancho de banda total de memoria (~460 GB/s) compensa la ausencia de GPU.
- Mac Studio M3 Ultra 192 GB
- Prefill ~55 tok/s, generación de 6–8 tok/s en Q2_K_XL. La memoria unificada (~820 GB/s) salva la situación.
- Ryzen 9 7950X + 128 GB DDR5 + SSD Samsung 990 Pro
- Prefill ~25 tok/s, generación 1,5–2,5 tok/s. Sinceramente, solo resulta utilizable por lotes.
#DeepSeek V3.2 vs DeepSeek R1: ¿cuál instalar?
Pregunta frecuente, porque ambos modelos comparten la misma arquitectura MoE de 671B / 37B activos y la misma licencia MIT. La diferencia está en el postentrenamiento, no en el esqueleto.
- DeepSeek V3.2
- Modelo generalista (chat), respuestas directas. Excelente en francés, muy sólido en código. Añade DSA para el contexto largo. Recomendado como asistente de uso diario y para síntesis y redacción.
- DeepSeek R1
- Modelo de razonamiento (cadena de pensamiento explícita al estilo de o1). Emite muchos tokens internos (<think>...</think>) antes de la respuesta final. Darle prioridad para matemáticas, lógica y depuración algorítmica compleja.
- Costo de inferencia
- R1 genera entre 3 y 10 veces más tokens (por el thinking) para producir la misma respuesta final. A igual velocidad de generación, R1 tarda 5 minutos donde V3.2 tarda 30 segundos. Esto es crucial en local, donde cada tok/s cuenta.
- Contexto largo
- Gracias a DSA, V3.2 admite 128k tokens con un caché KV de tamaño razonable. R1 carece de DSA y su consumo de memoria se dispara por encima de 64k.
- VRAM/RAM requerida
- Idéntica. Ambos modelos comparten la arquitectura 671B/37B y ocupan unos 220 GB con la misma cuantización Q2_K_XL.
#Solución de problemas
- «unknown model architecture: deepseek2»
- Tu llama.cpp es demasiado antiguo o está compilado sin soporte para deepseek2. Actualiza ik_llama.cpp (rama main posterior a abril de 2026) y vuelve a compilarlo. El binario precompilado estándar no siempre basta.
- OOM de CUDA al cargar
- Tu expresión regular -ot no asigna suficientes expertos a la CPU. Comprueba con ik_llama-bench la distribución real de los tensores usando ollama-style. La expresión regular correcta para V3.2 apunta a ffn_(up|down|gate)_exps, no solo a ffn_exps.
- Generación a 1 tok/s con 192 GB de RAM
- El kernel paginará desde el GGUF mientras no haya cargado todas las páginas de uso frecuente. Un primer prompt de calentamiento de 200 tokens precarga los expertos. Si no, aumenta --threads hasta el número de núcleos físicos (no lógicos).
- Respuestas que cambian al chino sin razón
- Plantilla de chat incorrecta. Comprueba que --chat-template esté en modo auto y que el GGUF incluya la plantilla Jinja de DeepSeek. De lo contrario, especifica --chat-template deepseek3 explícitamente.
- DSA parece inactivo (caché KV lineal)
- DSA solo se activa a partir de una longitud de contexto mínima (configurable). Para contextos < 16k, el modelo utiliza la atención densa clásica: es el comportamiento esperado y no cambia en nada la calidad.
- Fallo con un prompt largo después del calentamiento
- Probablemente has saturado la swap. DeepSeek V3.2 no soporta bien la swap: si la RAM física no es suficiente, desactiva la swap (sudo swapoff -a) y deja que llama.cpp gestione la paginación mediante mmap, es más rápido y más estable.
#Para ir más allá
DeepSeek V3.2 en local es un punto de partida para explorar la categoría de «modelos de frontera que puedes alojar por tu cuenta». Tres vías complementarias:
- Optimizar la compilación de llama.cpp
- La guía "Compilar llama.cpp con CUDA" detalla los flags avanzados (Flash Attention, MMQ, offload tensors) que realmente afectan el rendimiento en MoE.
- Entender las cuantizaciones modernas
- La guía "Elegir la cuantización (Q4, Q5, Q8, FP16)" explica por qué Q2_K_XL funciona donde Q2 clásico falla y cuándo subir a Q3/Q4.
- Ir un paso más allá en tamaño
- La guía "Kimi K2 en local" aplica el mismo método a un MoE de 1T parámetros — útil para anticipar dónde irá el ecosistema en 2026-2027.
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.