Hace poco vi una prueba interesante de LLM local: el mismo PC antiguo de unos 3000 yuanes, sin cambiar hardware, dio un salto notable al ejecutar un modelo MoE de 35B tras usar una versión más reciente de llama.cpp y un conjunto de parámetros mejor ajustado.
La máquina de prueba no es de gama alta:
| Hardware | Configuración |
|---|---|
| CPU | AMD Ryzen 7 3700X |
| GPU | RTX 3060 12GB |
| Memoria | 32GB DDR4 |
| Sistema | Windows 11 |
| Modelo | Qwen3.6-35B-A3B GGUF Q4_K_M |
La conclusión es directa: el mismo hardware que antes apenas podía ejecutar versiones muy cuantizadas ahora puede acercarse a un uso diario con una versión nueva de llama.cpp, cuantización Q4 y contexto de 64K.
La Clave No Es Cambiar la GPU, Sino Planificar MoE
El parámetro más importante es:
|
|
Qwen3.6-35B-A3B es un modelo MoE, Mixture of Experts. Su número total de parámetros parece enorme, pero cada paso de inferencia no activa todos los expertos. Solo se usa una parte del conjunto de expertos para cada token.
Esto abre margen para la inferencia local. No todo tiene que caber en la GPU. El parámetro --n-cpu-moe de llama.cpp permite ajustar cómo se reparten las capas expertas de MoE entre CPU y GPU, de modo que una GPU de consumo con VRAM limitada también pueda ejecutar modelos más grandes.
En una RTX 3060 12GB, --n-cpu-moe 32 es un buen punto inicial. La GPU se encarga del trabajo CUDA que maneja bien, mientras la CPU comparte parte de las capas expertas. Esta planificación mixta puede ser más rápida que cargar todo en la GPU o depender demasiado de la CPU.
¿Cuánto Mejora la Velocidad?
Una comparación típica se puede entender así:
| Elemento | Configuración anterior | Configuración nueva |
|---|---|---|
| Velocidad de generación | Unos 15 tok/s | Unos 33-36 tok/s |
| Cuantización | Q2_K_M | Q4_K_M |
| Contexto | 4K | 64K |
| Uso de VRAM | Unos 5GB | Unos 7GB |
| Experiencia | Funciona, pero con calidad inestable | Más fluida y con respuestas claramente mejores |
Lo importante no es solo duplicar la velocidad. La calidad de cuantización y la longitud de contexto mejoran al mismo tiempo.
Antes, muchos usuarios con 12GB de VRAM tenían que usar Q2 para arrancar modelos de 30B o más. El modelo podía iniciar, pero la calidad de inferencia sufría. Poder pasar a Q4 significa que el modelo local se acerca más a “sirve para trabajar” que a “solo sirve para probar”.
Una Plantilla de Arranque para Windows
Esta es una plantilla de batch para Windows. Cambia las rutas según tu máquina:
|
|
Parámetros clave:
-ngl 99: intenta descargar a GPU tantas capas elegibles como sea posible;--n-cpu-moe 32: controla la planificación de capas expertas MoE y es el ajuste principal de esta mejora;--flash-attn on: activa Flash Attention para reducir la presión del contexto largo;-c 65536: define un contexto de 64K;--cache-type-k q4_0/--cache-type-v q4_0: cuantiza la KV cache para reducir el uso de VRAM en contexto largo;-np 1: una sola concurrencia, adecuada para una máquina con 32GB de RAM;--cache-ram 0: desactiva prompt cache para controlar mejor la memoria.
Hay que tener en cuenta que b9297 es solo un punto de prueba. Al 26 de mayo de 2026, la página de releases de llama.cpp ya tiene versiones más recientes, así que en la práctica conviene probar primero un build CUDA más nuevo.
Cómo Ajustar Según la GPU
Para este tipo de modelo MoE, la idea no es “si falta VRAM, se abandona”. La idea es buscar un reparto adecuado entre CPU y GPU.
| Hardware | Sugerencia |
|---|---|
| RTX 3060 12GB / 3080 10GB | Empieza con --n-cpu-moe 32 |
| RTX 3070 8GB / 4060 8GB | Aumenta --n-cpu-moe, por ejemplo a 128 o 256 |
| RTX 3050 6GB / GTX 1650 4GB | Prueba más CPU offload, pero espera una caída clara de velocidad |
| Apple Silicon Mac | Usa el backend Metal; la memoria unificada ayuda con modelos grandes |
No trates estos valores como respuestas absolutas. El mejor valor de --n-cpu-moe depende del modelo, la cuantización, la GPU, la CPU y el ancho de banda de memoria. Es más seguro probar varios puntos:
|
|
Compara tok/s, uso de memoria, latencia del primer token y estabilidad de las respuestas antes de decidir la configuración final.
¿Bastan 32GB de RAM?
La respuesta corta: puede correr, pero no sobra mucho margen.
Con una configuración así, el working set de llama-server puede superar los 20GB. El sistema también necesita memoria para el navegador, el editor, drivers y servicios en segundo plano. Para uso local individual, 32GB merece la pena probar. Para un servicio permanente o llamadas concurrentes, 64GB será mucho más cómodo.
Recomendaciones:
- Prueba primero con una sola concurrencia;
- Cierra programas en segundo plano innecesarios;
- No mantengas demasiadas pestañas del navegador abiertas;
- Confirma que el backend CUDA se carga correctamente;
- No empieces intentando subir el contexto a 128K.
Por Qué Importa
Los LLM locales siempre han estado rodeados de ansiedad por la VRAM. Mucha gente asume que un modelo de clase 35B exige 24GB de VRAM, preferiblemente una RTX 4090.
Esta prueba apunta a otra dirección: las mejoras en arquitectura de modelos y frameworks de inferencia pueden mantener útil el hardware antiguo. MoE, cuantización de KV cache, Flash Attention, optimización de kernels CUDA y CPU/GPU mixed offload pueden influir más en la experiencia real que una simple actualización de GPU.
Por supuesto, no es magia. Ejecutar un 35B MoE en GPUs de 8GB o 12GB sigue exigiendo compromisos entre velocidad, contexto, calidad de cuantización y memoria. Pero para bases de conocimiento personales, asistentes de código, preguntas sobre documentos largos o pruebas offline, este tipo de configuración ya merece experimentación.
Mi Conclusión
Si tienes una RTX 3060 12GB, una RTX 3080 10GB o incluso una GPU de 8GB, vale la pena volver a mirar las versiones nuevas de llama.cpp.
Lo importante no es copiar un parámetro sin pensar, sino entender el patrón:
Un modelo MoE no necesita necesariamente meter todos sus expertos en la GPU. Un reparto razonable entre CPU y GPU puede importar más que la cantidad bruta de VRAM.
Los PC antiguos no están condenados a ejecutar solo modelos pequeños. Mientras los frameworks de inferencia y las técnicas de cuantización sigan mejorando, muchos modelos locales antes considerados “demasiado pesados” volverán a ser utilizables.