Esta publicación es la tercera de una serie sobre codiseño de modelos de IA. Explora cómo acelerar la inferencia de modelos de lenguaje manteniendo la precisión mediante decodificación especulativa y ofrece cinco pautas para seleccionar el largo del borrador y el mecanismo de borrador a lo largo de la frontera de Pareto.

Para una discusión sobre cómo las decisiones de diseño del modelo impactan tanto el rendimiento como la interactividad sin sacrificar precisión, ver AI Model Co-Design: Hardware-Friendly LLM Design (Parte 1). Para una explicación de cómo el tamaño de grupo (cabezales de consulta por cabezal KV), la dimensión del cabezal y el largo de secuencia moldean el desempeño de la atención densa, ver Co-Designing AI Model Attention for Fast, Interactive Long-Context Inference (Parte 2).

¿Qué es la decodificación especulativa?

La decodificación especulativa es una técnica para acelerar la fase autorregresiva de decodificación de la inferencia de modelos de lenguaje, prediciendo múltiples tokens por iteración. Un modelo de borrador pequeño predice primero varios tokens probables como siguientes. Esos tokens luego se verifican en paralelo con una sola pasada por el modelo objetivo, más grande.

Figura 1. La decodificación especulativa mueve la decodificación hacia una región más limitada por cómputo, desplazando la frontera de Pareto entre rendimiento e interactividad hacia arriba y a la derecha
Figura 1. La decodificación especulativa mueve la decodificación hacia una región más limitada por cómputo, desplazando la frontera de Pareto entre rendimiento e interactividad hacia arriba y a la derecha

Este enfoque reduce el número total de iteraciones de decodificación mientras aumenta la intensidad aritmética del modelo objetivo, sin requerir mayor concurrencia. El modelo objetivo acepta los tokens propuestos en secuencia hasta que encuentra el primer desajuste. El siguiente ciclo de predicción se reanuda desde esa posición. Como solo se conservan los tokens aceptados por el modelo objetivo, la decodificación especulativa produce la misma secuencia de salida que la decodificación estándar, a menos que los criterios de aceptación se relajen deliberadamente.

El largo del borrador (D) es el número de tokens propuestos por iteración del objetivo. El largo de aceptación (AL) es el número de tokens producidos, es decir aceptados, por iteración del objetivo. AL va de 1 a 1 + D, porque el objetivo siempre puede producir un token nuevo de referencia además de los tokens de borrador aceptados.

La aceleración de la decodificación especulativa puede cuantificarse como la razón entre el tiempo que le toma al modelo objetivo generar secuencialmente AL tokens y el tiempo de verificar D tokens en paralelo, considerando además la latencia extra de generar el borrador de D tokens:

Código
speedup = (T_verif(B) x AL) / (T_verif(B x (1 + D)) + T_draft(B, D))

donde B es el tamaño del lote, T_verif(x) es el tiempo de verificación del objetivo para x tokens, y T_draft(b, y) es el tiempo necesario para generar un borrador de largo y con tamaño de lote b. Resulta evidente que para maximizar la aceleración hay que encontrar la tripleta óptima de D, AL y T_draft.

Figura 2. El flujo de borrador y verificación de la decodificación especulativa. Un modelo de borrador más pequeño propone D tokens y el modelo objetivo los verifica juntos en una sola pasada
Figura 2. El flujo de borrador y verificación de la decodificación especulativa. Un modelo de borrador más pequeño propone D tokens y el modelo objetivo los verifica juntos en una sola pasada

¿Cómo se elige el largo óptimo del borrador?

Por simplicidad, si ignoramos la latencia del modelo de borrador, la especulación entrega aceleración cuando:

Código
T_verif(B x (1 + D)) / T_verif(B) < AL

Durante la verificación, el cómputo escala con 1 + D, pero el acceso a memoria permanece sin cambios. Por lo tanto, la meta es aumentar D hasta que T_verif se mantenga constante, típicamente hasta el punto en que la verificación pasa de estar limitada por memoria a estar limitada por cómputo. Ese valor óptimo de D depende de B y se espera que varíe a lo largo de la frontera de Pareto.

El largo del borrador y las capas lineales

Con especulación, el M de cada multiplicación matricial de las capas lineales del objetivo crece de M a M x (1 + D). Las mediciones muestran cómo escalan los teraflops por segundo según el lote para un tamaño representativo de multiplicación de experto de 6.144 x 6.144 con distintos largos de borrador. Los largos de borrador mayores permiten a esas operaciones alcanzar su desempeño máximo con tamaños de lote efectivos menores.

Notablemente, con D=7 se necesita un octavo del tamaño de lote para quedar limitado por cómputo, en comparación con D=0. A medida que los modelos de mezcla de expertos se vuelven más dispersos y las cargas de contexto largo aumentan la presión sobre la capacidad de la caché KV, la concurrencia efectiva por experto disminuye, lo que hace atractivos los borradores más largos a lo largo de la frontera de Pareto.

Figura 3. Teraflops por segundo normalizados contra D=0 y lote 1, versus tamaño de lote, con distintos largos de borrador para una multiplicación de experto representativa de 6.144 por 6.144
Figura 3. Teraflops por segundo normalizados contra D=0 y lote 1, versus tamaño de lote, con distintos largos de borrador para una multiplicación de experto representativa de 6.144 por 6.144

Pauta 1: aumentar el largo del borrador de la decodificación especulativa para empujar las multiplicaciones matriciales hacia la región limitada por cómputo, sin aumentar la presión sobre la capacidad de la caché KV.

El largo del borrador y el desempeño de la atención

Para cargas de razonamiento y agénticas, la atención tiende a dominar el tiempo de ejecución en la región orientada a rendimiento. La atención en decodificación tiene una intensidad aritmética de alrededor de 2 x G, donde G es el número de cabezales de consulta que comparten un cabezal KV.

La especulación la eleva a 2 x G x (1 + D), porque los tokens especulados reutilizan la misma caché KV. El M efectivo de la atención es G x (1 + D). En los dispositivos GPU actuales, los núcleos de atención logran buena utilización de hardware con M = 128, lo que convierte a D = 128/G - 1 en el largo de borrador óptimo.

Al comparar el rendimiento normalizado de atención para G = 8 y G = 32 en largos de secuencia KV de 32K y 128K, la variante con G = 32 alcanza la saturación de rendimiento con un valor menor de D. Más allá del punto de saturación, la atención ya no está limitada por el ancho de banda de memoria y su tiempo de ejecución escala con D. Como AL crece de manera sublineal con D, aumentar D más allá de ese punto probablemente ralentice una carga dominada por atención.

Figura 4. Teraflops por segundo de atención normalizados contra D=0, versus D, para G=8 y G=32. Un G mayor alcanza alta utilización con un largo de borrador más pequeño
Figura 4. Teraflops por segundo de atención normalizados contra D=0, versus D, para G=8 y G=32. Un G mayor alcanza alta utilización con un largo de borrador más pequeño

Pauta 2: cuando la atención domina el tiempo de decodificación, elegir D = 128/G - 1.

El tiempo de ejecución de la atención también depende del tamaño de tesela. Las mediciones muestran que ese tiempo aumenta en escalones a medida que G x (1 + D) cruza un múltiplo de 128, el tamaño de tesela del núcleo de atención evaluado. Si G x (1 + D) cae entre dos límites de tesela, la última queda solo parcialmente utilizada pero cuesta aproximadamente lo mismo que una completa.

Figura 5. Tiempo de ejecución de atención normalizado contra D=0, versus D, para G=8 y G=32. El tiempo aumenta en escalones a medida que G por (1 + D) cruza un múltiplo de 128
Figura 5. Tiempo de ejecución de atención normalizado contra D=0, versus D, para G=8 y G=32. El tiempo aumenta en escalones a medida que G por (1 + D) cruza un múltiplo de 128

