Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Medusa Heads

Las cabezas Medusa son cabezas de decodificación adicionales para LLM que predicen varios tokens futuros a la vez y los verifican mediante atención en árbol, lo que acelera la generación sin necesidad de un modelo borrador.

Las cabezas Medusa son cabezas de decodificación ligeras que se añaden a la última capa oculta de un modelo de lenguaje grande; cada una se entrena para predecir un token más adelante que la propia capa de salida del modelo. En una pasada hacia delante, el modelo produce su predicción habitual del siguiente token y, además, predicciones para las siguientes posiciones; un paso de atención en árbol comprueba esas predicciones en la pasada siguiente y conserva la secuencia más larga con la que coincide el modelo. Medusa es una forma de decodificación especulativa que no necesita un modelo borrador independiente, así que no hay una segunda red que entrenar, alojar ni mantener sincronizada. Tianle Cai, Tri Dao y sus colaboradores lo presentaron en Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads en enero de 2024.

Cómo predicen las cabezas los tokens futuros#

Un paso estándar de generación de texto introduce el último estado oculto en la posición t en la cabeza del modelo de lenguaje, que calcula la puntuación del token en t + 1. La cabeza Medusa k lee el mismo estado oculto y calcula la puntuación del token en t + k + 1. Cada cabeza es una única capa de propagación hacia delante con una activación SiLU y una conexión residual, seguida de una proyección al vocabulario. La proyección comienza como una copia de la cabeza del modelo de lenguaje y la capa de propagación hacia delante empieza a cero, así que antes del entrenamiento todas las cabezas reproducen la predicción del siguiente token del modelo base. El artículo concluye que cinco cabezas son suficientes. Este esquema en PyTorch crea tres cabezas y compara sus salidas con la cabeza del modelo base a partir de un estado oculto:

import torch
import torch.nn.functional as F

hidden_size, vocab_size, num_heads = 256, 1000, 3
lm_head = torch.nn.Linear(hidden_size, vocab_size, bias=False)  # la capa de salida del modelo congelado

# Cada cabeza Medusa: una capa residual SiLU (inicializada a cero) y una copia de la cabeza LM
w1 = [torch.nn.Linear(hidden_size, hidden_size) for _ in range(num_heads)]
w2 = [torch.nn.Linear(hidden_size, vocab_size, bias=False) for _ in range(num_heads)]
for layer, out in zip(w1, w2):
    torch.nn.init.zeros_(layer.weight)
    torch.nn.init.zeros_(layer.bias)
    out.weight.data.copy_(lm_head.weight.data)

# Todas las cabezas leen el mismo último estado oculto; la cabeza k apunta a la posición t + k + 1
h = torch.randn(1, hidden_size)
head_logits = [out(h + F.silu(layer(h))) for layer, out in zip(w1, w2)]
print([torch.equal(logits, lm_head(h)) for logits in head_logits])

La salida [True, True, True] muestra que la capa residual inicializada a cero hace que cada cabeza nueva comience como una copia exacta de la predicción del modelo base. El entrenamiento desplaza entonces la cabeza k hacia su propia posición futura, mientras que lm_head y el modelo base permanecen sin cambios.

Atención en árbol y aceptación#

Las predicciones principales de las cabezas se combinan para formar continuaciones candidatas. Con los dos tokens principales de la cabeza 1 y los tres principales de la cabeza 2, el producto cartesiano genera seis candidatos que comparten prefijos y forman un árbol:

En la siguiente pasada hacia delante, todos los tokens candidatos se añaden a la entrada a la vez, y una máscara de atención permite que cada token vea solo sus propios ancestros en el árbol, de modo que el modelo calcula en paralelo la puntuación de todas las ramas. Se conserva la rama más larga que acepta el modelo, y su último estado oculto alimenta las cabezas para la ronda siguiente. Como todas las cabezas leen el mismo estado oculto, la cabeza 2 propone los mismos tokens para cada rama de la cabeza 1. Los autores descubrieron que un árbol disperso de 64 nodos, creado con las combinaciones más precisas, ofrecía una tasa de aceleración superior a la de un árbol denso de 256 nodos.

Con la decodificación voraz, se acepta un token candidato cuando coincide con la opción principal del modelo. Para el muestreo, Medusa ofrece la aceptación típica, que conserva cualquier candidato cuya probabilidad según el modelo base supere un umbral ligado a la entropía de la distribución; así se aceptan más tokens a costa de no reproducir exactamente la distribución.

Entrenamiento de Medusa-1 y Medusa-2#

Medusa-1 entrena solo las cabezas nuevas sobre un modelo base congelado, de modo que las salidas del modelo mantienen su calidad; el artículo informa de una generación más de 2,2 veces rápida. Entrenar las cabezas de Vicuna-7B llevó unas cinco horas en una única GPU A100 con 60.000 conversaciones de ShareGPT. Esta es la misma división que configura freeze=23 al ajustar Ultralytics YOLO26: las capas 0-22 permanecen fijas y solo la cabeza de detección de la capa 23 aprende de los nuevos datos.

Medusa-2 ajusta finamente las cabezas y el modelo base conjuntamente, lo que aumenta la precisión de las cabezas y eleva la aceleración a 2,3-3,6 veces mediante una receta de entrenamiento que protege las capacidades originales del modelo base. Cuando los datos de entrenamiento originales no están disponibles, la autodestilación entrena las cabezas con texto generado por el propio modelo.

Medusa es una de varias formas de generar tokens preliminares a partir del propio modelo objetivo. EAGLE los genera a partir de las características internas del modelo mediante una pequeña capa autorregresiva, y la predicción de varios tokens, utilizada en DeepSeek-V3, entrena módulos de predicción adicionales durante el preentrenamiento que los motores de servicio reutilizan después como generadores preliminares. Los tres métodos reducen sobre todo la latencia de inferencia con tamaños de lote pequeños, habituales en los chatbots interactivos, donde cada pasada hacia delante deja la GPU casi siempre esperando a la memoria.

Explore solutions

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático