El proceso: (1) dividir una imagen de 224×224 en 196 parches de 16×16 píxeles, (2) aplanar cada parche en un vector y proyectarlo a través de una capa lineal para crear embeddings de parche, (3) agregar embeddings posicionales para que el modelo sepa dónde está cada parche, (4) anteponer un token [CLS] cuya representación final se usa para clasificación, (5) procesar a través de capas estándar del codificador Transformer. La salida es una secuencia de representaciones de parches que se pueden usar para clasificación, detección o como características para otros modelos.
Las CNN tienen sesgos inductivos incorporados: localidad (los píxeles cercanos están relacionados) y equivarianza por traslación (los patrones se reconocen sin importar la posición). ViT no tiene ninguno — trata los parches como un conjunto no ordenado (la posición viene de embeddings aprendidos) y atiende a todos los parches por igual. Esto hace que ViT sea menos eficiente en datos que las CNN para datasets pequeños pero más potente para datasets grandes, donde puede aprender estos sesgos de los datos en lugar de tenerlos codificados de forma fija.
ViT generó una familia de Transformers de visión: DeiT (entrenamiento eficiente en datos), Swin Transformer (visión jerárquica con ventanas desplazadas), MAE (autoencoder enmascarado para visión auto-supervisada) y DINO/DINOv2 (representaciones visuales auto-supervisadas). Estos modelos ahora dominan las tareas de visión: clasificación de imágenes, detección de objetos, segmentación y extracción de características. La arquitectura ViT también es el codificador de imágenes en la mayoría de los modelos multimodales (LLaVA, GPT-4V).