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

Token Merging (ToMe)

La fusión de tokens (ToMe) acelera los Transformers visuales al promediar tokens similares dentro de cada bloque y duplicar el rendimiento sin volver a entrenar.

La fusión de tokens (ToMe) es un método para acelerar los transformers, en especial el Transformer de visión (ViT), que combina tokens similares dentro de la red para que cada bloque procese menos. Las imágenes contienen mucha redundancia, como parches de cielo o carretera casi idénticos, y promediar esos tokens reduce los cálculos sin perder su información. ToMe funciona con modelos ya entrenados, sin volver a entrenarlos, y también se puede aplicar durante el entrenamiento. Daniel Bolya y sus colegas de Georgia Tech y Meta AI lo presentaron en Token Merging: Your ViT But Faster, un artículo presentado oralmente en ICLR 2023. Sin modificaciones, duplicó el rendimiento de ViT-L a 512 píxeles y de ViT-H a 518 píxeles en imágenes, con una caída de precisión de solo el 0,2 % al 0,3 %, y aceleró 2,2 veces un modelo de vídeo ViT-L con una caída similar.

Cómo funciona la fusión de tokens#

Un ViT divide una imagen en parches, uno por token, y cada bloque ejecuta autoatención, cuyo coste crece con el cuadrado del número de tokens, seguida de un MLP, cuyo coste crece linealmente. ToMe inserta un paso de fusión entre la atención y el MLP de cada bloque y elimina un número fijo de tokens, r, cada vez; así, un modelo de 24 bloques con r = 8 termina con 192 tokens menos que al principio. La fusión utiliza emparejamiento suave bipartito, elegido por su rapidez y porque no requiere agrupamiento iterativo:

  1. Dividir: Separa los tokens alternativamente en dos conjuntos, A y B.
  2. Emparejar: Conecta cada token de A con el token más similar de B, medido mediante la similitud coseno de las claves de atención promediadas entre cabezas.
  3. Conservar las mejores aristas: Conserva los r pares más similares.
  4. Fusionar: Promedia cada par conservado en un solo token, ponderado según el número de parches originales que ya representa cada token, y vuelve a concatenar los dos conjuntos.

Como los tokens fusionados representan varios parches, ToMe añade el logaritmo del tamaño de cada token a las puntuaciones de atención, una técnica llamada atención proporcional, para que los tokens formados por muchos parches reciban la parte de atención que les corresponde. Todo el procedimiento es diferenciable, lo que permite entrenar modelos con ToMe para obtener más velocidad.

Este ejemplo de PyTorch aplica el emparejamiento suave bipartito al ViT pequeño DINOv2 de Meta, disponible en Transformers de Hugging Face, sobre una imagen de 448 x 448 de un autobús; fusiona r tokens después de cada uno de sus 12 bloques y compara la representación resultante de la imagen con la del modelo sin fusiones:

from urllib.request import urlopen

import torch
import torch.nn.functional as F
from PIL import Image
from transformers import AutoImageProcessor, AutoModel

processor = AutoImageProcessor.from_pretrained("facebook/dinov2-small")
model = AutoModel.from_pretrained("facebook/dinov2-small")
image = Image.open(urlopen("https://ultralytics.com/images/bus.jpg")).resize((448, 448))
pixels = processor(images=image, do_resize=False, do_center_crop=False, return_tensors="pt").pixel_values


def merge(x, r):
    """Bipartite soft matching: merge the r most similar pairs between alternating token sets A and B."""
    cls, a, b = x[:, :1], x[:, 1::2], x[:, 2::2]
    similarity = F.normalize(a[0], dim=-1) @ F.normalize(b[0], dim=-1).T
    best, match = similarity.max(dim=-1)  # each A token's most similar B token
    order = best.argsort(descending=True)
    merged, kept = order[:r], order[r:]
    index = match[merged][None, :, None].expand(1, r, x.shape[-1])
    b = b.scatter_reduce(1, index, a[:, merged], reduce="mean")  # average merged A tokens into their B matches
    return torch.cat([cls, a[:, kept], b], dim=1)


