Decodificación Especulativa: El Truco de Inferencia que Hace a los LLMs 3 Veces Más Rápidos Sin Sacrificar Calidad

La decodificación especulativa reduce la latencia de inferencia de LLM en 2–3x sin cambiar los pesos del modelo, la calidad de salida ni la distribución de probabilidad subyacente. Lo hace explotando una asimetría estructural que la mayoría de los pipelines de inferencia ignoran: verificar tokens es mucho más barato que generarlos desde cero.
La técnica fue formalizada en el artículo de DeepMind de 2023 y desde entonces ha sido adoptada en sistemas de producción en Google, Meta y un número creciente de frameworks de optimización de inferencia, incluyendo vLLM y TensorRT-LLM. Entender por qué funciona — y dónde falla — es esencial para cualquier equipo que ejecute LLMs a escala.
Cómo Funciona Realmente la Decodificación Especulativa
La generación autorregresiva estándar es secuencial por naturaleza: el modelo produce un token a la vez, cada uno condicionado por todos los tokens anteriores. Esto significa que un modelo de 70 mil millones de parámetros ejecutándose en una sola A100 genera aproximadamente 20–30 tokens por segundo, gastando la gran mayoría de su cómputo en ancho de banda de memoria en lugar de aritmética. La GPU está mayormente esperando que los pesos se carguen desde HBM, no procesando números.
La decodificación especulativa introduce un segundo modelo "borrador" mucho más pequeño — típicamente de 7 mil millones de parámetros o menos — que propone una secuencia de tokens candidatos (generalmente 4–8 a la vez) antes que el modelo "objetivo" más grande. Luego, el modelo objetivo evalúa todos los tokens del borrador en un solo pase hacia adelante. Debido a que la atención sobre una secuencia corta es casi tan rápida como un pase de un solo token en un modelo grande, el modelo objetivo puede verificar o rechazar cada token del borrador en paralelo.
Cuando los tokens del borrador coinciden con lo que el modelo objetivo habría generado (es decir, caen dentro de su probabilidad de aceptación), todos se aceptan y el proceso avanza múltiples posiciones a la vez. Cuando se rechaza un token del borrador, el pipeline vuelve a muestrear desde la distribución objetivo en esa posición y reinicia el borrador desde allí. La idea clave, probada rigurosamente en el artículo original, es que este esquema de muestreo por rechazo produce una distribución de salida idéntica a la que se obtendría del modelo objetivo solo — por lo que la calidad se preserva matemáticamente.
Ratas de Aceptación y Dónde Importa la Calidad del Borrador
El multiplicador de velocidad es directamente proporcional a la tasa promedio de aceptación de los tokens del borrador. Si el modelo borrador acepta el 80% de los tokens propuestos y especulas 4 hacia adelante, efectivamente procesas ~3.2 tokens por pase hacia adelante del modelo objetivo en lugar de 1. Las tasas de aceptación en el mundo real varían significativamente según la tarea:
- Salidas repetitivas o con plantillas (código estándar, datos estructurados): aceptación del 85–95%, aceleración de 3–4x común
- Chat general y seguimiento de instrucciones: aceptación del 60–80%, aceleración de 1.5–2.5x típica
- Generación creativa y cadenas de razonamiento: aceptación del 40–65%, ganancias más modestas
Esto significa que la decodificación especulativa funciona mejor cuando la tarea tiene una estructura predecible — lo que describe una gran parte de las cargas de trabajo de LLM en producción: generación de código, resumen de documentos con formato consistente y respuestas de chatbot que siguen plantillas de Prompt. Funciona menos bien en tareas creativas abiertas donde el modelo borrador se desvía sistemáticamente del objetivo.
Decodificación Especulativa Automática y Cabezas Medusa
Ejecutar un modelo borrador separado añade complejidad operativa: necesitas colocalizar dos modelos, gestionar la memoria para ambos y mantenerlos sincronizados. Han surgido varios enfoques para abordar esto.
La decodificación especulativa automática utiliza el propio modelo objetivo como generador de borradores, pero con capas de salida temprana. El modelo Llama 3.1 de 70B, por ejemplo, se puede configurar para salir en la capa 32 (en lugar de las 80 capas completas) para el borrador, luego reingresar a la pila completa para la verificación. Esto elimina la necesidad de un modelo separado pero requiere soporte arquitectónico para saltar capas.
Medusa, desarrollado en Princeton y lanzado como Open Source en 2024, adopta un enfoque diferente: añade múltiples cabezas de predicción adicionales al estado oculto final del modelo objetivo, cada una prediciendo tokens en las posiciones +1, +2, +3, etc. Estas cabezas se entrenan de forma económica mediante Fine-tuning supervisado en salidas existentes del modelo. Medusa-2, combinado con verificación basada en árboles, logra una aceleración de 2.8x en Vicuna-13B sin un modelo borrador separado y con una degradación mínima de la precisión.
SpecInfer de Carnegie Mellon extiende la idea aún más utilizando un árbol de secuencias de borrador en lugar de una sola secuencia, verificado en un único pase hacia adelante por lotes. Esto aumenta la probabilidad de aceptación porque el modelo objetivo solo necesita encontrar una ruta válida en el árbol.
Consideraciones de Producción
Desplegar la decodificación especulativa en producción requiere atención a varios factores que los benchmarks a menudo subestiman:
- Interacción del tamaño de lote: La decodificación especulativa proporciona las mayores ganancias con un tamaño de lote de 1 (casos de uso interactivos). A medida que crece el tamaño del lote, el cuello de botella del ancho de banda de memoria se reduce en relación con la aritmética, y la sobrecarga de ejecutar el modelo borrador se vuelve menos justificada. Con tamaños de lote superiores a 32–64, la generación estándar a menudo supera a la decodificación especulativa.
- Gestión de KV Cache: Tanto el modelo borrador como el modelo objetivo mantienen KV Caches. La asignación de memoria debe tener en cuenta ambos, lo que complica los frameworks de servicio que optimizan la utilización de Cache (como PagedAttention de vLLM).
- Selección del modelo borrador: El modelo borrador debe ser de la misma familia que el modelo objetivo. Usar Llama-3-8B como borrador para Llama-3-70B produce tasas de aceptación mucho más altas que usar un modelo entrenado con un conjunto de datos diferente o con tokenización diferente.
- Compensación entre latencia y throughput: La decodificación especulativa optimiza más para la latencia (tiempo para completar una sola solicitud) que para el throughput (tokens por segundo en todas las solicitudes). Los equipos que ejecutan inferencias de servicio con alto QPS necesitan evaluar qué métrica es más importante para su SLA.
Hacia Dónde se Dirige la Técnica
El despliegue de 2024 de Google de la decodificación especulativa en la infraestructura de servicio de Gemini supuestamente redujo los costos de inferencia en un 40% para cargas de trabajo sensibles a la latencia. NVIDIA integró soporte para decodificación especulativa en TensorRT-LLM 0.8 con cabezas de predicción de múltiples tokens (MTP), y el enfoque ahora es una característica de primera clase en lugar de un plugin experimental.
La próxima frontera es la decodificación especulativa en cascada: usar tres o más modelos en una jerarquía (por ejemplo, 1B → 7B → 70B), donde el modelo más pequeño genera borradores para el modelo mediano, que a su vez genera borradores para el modelo grande. Los resultados iniciales del equipo de investigación de Meta sugieren una reducción de latencia de 4–5x en tareas estructuradas con este enfoque, aunque la huella de memoria y la complejidad de orquestación aumentan en consecuencia.
También hay trabajo activo en decodificación especulativa para modelos de mezcla de expertos, donde los patrones de cómputo irregulares del enrutamiento disperso de expertos interactúan de maneras no obvias con la verificación de borradores. La arquitectura Mixtral de Mistral ha sido examinada específicamente para esto; los resultados tempranos muestran que las dinámicas de la tasa de aceptación difieren significativamente de los modelos densos.
Conclusiones Accionables
- Si tu carga de trabajo es sensible a la latencia y el tamaño de lote es bajo (1–8), la decodificación especulativa debería ser tu primera optimización a evaluar — frameworks como vLLM la soportan con una sola bandera de configuración.
- Empareja tu modelo borrador con la familia y datos de entrenamiento de tu modelo objetivo; borradores mal emparejados te darán tasas de aceptación pobres y podrían incluso ralentizar las cosas.
- Mide las tasas de aceptación en tus prompts de producción reales, no en benchmarks. La estructura de la tarea importa más que el tamaño del modelo para predecir la aceleración.
- Para equipos que no pueden ejecutar un segundo modelo, evalúa las cabezas Medusa como un término medio — añaden una sobrecarga de memoria mínima y se pueden afinar en horas en una sola GPU.
- No apliques decodificación especulativa a inferencia por lotes de alto throughput a menos que hayas verificado las dinámicas de tamaño de lote en tu punto operativo específico.