Guías de IA · 12 min de lectura

¿Qué es speculative decoding? Cómo los LLM proponen y verifican tokens más rápido

Descubre cómo speculative decoding acelera la generación de los LLM al proponer y verificar tokens en paralelo, cuándo ayuda y cuáles son sus límites.

Ilustración de una pequeña secuencia de fichas de tokens propuestos que se comprueban en paralelo con un verificador luminoso más grande que conserva las fichas coincidentes

speculative decoding es una técnica de inferencia de LLM que acelera la generación de tokens sin cambiar la calidad del resultado. Un modelo de borrador más pequeño y rápido propone varios tokens candidatos por adelantado, y el modelo objetivo, más grande, los comprueba todos en una sola pasada en paralelo: conserva las predicciones válidas y vuelve a muestrear desde la primera discrepancia para preservar su distribución de salida exacta.

Los modelos de lenguaje grandes suelen generar respuestas de un token en un token. Cada nuevo paso de salida requiere leer los pesos del modelo de la memoria, lo que deja infrautilizada la capacidad de cómputo del acelerador mientras espera al ancho de banda de la memoria. speculative decoding rompe ese cuello de botella de un token por paso al convertir las comprobaciones secuenciales en verificación paralela.

¿Por qué es lenta la decodificación autorregresiva estándar?

La decodificación autorregresiva estándar es lenta porque generar cada token requiere una pasada independiente por el modelo completo, por lo que el proceso está limitado por el ancho de banda de la memoria y no por la capacidad de cómputo.

Cuando un modelo de lenguaje escribe una respuesta, cada token depende de todos los anteriores. En la decodificación estándar, un modelo de 70 mil millones de parámetros debe cargar sus pesos desde la memoria de alto ancho de banda para producir el primer token, volver a cargar esos mismos pesos para producir el segundo y repetir ese ciclo cientos de veces.

Sin embargo, muchos tokens de una respuesta son fáciles de predecir. Las palabras funcionales, los corchetes de cierre en el código, las frases comunes y la sintaxis repetitiva no requieren toda la profundidad de razonamiento de un modelo enorme para predecirse con precisión, aunque siga siendo deseable que el modelo grande emita el juicio final sobre toda la respuesta. Como las GPU y TPU pueden procesar un bloque corto de tokens en paralelo casi en el mismo tiempo real que tardan en procesar un solo token, durante la decodificación de un token queda capacidad de cómputo sin utilizar. speculative decoding aprovecha esa capacidad paralela disponible.

¿Cómo funciona speculative decoding paso a paso?

speculative decoding ejecuta un ciclo de cuatro pasos —proponer tokens candidatos, verificarlos en paralelo con el modelo objetivo, aceptar los tokens coincidentes y volver a muestrear en el primer rechazo— hasta completar la respuesta.

En lugar de pedir al modelo objetivo grande que genere cada token secuencialmente, el motor de inferencia lo empareja con una aproximación mucho más pequeña y rápida (a menudo llamada modelo de borrador). Cada ciclo pasa por cuatro fases distintas:

  1. Propuesta de tokens candidatos: A partir de la secuencia actual, el modelo de borrador pequeño genera rápidamente, uno por uno, una ventana corta de anticipación de $K$ tokens candidatos y registra su distribución de probabilidad para cada posición.
  2. Verificación paralela: El modelo objetivo grande toma la secuencia original junto con los $K$ tokens propuestos y realiza una sola pasada. Como las arquitecturas transformer pueden evaluar secuencias conocidas de tokens en paralelo —igual que durante el procesamiento del prompt—, el modelo objetivo calcula simultáneamente sus propias distribuciones de probabilidad para cada posición propuesta.
  3. Aceptación o rechazo de los tokens propuestos: De izquierda a derecha por los $K$ tokens propuestos, el motor compara en cada paso la probabilidad del modelo de borrador con la del modelo objetivo mediante una regla formal de muestreo por rechazo (a menudo llamada speculative sampling). En la decodificación voraz (temperatura cero), se acepta un token propuesto siempre que coincida con la primera opción del modelo objetivo. En los modos de muestreo, los tokens a los que el modelo objetivo asigna al menos tanta probabilidad como el modelo de borrador siempre se aceptan, mientras que los tokens de menor probabilidad se aceptan proporcionalmente a la relación entre las probabilidades del objetivo y del borrador.
  4. Nuevo muestreo y generación de un token adicional: Si la primera discrepancia ocurre en la posición $m$, se descartan ese token y todos los tokens propuestos posteriores, y se muestrea directamente un token de reemplazo para la posición $m$ a partir de una distribución residual ajustada que tiene en cuenta las probabilidades de ambos modelos. Si se aceptan los $K$ tokens propuestos, el modelo objetivo ya dispone de la distribución de probabilidad para la posición $K + 1$ de la misma pasada paralela, lo que le permite muestrear gratis un token adicional.