Pauta 3: si eliges D mayor que 128/G - 1, prefiere valores donde G x (1 + D) sea múltiplo de 128, para evitar subutilización de teselas.

El peso relativo de la Pauta 1 frente a las Pautas 2 y 3 depende del porcentaje de tiempo de ejecución que se gasta en las redes de avance en comparación con la atención, en el punto de operación preferido. La comunicación también agrega costo de verificación a medida que D crece, aunque el solapamiento entre cómputo y comunicación puede mitigar esa sobrecarga.

El extremo derecho de la curva de Pareto

Al movernos hacia el extremo derecho de la curva de Pareto, B se vuelve muy pequeño. Ahí dominan los costos fijos de preparación y posprocesamiento de los núcleos, tanto de cómputo como de comunicación. Esos costos fijos no crecen de manera significativa con el número de tokens verificados, lo que mantiene la sobrecarga de verificación prácticamente invariante respecto del número de tokens de borrador.

Si bien los modelos de mezcla de expertos sí activan más expertos al aumentar el largo del borrador, una combinación de estrategias de particionamiento del modelo y núcleos eficientes, como las multiplicaciones matriciales agrupadas, puede mantener baja esa sobrecarga. Los borradores más largos pueden, por lo tanto, ayudar en la región de baja latencia, siempre que la aceptación se mantenga alta.

Con latencia muy baja, el número de lanzamientos secuenciales de núcleos determina la latencia de la carga. Como esos lanzamientos escalan linealmente con la cantidad de capas, para un modelo de borrador autorregresivo con una estructura de capas similar a la del objetivo, la aceleración puede aproximarse así:

Código
speedup = (L_objetivo x AL) / (L_objetivo + D x L_borrador)

Definiendo una razón constante de profundidad del borrador, rho = L_borrador / L_objetivo, queda speedup = AL / (1 + rho x D) y la sobrecarga del borrador es rho x D. En otras palabras, aumentar D ayuda solo mientras la ganancia en AL sea lo bastante grande como para compensar esa sobrecarga.

Pauta 4: con latencia muy baja, aumentar D solo mientras la ganancia en AL justifique el costo adicional del borrador.

¿Con qué mecanismo se generan esos tokens?

Elegir D dice cuántos tokens especular. Después hay que decidir cómo generarlos para maximizar la aceleración.

Se han propuesto múltiples técnicas a lo largo de los años, con distintos costos de entrenamiento, de parámetros y de ejecución. El borrador externo propone usar un modelo de lenguaje pequeño e independiente, mientras que MTP, EAGLE-3, DFlash y DSpark usan capas auxiliares combinadas con información del modelo objetivo para predecir tokens. Los métodos de sufijo y de n-gramas prescinden del modelo y en cambio reutilizan patrones ya vistos en el flujo de tokens.

Para cuantificar el equilibrio entre AL y la sobrecarga del borrador, conviene empezar observando cómo escala AL con D en SPEED-Bench, con Qwen 3.5 122B A10B como objetivo. SPEED-Bench es un benchmark de decodificación especulativa desarrollado por NVIDIA con el propósito de representar cargas de producción realistas. Cubre múltiples dominios de tareas, como programación y resumen, y tiene una variedad de particiones con distintos largos de secuencia de entrada.

En la partición de 32K, Qwen 3.5 35B A3B alcanza un AL de 6 con D = 9, mientras que el borrador de 4B llega a un AL superior a 5. Los valores de AL de MTP y DFlash se aplanan a medida que D crece. El método de n-gramas tiene menor aceptación en esta carga y se adapta mejor a cargas con patrones de tokens repetidos.

Figura 6. AL versus D para distintos mecanismos de borrador en SPEED-Bench, partición de rendimiento de 32K, con Qwen 3.5 122B A10B como objetivo
Figura 6. AL versus D para distintos mecanismos de borrador en SPEED-Bench, partición de rendimiento de 32K, con Qwen 3.5 122B A10B como objetivo

Un AL más alto no equivale a mayor aceleración. También hay que considerar cuánto cuesta generar el borrador.