¿Confías de verdad en el decoding especulativo para cargas de trabajo en producción? Sí, pero solo si te gusta ver cómo tus tokens por segundo se desploman en el instante en que el modelo se mete en una cadena de razonamiento matizada.

La promesa del decoding especulativo siempre ha sido la misma: usar un modelo pequeño y rápido para adivinar los siguientes tokens y dejar que el modelo grande los verifique en un solo forward pass. En el vacío, suena como un truco para multiplicar el throughput. En la práctica, el modelo draft acaba perdiendo el hilo. Deriva. Empieza a adivinar tokens que al modelo principal no le gustan, lo que desencadena una cascada de rechazos que puede hacer que el sistema vaya más lento que si simplemente hubieras usado sampling autoregresivo estándar. Es como un batería que va acelerando el tempo hasta que el resto de la banda deja de tocar. Terminas gastando más compute en la fase de «corrección» de lo que ahorraste en la de «adivinanza».

El lanzamiento de EAGLE 3.1, un esfuerzo conjunto del equipo de EAGLE, TorchSpec y vLLM, tiene como objetivo acabar con esta inestabilidad. El problema central es que el decoding especulativo tradicional no tiene en cuenta el cambio en los patrones de atención a medida que crece la secuencia. Según el informe de MarkTechPost, el nuevo algoritmo aborda específicamente esta deriva de atención para mantener el modelo draft alineado con el modelo objetivo durante tramos más largos.

Para los que estamos corriendo Llama 3.3 o Qwen 2.5, aquí es donde la realidad se pone a prueba. No nos importan los speedups teóricos en un cluster de H100; nos importa si nuestra instancia local de vLLM puede realmente empujar 80+ tokens por segundo sin ahogarse. Si estás corriendo un modelo de 70B, la diferencia entre un speedup de 1.2x y 2.5x es la diferencia entre un producto usable y un adorno de escritorio caro. (Y seamos honestos, la mayoría de los «speedups» en estos papers se basan en los prompts más optimistas posibles).

La verdadera victoria aquí no es solo la velocidad bruta, sino la consistencia. El decoding especulativo suele sentirse como una lotería: a veces vuela, a veces va lento. Al corregir la deriva, EAGLE 3.1 convierte esa lotería en un pipeline predecible. Hace que el throughput sea lineal en lugar de errático. Si esto aguanta en el mundo real, la jerarquía de los open-weights podría cambiar ligeramente, ya que los modelos más fáciles de «draftear» se sentirán de repente mucho más rápidos que rivales ligeramente más grandes que carecen de un compañero draft estable.

La pregunta para el home lab siempre es: «¿Puedo correr esto en mi máquina?». Para usar EAGLE 3.1, necesitas alojar tanto el modelo objetivo como el modelo draft. Esto introduce un impuesto de VRAM. Si te quedas corto de memoria, digamos, exprimiendo un Llama 3.1 70B cuantizado en una A6000 de 48GB o un Mac M3 Ultra, añadir un modelo draft podría empujarte al otro lado del límite hacia la zona de swap.

En una 3090 o 4090, tienes que ser quirúrgico. No puedes simplemente correr un modelo draft de alta precisión junto a un quant de 4 bits de un modelo grande sin topar con el muro de VRAM. La configuración cómoda aquí requiere suficiente margen para almacenar los pesos draft y el KV cache de ambos modelos. Si usas vLLM, la integración debería ser relativamente fluida, pero espera algo de fricción con la configuración inicial y la fragmentación de memoria. Probablemente tengas que jugar con el block size y el número de tokens especulativos para evitar un error OOM a mitad de un prompt largo.

O quizás estoy siendo demasiado pesimista con la VRAM: algunos de los nuevos quants GGUF y EXL2 se han vuelto absurdamente eficientes. Pero la física del ancho de banda de memoria no cambia; sigues moviendo más datos a través del bus.

Ya hemos visto este patrón antes con los primeros días de Medusa. La idea era genial, pero el overhead y la «deriva» la convirtieron en una herramienta de nicho para gente con VRAM infinita. EAGLE 3.1 se siente como la versión adulta de ese concepto. No intenta reinventar la rueda; simplemente evita que la rueda tambalee a altas velocidades. Trata la inestabilidad como un bug que parchear en lugar de una limitación fundamental de la arquitectura.

Para el Q3, veremos cómo este algoritmo se convierte en la configuración por defecto para la mayoría de los despliegues en producción basados en vLLM.

Es una corrección necesaria para una promesa rota.