La decodificación especulativa acelera los modelos de lenguaje al combinar un modelo borrador pequeño con uno más grande que verifica los tokens propuestos en un solo pase hacia adelante. No reduce el cómputo total; de hecho, los FLOP aumentan. En cambio, aprovecha la capacidad de cómputo sobrante de la GPU que queda inactiva durante la decodificación limitada por memoria, de modo que una sola solicitud puede terminar más rápido.
La decodificación especulativa hace que los modelos de lenguaje sean más rápidos, pero no porque hagan menos trabajo. Esa es una idea errónea común, y es incorrecta. Para la misma secuencia de texto, el número total de operaciones de punto flotante, o FLOP, en realidad aumenta. Entonces, ¿qué aporta un buen modelo borrador si no es eficiencia de cómputo? Según una explicación técnica sobre el tema, la respuesta está en el tipo de trabajo que realiza la GPU.
¿Cómo funciona la decodificación especulativa?
La técnica funciona combinando dos modelos. Un modelo borrador pequeño propone una secuencia probable de tokens. Luego, un modelo más grande verifica toda esa secuencia en un solo pase hacia adelante. La decodificación tradicional, en cambio, produce un token a la vez, y cada paso requiere un recorrido completo por el modelo.
La memoria es el cuello de botella
Una GPU realiza dos grandes tipos de trabajo. Uno es el cálculo matemático en sí, como las multiplicaciones de matrices y otras operaciones con tensores. El otro es mover datos desde la memoria global a la memoria local y viceversa. Cuando el chip permanece inactivo esperando la llegada de datos, se dice que la operación está limitada por memoria. Cuando todos los datos ya están disponibles y el chip está ocupado terminando el cálculo, la operación está limitada por cómputo.
¿Por qué la memoria es el cuello de botella al decodificar modelos de lenguaje?
La decodificación de un solo token está fuertemente limitada por memoria. Por cada token que genera, el sistema debe transmitir todos los parámetros activos del modelo. La explicación usa como ejemplo Qwen3.5-27B, que tiene 27.000 millones de parámetros. La decodificación por lotes, en la que se procesan miles de tokens en un solo paso, tiende a estar limitada por cómputo.
Ese desequilibrio deja capacidad sin aprovechar. Cuando la decodificación está limitada por memoria, la GPU tiene potencia de cómputo sobrante que no está usando. Si un sistema decodifica dos secuencias en lugar de una, no tarda más tiempo por token. La decodificación especulativa pone a trabajar esa capacidad sobrante.
Amplitud frente a profundidad
La explicación ilustra la compensación con un ejemplo sencillo. Supongamos que el número óptimo de tokens para un pase hacia adelante dado es cinco. Ejecutar menos deja la GPU limitada por memoria. Ejecutar más la lleva a estar limitada por cómputo.
Un sistema podría manejar esa carga de dos maneras. Podría ejecutar cinco secuencias separadas, cada una decodificando un token a la vez. Ese enfoque distribuye el progreso entre muchas secuencias, lo que la explicación llama «amplitud». O podría usar la decodificación especulativa para ejecutar cinco tokens dentro de una sola secuencia, lo que la explicación llama «profundidad».
En ambos casos, la GPU realiza aproximadamente la misma cantidad de trabajo. En el primer caso, las cinco secuencias avanzan un poco. En el segundo, una sola secuencia avanza mucho. La diferencia es que la especulación permite que una sola solicitud termine más rápido, siempre que el sistema tenga margen disponible.
¿Cuándo acelera la decodificación especulativa los modelos de IA?
Ese margen desaparece bajo una carga pesada. Si un sistema agrega más secuencias y especula con la misma profundidad, ralentiza a todas, porque la GPU pasa a estar limitada por cómputo. El beneficio aparece con tamaños de lote pequeños, donde el tamaño del lote está muy por debajo del número óptimo de tokens.
Por qué importa el trabajo adicional
La distinción importa una vez que el sistema atiende tráfico real. Si el tamaño óptimo del lote es cinco, pero la decodificación especulativa sigue activada, la GPU podría estar gastando cómputo en trabajo que podría haberse destinado a mover memoria. El trabajo adicional también se vuelve costoso cuando la tasa de aceptación es inferior al 100 por ciento, ya que cada token rechazado es cómputo desperdiciado.
Por esa razón, la biblioteca de inferencia vLLM permite a los operadores desactivar la decodificación especulativa con un alto rendimiento. La configuración se controla mediante un parámetro llamado --speculative-disable-by-batch-size.
El análisis también plantea una pregunta de diseño. ¿Por qué especular con la misma profundidad en cada paso? Un sistema podría especular a mayor profundidad cuando tiene cómputo sobrante con tamaños de lote pequeños, y luego pasar a una especulación menos profunda o, incluso, definir la profundidad por separado para cada secuencia cuando el lote crece. La explicación describe esto como la intuición central detrás de ideas de investigación como dSpark.
Este artigo foi escrito com a assistência de IA.
News Factory APP - notícias agênticas para impulsionar seu SEO e AEO.