La solución es la decodificación especulativa. Esta técnica de optimización acelera el proceso lento y secuencial de tu LLM grande (el modelo objetivo) que genera un token a la vez, ya que introduce un mecanismo de borrador.
Este mecanismo de borrador propone rápidamente varios tokens siguientes a la vez. Luego, el modelo objetivo grande verifica estas propuestas en un solo lote paralelo. Acepta el prefijo coincidente más largo de sus propias predicciones y continúa la generación desde ese nuevo punto.
Sin embargo, no todos los mecanismos de borrador son iguales. El enfoque clásico de borrador y objetivo usa un modelo LLM más pequeño y separado como redactor, lo que significa que debes alojar y administrar más recursos de entrega, lo que genera costos adicionales.

Haz clic para ampliar la imagen
Aquí es donde entra en juego EAGLE-3 (Extrapolative Attention Guided LEarning). EAGLE-3 es un enfoque más avanzado. En lugar de un modelo completamente independiente, adjunta un "borrador" extremadamente ligero (solo entre el 2 y el 5% del tamaño del modelo objetivo) directamente a sus capas internas. Este encabezado opera a nivel de atributos y tokens, y procesa atributos de los estados ocultos del modelo objetivo para extrapolar y predecir un árbol de tokens futuros.
¿El resultado? Todos los beneficios de la decodificación especulativa, pero sin la sobrecarga de entrenar y ejecutar un segundo modelo.
El enfoque de EAGLE-3 es mucho más eficiente que la compleja tarea de entrenamiento y mantenimiento de un modelo de borrador independiente con miles de millones de parámetros, que requiere muchos recursos. Solo entrenas un "cabezal de borrador" ligero, que representa solo entre el 2% y el 5% del tamaño del modelo objetivo, y que se agrega como parte de tu modelo existente. Este proceso de entrenamiento más simple y eficiente ofrece una mejora significativa del rendimiento de decodificación de 2 a 3 veces para modelos como Llama 70B (según los tipos de cargas de trabajo, p.ej., de varios turnos, de código, de contexto largo y mucho más).

Haz clic para ampliar la imagen
Sin embargo, trasladar este enfoque optimizado de EAGLE-3 de un documento a un servicio en la nube a gran escala y listo para la producción es un verdadero viaje de ingeniería. En esta publicación, compartimos nuestro proceso técnico, los desafíos clave y las lecciones que aprendimos en el camino.
Desafío 1: Preparación de los datos
El encabezado de EAGLE-3 necesita entrenamiento. El primer paso obvio es tomar un conjunto de datos genérico disponible públicamente. La mayoría de estos conjuntos de datos presentan desafíos, como los siguientes:
- Condiciones de Uso Estrictas: Estos conjuntos de datos se generan con modelos que no permiten usarlos para desarrollar modelos que compitan con los proveedores originales.
- Contaminación de PII: Algunos de estos conjuntos de datos contienen una cantidad significativa de PII, incluidos nombres, ubicaciones e incluso identificadores financieros.
- Sin garantía de calidad: Algunos conjuntos de datos solo funcionan bien para casos de uso generales de "demostración", pero no son los mejores para la carga de trabajo especializada de los clientes reales.
No es una opción usar estos datos tal como están.
Lección 1: Crea una canalización de generación de datos sintéticos
Una solución es crear una canalización de generación de datos sintéticos. Según los casos de uso de nuestros clientes, seleccionamos el conjunto de datos adecuado que no solo sea de buena calidad, sino que también coincida mejor con el tráfico de producción de nuestros clientes para diferentes cargas de trabajo. Luego, puedes extraer solo las instrucciones del usuario de estos conjuntos de datos y aplicar filtros rigurosos de DLP (prevención de pérdida de datos) y de PII. Estas instrucciones limpias aplican una plantilla de chat, las tokenizan y, luego, se pueden ingresar en tu modelo objetivo (p.ej., Llama 3.3 70B) para recopilar sus respuestas.
Este enfoque proporciona datos generados por el objetivo que no solo son compatibles y limpios, sino que también coinciden bien con la distribución de resultados real del modelo. Esto es ideal para entrenar el encabezado del borrador.