Como las reglas de rechazo y nuevo muestreo cancelan matemáticamente los errores del modelo de borrador, speculative decoding no tiene pérdida. Cada paso de varios tokens produce muestras extraídas de exactamente la misma distribución de probabilidad que al ejecutar solo el modelo objetivo, sin degradación de la precisión en benchmarks, la capacidad de razonamiento ni el tono.

¿Cuánto más rápido es speculative decoding en la práctica?

Las investigaciones fundacionales muestran que speculative decoding consigue aceleraciones de aproximadamente 2X a 3X en tiempo real en modelos de lenguaje grandes cuando se combina con un modelo de borrador adecuado y suficiente cómputo paralelo.

Los artículos fundacionales que introdujeron la técnica a finales de 2022 y principios de 2023 demostraron mejoras sustanciales de latencia tanto en transformers codificador-decodificador como en los de solo decodificador, sin alterar los pesos de los modelos ni las distribuciones de salida:

Estudio Modelo objetivo Configuración del borrador Aceleración en tiempo real comunicada Condiciones y tareas
Leviathan et al. (2023) T5-XXL (11B parámetros) T5-small (77M parámetros) 2X–3X (hasta 2.6X–3.4X en las tablas de configuración de T5-small) Implementación de T5X sin modificaciones para traducción (EN-DE) y resumen (CNN/DM), con argmax (temp 0) y muestreo estándar (temp 1).
Chen et al. (2023) Chinchilla (70B parámetros) Modelo de borrador de 4B parámetros entrenado para speculative sampling 2X–2.5X Configuración distribuida en TPU v4 para resumen (XSum) y generación de código (HumanEval).

Observa la diferencia de tamaño entre los modelos objetivo y de borrador en ambos estudios: T5-small es aproximadamente dos órdenes de magnitud más pequeño que T5-XXL, y el modelo de borrador de 4B es una pequeña fracción del modelo Chinchilla de 70B. Un modelo de borrador debe ser lo bastante pequeño para que ejecutar $K$ pasos secuenciales en él añada muy poca sobrecarga en comparación con un solo paso del modelo objetivo.

¿Qué determina la tasa de aceptación y por qué no está garantizada la aceleración?

La aceleración de speculative decoding depende de dos factores principales —el grado de coincidencia del modelo de borrador con el modelo objetivo (la tasa de aceptación) y la capacidad de cómputo paralela disponible en el hardware—, por lo que una aceleración neta nunca está garantizada.

Si el modelo de borrador se equivoca constantemente, el sistema paga el coste de latencia de ejecutar $K$ pasos secuenciales en él para que el modelo objetivo rechace el primer token. En el peor de los casos, un ciclo especulativo produce un solo token remuestreado y tarda más que un paso estándar del modelo objetivo.

Diversas variables prácticas determinan si speculative decoding acelera o ralentiza la inferencia:

  • Alineación entre los modelos de borrador y objetivo: El modelo de borrador debe compartir exactamente el mismo tokenizador y vocabulario que el modelo objetivo, y su distribución de entrenamiento debe ser muy similar. El autocompletado de código, la salida JSON estructurada y la traducción de frases predecibles suelen producir tasas de aceptación más altas que la escritura creativa a alta temperatura, donde muchos tokens muy distintos son igualmente plausibles.
  • Sobrecarga de latencia del modelo de borrador: Incluso una tasa de aceptación alta no acelerará la generación si el propio modelo de borrador es demasiado grande y lento. Leviathan et al. demostraron que un modelo de borrador T5-small más pequeño superó a los candidatos T5-base y T5-large, de mayor tamaño, en aceleración total en tiempo real porque la sobrecarga de propuesta por paso era mucho menor.
  • Longitud de la ventana de anticipación ($K$): Una ventana demasiado corta limita el número de tokens que pueden verificarse en una sola pasada. Una ventana demasiado larga desperdicia tiempo de propuesta en tokens posteriores que se descartan cuando se rechaza uno anterior.
  • Cómputo paralelo disponible (saturación del tamaño de lote): speculative decoding intercambia cómputo inactivo por una menor latencia. Al servir lotes pequeños con sensibilidad a la latencia, los aceleradores tienen mucha capacidad libre para verificar $K$ tokens en paralelo casi sin coste adicional de tiempo. Con tamaños de lote concurrentes enormes, cuando las unidades de cómputo de la GPU ya están completamente saturadas, añadir $K$ posiciones de verificación adicionales por solicitud aumenta el tiempo de la pasada y puede eliminar la aceleración.

¿Cómo se relaciona speculative decoding con KV cache y la caché de prompts?

speculative decoding solo acelera la fase de decodificación de la salida, mientras que el almacenamiento en KV cache evita recalcular la atención entre tokens y la caché de prompts acelera y abarata el prefill de entradas repetidas.

Como estas tres optimizaciones afectan a la latencia de inferencia de los transformers, los desarrolladores suelen confundir dónde se sitúa cada una en el ciclo de vida de la solicitud:

  • Prefill frente a decodificación: Cada solicitud a un LLM se divide en dos etapas. El prefill procesa todos los tokens del prompt de entrada en paralelo para construir el estado inicial; ya está limitado por cómputo y es rápido por token. La decodificación genera los tokens de salida paso a paso y está limitada por el ancho de banda de la memoria. speculative decoding solo ayuda durante la decodificación; no acelera la lectura de un prompt de entrada largo.
  • Función de KV cache: Tanto el modelo objetivo como el de borrador utilizan sus propias KV cache durante speculative decoding. A medida que se proponen y verifican tokens candidatos, sus estados Key y Value se añaden a la caché. Cuando el modelo objetivo rechaza tokens propuestos después de la posición $m$, el motor de inferencia simplemente revierte (trunca) las KV cache de ambos modelos para descartar las entradas rechazadas antes de iniciar el siguiente ciclo.
  • Diferencia con la caché de prompts: La caché de prompts reutiliza bloques de KV cache precalculados para prefijos de prompt idénticos en llamadas API distintas, lo que reduce el tiempo hasta el primer token (TTFT) y a menudo el precio de los tokens de entrada. speculative decoding reduce la latencia entre tokens (ITL) mientras se transmite la respuesta.

¿Qué significa speculative decoding para desarrolladores de API y quienes alojan modelos?

Para los desarrolladores de API, speculative decoding se traduce en una menor latencia de transmisión de extremo a extremo, no en una partida de facturación separada; quienes alojan sus propios modelos lo configuran directamente en los motores de inferencia para mejorar la capacidad de respuesta por solicitud.

La forma de interactuar con speculative decoding depende de si se llaman endpoints de modelos alojados o se administra una flota propia de GPU:

  1. La facturación por token de las API alojadas rara vez cambia: Los proveedores de IA alojada suelen cobrar por millón de tokens de entrada y salida procesados desde la perspectiva del usuario. Aunque un proveedor use speculative decoding internamente, los tokens de borrador rechazados son internos al motor de servicio: se cobran los tokens de salida finales generados a la tarifa estándar del modelo. Para reducir la factura directa de API y no solo el tiempo de espera, considera la ingeniería de prompts, las API por lotes y las formas prácticas de reducir los costes de API de IA, o compara tarifas al decidir cómo elegir un modelo de IA.
  2. Beneficios para la experiencia en tiempo real: Para quienes crean aplicaciones, speculative decoding destaca por la experiencia de usuario. Los agentes de voz, los asistentes de código de IDE y los flujos de producción interactivos —desde copilotos de programación en directo hasta canalizaciones de scripts combinadas con herramientas creativas como AI Studio Video— responden de forma notablemente más ágil cuando los tokens de salida llegan al doble de velocidad sin cambiar a un modelo menos capaz.
  3. Configuración de alojamiento propio: Si ejecutas modelos de pesos abiertos en tu propia infraestructura, configuras speculative decoding directamente en tu pila de servicio. Debes cargar tanto el modelo objetivo como el de borrador en la memoria de la GPU (o usar una variante sin borrador), asegurarte de que ambos compartan exactamente el mismo tokenizador y ajustar la longitud de anticipación según tu nivel habitual de concurrencia.

