MTP en LM Studio: activar Multi-Token Prediction
El MTP (Multi-Token Prediction) es una de las pocas técnicas de inferencia que permite aumentar de verdad los tokens/segundo en LM Studio sin degradar la calidad. Popularizada por DeepSeek V3, esta técnica se incorpora ahora al entorno de ejecución llama.cpp utilizado por LM Studio. Esta guía explica qué es el MTP, en qué modelos funciona, cómo activarlo en LM Studio y qué mejora cabe esperar, sin prometer la luna.
#¿Por qué el MTP acelera la inferencia?
La memoria es el cuello de botella de la inferencia de un LLM: por cada token generado, hay que volver a leer todos los pesos del modelo desde la VRAM. En un modelo de 32B en Q4, se transfieren aproximadamente 19 GB en cada paso. Incluso una RTX 4090 tiene un límite de alrededor de 1 TB/s de ancho de banda, lo que limita mecánicamente el rendimiento a unas pocas decenas de tokens por segundo.
El MTP sortea esta barrera de una forma sencilla: generar varios tokens por pasada de propagación hacia delante, en lugar de uno solo. Si se pueden producir 2 o 3 tokens válidos con un solo acceso de ida y vuelta a la memoria, la tasa de generación aumenta en la misma proporción, sin necesidad de comprar una tarjeta más rápida. Esto es lo que distingue al MTP de otras «optimizaciones» que se limitan a aprovechar mejor la capacidad de cálculo (Flash Attention, prefix caching): aquí se aborda directamente la limitación dominante.
#Qué hace realmente el MTP
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
Concretamente, un modelo entrenado con MTP no tiene solo una cabeza de predicción. Tiene dos, tres o cuatro, en cascada: la primera predice el token N+1, la segunda intenta predecir el token N+2, etc. Durante el entrenamiento, estas cabezas auxiliares aprenden a anticipar los tokens siguientes a partir de los estados ocultos intermedios. Una vez entrenado, el modelo puede usar estas cabezas en inferencia para generar varios candidatos de una sola vez.
Durante la generación, coexisten dos esquemas en los runtimes actuales:
- MTP en decodificación especulativa
- Las cabezas auxiliares generan un borrador de 2 a 4 tokens y luego el modelo principal comprueba en una sola pasada hacia delante si los valida. Cada token rechazado se regenera. Esta es la implementación predeterminada en llama.cpp para DeepSeek V3.
- MTP como modelo borrador interno
- Variante en la que las cabezas secundarias sirven únicamente como un pequeño modelo de borrador, y el runtime lo trata como un modelo de borrador estándar, pero alojado en el mismo archivo GGUF. Más sencillo de servir, pero con una mejora más modesta.
#¿Qué modelos admiten realmente el MTP?
El MTP no es un ajuste que se active en cualquier modelo: el modelo debe haber sido entrenado con las cabezas MTP y los pesos correspondientes deben estar presentes en el archivo GGUF. En este momento, la lista útil para el uso local en LM Studio es breve:
- DeepSeek V3 (base y chat)
- El pionero. Arquitectura MoE de 671B con 4 cabezas MTP. Para ejecutarlo en local, se buscan variantes con una cuantización agresiva (Q2_K_XL, IQ3_XS) o versiones destiladas.
- DeepSeek V3.1 / V3.2 / V4 Flash
- Toda la línea DeepSeek ha heredado el MTP. Las versiones Flash (≈300B MoE) son las únicas que realmente caben en un Mac Studio Ultra o en un equipo multi-GPU con 80-100 GB de VRAM.
- Qwen3 MoE (selección de variantes)
- Se han publicado pesos GGUF con cabezas MTP para varias variantes de Qwen3 MoE. Revisa la ficha del modelo en Hugging Face: la presencia de un campo «mtp_layers» o de un sufijo -mtp en el nombre es un buen indicador.
- Modelos densos clásicos (Gemma 4, Mistral Small, Qwen 3.5)
- Sin MTP nativo. LM Studio no hará nada especial. Para estos modelos, el único equivalente disponible es la decodificación especulativa clásica con un modelo borrador separado.
#Requisitos previos en LM Studio
- Versión reciente de LM Studio
- Versión 0.3.10 o superior. Las versiones anteriores usan un runtime llama.cpp anterior al soporte MTP y la opción simplemente no aparece en la interfaz.
- Runtime llama.cpp actualizado
- El soporte de MTP en llama.cpp llegó a finales de 2024 y se estabilizó durante 2025. LM Studio incluye varias versiones del runtime; debes seleccionar explícitamente la más reciente en la pestaña Runtimes.
- VRAM o memoria unificada suficiente
- El MTP añade poca sobrecarga de memoria (las cabezas auxiliares son pequeñas), pero aun así hay que cargar el modelo completo. Calcula la VRAM habitual para el tamaño previsto, más un 5-10 % para la caché KV ampliada utilizada durante la verificación.
- GPU correctamente detectado
- La mejora con MTP solo aparece si la inferencia está limitada por la GPU. En modo solo CPU, el beneficio existe, pero es muy marginal y a veces negativo en los modelos pequeños.
#1. Activar la versión actual del runtime
Antes de tocar el modelo, se verifica que LM Studio use una versión de llama.cpp compatible con MTP. Es el paso que más se suele olvidar.
- 01Abrir los ajustes de RuntimesEn LM Studio, ve al icono de engranaje (Settings) y luego a la sección «Runtimes» (o «LM Runtimes», según la versión). Allí verás los runtimes instalados: CUDA, Metal, Vulkan, CPU.
- 02Instalar la última versiónHaz clic en «Check for updates» junto al runtime de tu plataforma. LM Studio descarga una versión reciente de llama.cpp integrada en la aplicación. La compatibilidad con MTP está presente en todas las compilaciones de 2025 en adelante.
- 03Comprobar la versión activaEn la misma sección, se muestra la versión actualmente utilizada (por ejemplo « llama.cpp v0.3.x — CUDA »). Asegúrate de que sea posterior a noviembre de 2024. Si existen varios runtimes, elige el más reciente como predeterminado.
#2. Cargar un modelo con cabeza MTP
Descarga un modelo compatible con MTP desde la pestaña de búsqueda integrada. Escribe «DeepSeek V3» o «Qwen3 MoE» y filtra por las compilaciones GGUF recientes que mencionen MTP. Si no encuentras ninguna, accede directamente a Hugging Face y arrastra el archivo GGUF a la carpeta de modelos de LM Studio.
Una vez que el modelo esté visible en la biblioteca, cárgalo normalmente desde la pestaña Chat o la pestaña Local Server. Antes de hacer clic en «Load», abre el panel «Advanced Configuration»: ahí aparecen las opciones MTP cuando el modelo las declara.
#3. Ajustar los parámetros MTP
Advanced Configuration suele mostrar tres parámetros relacionados con MTP. Los nombres varían según la versión de LM Studio, pero el principio sigue siendo el mismo.
- Enable MTP (o Use MTP heads)
- Interruptor principal. Activar. Cuando está desactivado, el modelo ignora sus cabezas auxiliares y se comporta como un modelo clásico.
- Tokens propuestos por MTP (n_draft)
- Número de tokens propuestos por paso. Valor típico: 3 o 4. Más allá, la tasa de aceptación baja y la ganancia desaparece. Por debajo (1-2), el costo de verificación se vuelve comparable al beneficio.
- MTP acceptance threshold
- Umbral de confianza para aceptar un token propuesto. Por defecto, suele estar alrededor de 0.7. Más alto = más seguridad, pero menos ganancia. Más bajo = más rápido, pero la calidad de la salida puede desviarse sutilmente.
#4. Medir la ganancia real en tu máquina
Activar el MTP sin medir es renunciar a la mitad del beneficio de la guía. LM Studio muestra la velocidad de generación en la parte inferior del chat (tok/s) después de cada generación. El método honesto:
- 01Preparar 3 prompts representativosUn prompt de código (muy estructurado, con una tasa de aceptación esperada alta), un prompt factual en francés y un prompt creativo libre. Guárdalos para poder volver a ejecutarlos exactamente igual.
- 02Desactivar MTP, medir la baselineLiberar el modelo de la memoria, desactivar MTP y volver a cargarlo. Ejecutar cada prompt y anotar el promedio de tok/s en 3 repeticiones. No olvidar excluir la primera ejecución (prefill no comparable).
- 03Activar MTP, medirDescargar, reactivar MTP, recargar con exactamente los mismos parámetros (contexto, temperatura, etc.). Repetir los mismos prompts.
- 04CompararCalcular la relación por prompt. Se espera un factor de 1,5-2× en código, de 1,3-1,7× en textos factuales en francés y de 1,1-1,4× en textos creativos. Por debajo de 1,2× en todos los casos, algo no va bien (runtime demasiado antiguo, cabezas MTP ausentes o GPU saturada por otra actividad).
- DeepSeek V3 destilado 32B Q4, RTX 4090
- Base ~25 tok/s, con MTP activado ~42 tok/s en un prompt de código Python. En prosa francesa, ~30 tok/s.
- DeepSeek V4 Flash en Mac Studio M2 Ultra 192 GB
- Baseline ~14 tok/s, MTP activado ~24 tok/s en código. En texto libre, ~18 tok/s. La mejora es clara incluso en Apple Silicon.
- Qwen3 MoE 30B-A3B Q4, RTX 4070 Ti
- Velocidad de referencia: ~38 tok/s; con MTP activado: ~55 tok/s al generar JSON. En texto creativo, la mejora se limita a alcanzar ~46 tok/s.
#Ajustes avanzados y combinaciones
El MTP se combina bien con otras optimizaciones disponibles en LM Studio. Algunas combinaciones que funcionan:
- MTP + Flash Attention
- Activar al mismo tiempo. Flash Attention reduce el consumo de memoria de la caché KV durante la verificación de los borradores, lo que ayuda cuando n_draft es alto.
- MTP + Q4_K_M (vs Q8)
- El MTP conserva la calidad incluso con una cuantización Q4 agresiva. No hay razón para subir a Q8 «para compensar»: mantén Q4_K_M y ahorra VRAM.
- MTP + contexto amplio
- El KV-cache ocupa más memoria con MTP (la verificación almacena más estados intermedios). En un modelo de 32B con un contexto de 32k, calcula entre 1 y 2 GB adicionales de VRAM.
- MTP + batch (Local Server)
- Si atiendes varias solicitudes simultáneas a través del servidor compatible con OpenAI de LM Studio, la mejora de rendimiento de MTP se suma a la del procesamiento por lotes. Es ahí donde se observan las mayores diferencias.
#Solución de problemas
- La opción MTP no aparece
- O bien el entorno de ejecución es demasiado antiguo (revisa la versión en Settings → Runtimes), o bien el modelo GGUF no incluye las cabezas MTP. Descarga una variante explícitamente marcada como MTP.
- MTP activado, pero sin ganancia medida
- Comprueba que se esté usando la GPU (gpu_layers = -1 o igual al número total de capas). Si solo usas la CPU, el MTP a veces cuesta más de lo que aporta. Comprueba también que ningún otro proceso sature la VRAM.
- Salida que se desvía o repeticiones extrañas
- Acceptance threshold demasiado bajo. Súbelo a 0,75-0,8. Si el problema persiste, desactiva MTP: existen casos patológicos con prompts muy atípicos.
- LM Studio falla durante la carga
- Un GGUF mal convertido con cabezas MTP corruptas puede provocar un fallo del entorno de ejecución. Prueba otra cuantización del mismo modelo o un archivo publicado por otro autor en Hugging Face.
- Mejora visible en el chat, pero no a través de la API
- Verifica que Local Server use la misma configuración que el chat: existe una página de ajustes separada para el servidor, donde MTP debe volver a activarse de forma independiente.
#Para ir más allá
El MTP es uno de los mecanismos para mejorar el rendimiento que realmente funcionan en local. Algunas ideas complementarias para ir más allá:
- Primeros pasos con LM Studio
- Si llegas aquí sin haber instalado LM Studio, el tutorial de inicio cubre los fundamentos antes de abordar los ajustes avanzados.
- Convertir LM Studio en servidor API
- Para exponer un endpoint compatible con OpenAI y beneficiarte del MTP en todos tus clientes (Continue.dev, Aider, scripts Python).
- Plugins de LM Studio: cuáles instalar y cómo
- Más allá del MTP, el ecosistema de plugins y el SDK lmstudio-js/python abren otras posibilidades.
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.