with torch.no_grad():
    for r in (0, 32, 64):
        x, counts = model.embeddings(pixels), []
        for layer in model.encoder.layer:
            counts.append(x.shape[1])
            x = merge(layer(x), r)  # merge r tokens after every transformer block
        embedding = model.layernorm(x)[:, 0]  # CLS token: the image embedding
        reference = embedding if r == 0 else reference
        similarity = F.cosine_similarity(embedding, reference).item()
        print(f"r={r}: mean tokens per block {sum(counts) / 12:.0f}, CLS similarity to unmerged {similarity:.3f}")

El modelo sin fusiones procesa 1025 tokens en cada bloque: 1.024 parches más el token CLS. Fusionar 32 tokens por bloque reduce la media a 849, mientras la representación de la imagen conserva una similitud coseno de 0.983 respecto a la original; fusionar 64 por bloque la reduce a 673, con una similitud de 0.887. Esto muestra cómo r intercambia capacidad de cálculo por fidelidad.

Usos de la fusión de tokens#

Token Merging for Fast Stable Diffusion aplica la misma idea a los bloques Transformer de la red de eliminación de ruido de Stable Diffusion, donde puede eliminar hasta el 60 % de los tokens y generar imágenes hasta dos veces más rápido y con hasta 5,6 veces menos memoria, sin entrenamiento adicional. Más allá de las imágenes, el artículo de ToMe duplicó el rendimiento de un ViT-B de audio entrenado con fusión, con una caída del 0,4 % en mAP, y aceleró hasta dos veces el ajuste fino de un codificador automático enmascarado para vídeo. Los investigadores aplican técnicas similares de fusión y poda a los tokens visuales de los modelos de visión y lenguaje, donde LLaVA-1.5 emplea 576 tokens del contexto del modelo de lenguaje por cada imagen.

En el paquete Ultralytics, Segment Anything Model (SAM) de Meta codifica cada imagen de 1024 x 1024 píxeles como 4.096 tokens de parche; en la comparativa de MobileSAM, su codificador de imágenes ViT-H tarda 452 ms de los 456 ms que SAM necesita por imagen en una GPU, la parte del cálculo a la que se dirigen los métodos de reducción de tokens.

  • Poda de tokens: Métodos como DynamicViT y EViT descartan los tokens considerados poco importantes, lo que hace perder su información y suele requerir entrenamiento. ToMe fusiona los tokens en lugar de descartarlos, por lo que incorpora su información mediante promediado y funciona con modelos que no se han entrenado con este método.
  • Tokenización: Crea los tokens iniciales a partir de parches o texto antes de que se ejecute la red. ToMe reduce su número dentro de la red.
  • Atención Flash y atención dispersa: Reducen el coste o aumentan la velocidad de la atención para un número determinado de tokens. ToMe reduce el número de tokens, lo que también acelera las capas MLP, y se puede combinar con estos métodos.
  • Mixture of Depths (MoD): Permite que un router aprendido decida qué tokens se saltan un bloque en los modelos de lenguaje. ToMe fusiona permanentemente los tokens redundantes mediante una regla fija de similitud.
  • Menor resolución de entrada: Reduce uniformemente el número de tokens en toda la imagen. ToMe fusiona principalmente las regiones redundantes, como el fondo, y conserva las regiones detalladas a resolución completa.

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 las imágenes de drones y las imágenes aéreas en información práctica en tiempo real para la agricultura, la acuicultura, la vigilancia medioambiental, 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

Lleva la IA de visión a la supervisión aérea con los modelos Ultralytics YOLO. Impulsa drones, flujos de trabajo aeroespaciales, conservación medioambiental y sectores geoespaciales con soluciones de visión artificial.
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
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 las imágenes de drones y las imágenes aéreas en información práctica en tiempo real para la agricultura, la acuicultura, la vigilancia medioambiental, 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

Lleva la IA de visión a la supervisión aérea con los modelos Ultralytics YOLO. Impulsa drones, flujos de trabajo aeroespaciales, conservación medioambiental y sectores geoespaciales con soluciones de visión artificial.
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
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 las imágenes de drones y las imágenes aéreas en información práctica en tiempo real para la agricultura, la acuicultura, la vigilancia medioambiental, 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

Lleva la IA de visión a la supervisión aérea con los modelos Ultralytics YOLO. Impulsa drones, flujos de trabajo aeroespaciales, conservación medioambiental y sectores geoespaciales con soluciones de visión artificial.
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