¿Siempre se necesita un modelo de borrador independiente?

Las variantes posteriores de speculative decoding eliminan la necesidad de entrenar y desplegar un modelo de borrador pequeño independiente, manteniendo el mismo principio de propuesta y verificación.

Gestionar dos modelos independientes en memoria y encontrar un modelo pequeño con exactamente el mismo tokenizador y comportamiento alineado con el modelo objetivo puede resultar complicado en la práctica. Para resolverlo, los investigadores de inferencia y los frameworks de servicio han introducido varios enfoques sin modelo de borrador:

  • Propuesta mediante n-gramas y búsqueda en el prompt: En lugar de ejecutar una red neuronal para proponer tokens, el motor busca fragmentos de texto coincidentes en el prompt de entrada y la salida generada recientemente y copia los tokens siguientes como candidatos. Funciona especialmente bien al resumir documentos, editar código o extraer citas que ya aparecen en la ventana de contexto.
  • Cabezas de predicción de varios tokens y capas auxiliares: En lugar de mantener un modelo independiente completo, se puede conectar directamente a los estados ocultos del modelo objetivo un pequeño conjunto de cabezas de predicción ligeras o capas de borrador para proponer los siguientes tokens en una sola pasada.
  • Self-speculative decoding: Algunas configuraciones utilizan un subconjunto de las propias capas del modelo objetivo (omitiendo capas intermedias durante la propuesta) para generar tokens candidatos y después ejecutan todas las capas para verificarlos.

Independientemente de cómo se propongan los tokens candidatos, la garantía principal sigue siendo la misma: el modelo objetivo completo verifica los candidatos en paralelo e impone su distribución de probabilidad exacta a cada token aceptado.

Preguntas frecuentes

¿Cambia speculative decoding la precisión del modelo o la calidad de la salida?

No. speculative decoding estándar (speculative sampling) no tiene pérdida matemáticamente. En la decodificación voraz, solo acepta tokens que coinciden exactamente con la primera predicción del modelo objetivo. En el muestreo con temperatura, sus reglas de rechazo y nuevo muestreo residual garantizan que las secuencias generadas sigan exactamente la misma distribución de probabilidad que la decodificación autorregresiva estándar del modelo objetivo.

¿Reduce speculative decoding el tiempo hasta el primer token (TTFT)?

No. El tiempo hasta el primer token mide cuánto tarda el modelo en leer el prompt de entrada durante la etapa de prefill y emitir el primer token de salida. Como el prefill ya procesa los tokens del prompt en paralelo, speculative decoding solo acelera los pasos posteriores de decodificación, lo que reduce la latencia entre tokens y el tiempo total de finalización del resto de la respuesta.

¿Por qué puede ser más lento speculative decoding con tamaños de lote grandes?

speculative decoding depende de la capacidad de cómputo paralela libre de la GPU o TPU para comprobar varios tokens de borrador aproximadamente en el mismo tiempo que se tarda en comprobar uno. Cuando un servidor gestiona un lote muy grande de solicitudes concurrentes, la capacidad de cómputo del acelerador ya está totalmente utilizada, por lo que verificar tokens de borrador adicionales por solicitud añade tiempo real de ejecución y puede superar el ahorro en lecturas de memoria.

¿Puede cualquier modelo pequeño actuar como modelo de borrador para cualquier modelo grande?

No directamente en speculative decoding estándar a nivel de token. El modelo de borrador y el modelo objetivo deben compartir un vocabulario y un tokenizador compatibles para que los ID de los tokens candidatos y sus distribuciones de probabilidad se correspondan correctamente entre ambos modelos. Por eso los emparejamientos suelen proceder de la misma familia de modelos, como T5-small proponiendo para T5-XXL.

Fuentes

Escrito por

Chunyu Cai

Chunyu Cai es el director ejecutivo de Lotook, LLC y un emprendedor que escribe sobre modelos de IA, agentes y cómo cambian el trabajo cotidiano. Chunyu Cai tiene un título de máster de Imperial College London.