Haz clic para ampliar la imagen
Desafío 2: Ingeniería de la canalización de entrenamiento
Otra decisión clave es cómo proporcionar los datos de entrenamiento al encabezado de EAGLE-3. Tienes dos rutas distintas: el entrenamiento en línea, en el que las incorporaciones se "generan sobre la marcha", y el entrenamiento sin conexión, en el que las "incorporaciones se generan antes del entrenamiento".
En nuestro caso, elegimos un enfoque de entrenamiento sin conexión porque requiere mucho menos hardware que el entrenamiento en línea. Este proceso implica calcular previamente todos los atributos y las incorporaciones antes de entrenar el encabezado de EAGLE-3. Los guardamos en GCS y se convierten en los datos de entrenamiento de nuestro encabezado ligero de EAGLE-3. Una vez que tengas los datos, el entrenamiento en sí es rápido. Dado el tamaño diminuto del cabezal EAGLE-3, el entrenamiento inicial con nuestro conjunto de datos original requirió aproximadamente un día en un solo host. Sin embargo, a medida que aumentamos la escala de nuestro conjunto de datos, los tiempos de entrenamiento también aumentaron de manera proporcional y ahora abarcan varios días.

Haz clic para ampliar la imagen
Este proceso nos enseñó dos lecciones importantes que debes tener en cuenta.
Lección 2: Las plantillas de chat no son opcionales
Mientras entrenábamos el modelo ajustado según las instrucciones, descubrimos que el rendimiento de EAGLE-3 puede variar mucho cuando la plantilla de chat no es la adecuada. Debes aplicar la plantilla de chat específica del modelo objetivo (p.ej., Llama 3) antes de generar las características y los embeddings. Si solo concatenas texto sin procesar, las incorporaciones serán incorrectas y tu encabezado aprenderá a predecir la distribución incorrecta.
Lección 3: Cuida tu máscara
Durante el entrenamiento, se proporcionan al modelo las representaciones de la instrucción y la respuesta. Sin embargo, el encabezado de EAGLE-3 solo debería aprender a predecir la representación de la respuesta. Debes enmascarar manualmente la parte de la instrucción en tu función de pérdida. Si no lo haces, el encabezado desperdiciará capacidad aprendiendo a predecir la instrucción que ya se le proporcionó, y el rendimiento se verá afectado.

Haz clic para ampliar la imagen
Desafío 3: Entrega y escalamiento
Con un encabezado de EAGLE-3 entrenado, procedimos a la fase de entrega. Esta fase presentó desafíos importantes en cuanto a la expansión. Estos son nuestros aprendizajes clave.
Lección 4: Tu framework de entrega es clave
Gracias a la estrecha colaboración con el equipo de SGLang, lanzamos EAGLE-3 a producción con el mejor rendimiento. El motivo técnico es que SGLang implementa un kernel de atención del árbol fundamental. Este kernel especial es fundamental porque EAGLE-3 genera un "árbol de borrador" de posibilidades (no solo una cadena simple), y el kernel de SGLang está diseñado específicamente para verificar todas esas rutas de ramificación en paralelo en un solo paso. Sin esto, no aprovecharás el rendimiento.
Lección 5: No permitas que la CPU limite el rendimiento de la GPU
Incluso después de acelerar tu LLM con EAGLE-3, puedes encontrarte con otro límite de rendimiento: la CPU. Cuando tus GPUs ejecutan la inferencia de LLM, el software no optimizado desperdiciará una gran cantidad de tiempo en la sobrecarga de la CPU, como el inicio del kernel y el registro de metadatos. En un programador síncrono normal, la GPU ejecuta un paso (como Borrador) y, luego, queda inactiva mientras la CPU realiza su administración y lanza el siguiente paso Verificar. Estas burbujas de sincronización se acumulan y desperdician grandes cantidades de tiempo valioso de la GPU.

Haz clic para ampliar la imagen
Para resolver este problema, usamos el programador de superposición sin sobrecarga de SGLang. Este programador está ajustado específicamente para el flujo de trabajo de varios pasos de la decodificación especulativa Borrador -> Verificación -> Extensión del borrador . La clave es superponer el cálculo. Mientras la GPU está ocupada ejecutando el paso Verify actual, la CPU ya está trabajando en paralelo para iniciar los kernels de los siguientes pasos Draft y Draft Extend .
Esto elimina la burbuja de inactividad, ya que garantiza que el próximo trabajo de la GPU esté siempre listo, mediante un FutureMap, una estructura de datos inteligente que permite que la CPU prepare el próximo lote MIENTRAS la GPU sigue trabajando.

Haz clic para ampliar la imagen
Al eliminar esta sobrecarga de la CPU, el programador de superposición nos brinda una aceleración adicional del 10% al 20% en todos los casos. Esto demuestra que un buen modelo es solo la mitad de la batalla; necesitas un tiempo de ejecución que pueda seguir el ritmo.
Resultados de comparativas
Después de este viaje, ¿valió la pena? Por supuesto.
Comparamos nuestro encabezado EAGLE-3 entrenado con el modelo de referencia no especulativo usando SGLang con Llama 4 Scout 17B Instruct. Nuestras comparativas muestran una aceleración de 2 a 3 veces en la latencia de decodificación y ganancias significativas en el rendimiento según los tipos de cargas de trabajo.
Consulta todos los detalles y realiza tu propia comparación con nuestro notebook integral.
Métrica 1: Mediana del tiempo por token de salida (TPOT)
Haz clic para ampliar la imagen
En este gráfico, se muestra el mejor rendimiento de latencia de EAGLE-3. El gráfico de tiempo por token de salida (TPOT) muestra que el modelo acelerado de EAGLE-3 (línea verde) logra de forma constante una latencia más baja (más rápida) que el modelo de referencia (línea azul) en todos los niveles de simultaneidad probados.
Métrica 2: Capacidad de procesamiento de salida
Haz clic para ampliar la imagen
Este gráfico destaca aún más la ventaja de capacidad de procesamiento de EAGLE-3. El gráfico de la capacidad de procesamiento de tokens en comparación con la simultaneidad demuestra claramente que el modelo acelerado por EAGLE-3 (línea verde) supera de forma constante y sustancial al modelo de referencia (línea azul).
Si bien las observaciones similares se aplican a los modelos más grandes, vale la pena destacar que se puede observar un aumento en el tiempo hasta el primer token (TTFT) en comparación con otras métricas de rendimiento. Además, estos rendimientos varían según la tarea, como se ilustra en los siguientes ejemplos:

Haz clic para ampliar la imagen
Conclusión: Ahora es tu turno
EAGLE-3 no es solo un concepto de investigación, sino un patrón listo para producción que puede ofrecer una aceleración tangible del doble en la latencia de decodificación. Sin embargo, lograr que se escale requiere un verdadero esfuerzo de ingeniería. Para implementar esta tecnología de forma confiable para tus usuarios, debes hacer lo siguiente:
- Crea una canalización de datos sintéticos que cumpla con los requisitos.
- Controla correctamente las plantillas de chat y las máscaras de pérdida, y entrena el modelo en un conjunto de datos a gran escala.
En Vertex AI, ya optimizamos todo este proceso para ti, ya que proporcionamos un contenedor y una infraestructura optimizados diseñados para escalar tus aplicaciones basadas en LLM. Para comenzar, consulta los siguientes recursos:
Gracias por leer
Agradecemos tus comentarios y preguntas sobre Vertex AI.
Agradecimientos
Queremos expresar nuestro sincero agradecimiento al equipo de SGLang, en especial a Ying Sheng, Lianmin Zheng, Yineng Zhang, Xinyuan Tong y Liangsheng Yin, así como al equipo de SGLang/SpecForge, en especial a Shenggui Li y Yikai Zhu, por su invaluable asistencia durante todo este proyecto. Su generosa asistencia y sus profundos conocimientos técnicos fueron fundamentales para el éxito de este proyecto.