La decodificación especulativa no acelera el procesamiento de modelos de lenguaje grandes (LLM) reduciendo la cantidad de operaciones de punto flotante (FLOPs) por token, sino al modificar el tipo de trabajo que realiza la GPU. Un error común es atribuir su velocidad a una menor carga computacional, lo cual es incorrecto; de hecho, el número total de FLOPs aumenta al ejecutar una secuencia completa. La clave reside en la gestión de la memoria: cuando la GPU espera a cargar datos desde la memoria global, el proceso es limitado por la memoria (memory bound), desperdiciando capacidad de cálculo. En decodificación tradicional, el sistema es limitado por la memoria, pero la decodificación especulativa permite aprovechar el cálculo adicional disponible en lotes pequeños. Al generar un borrador con un modelo pequeño y verificarlo en paralelo con el modelo principal, se aumenta la profundidad de procesamiento por secuencia. Esto transforma el cuello de botella de la memoria a uno de cálculo, permitiendo completar más tokens por unidad de tiempo. Esta optimización es crucial para el alto rendimiento en entornos de producción, donde los lotes óptimos son pequeños. Herramientas como vLLM permiten desactivar esta técnica si el rendimiento no es suficiente, ya que cada token rechazado representa trabajo adicional desperdiciado. La investigación actual explora estrategias dinámicas para ajustar la profundidad de especulación según el tamaño del lote, maximizando el uso de la capacidad de cómputo disponible.
