ARQUITECTURA

ViT (Vision Transformer)

Adaptación del transformer al procesamiento de imágenes que las divide en parches y los trata como una secuencia de tokens, eliminando la necesidad de convoluciones.

Nivel · avanzado5 min de lecturaActualizado 24 may 2026
También conocido como: Vision Transformer, Transformer de visión, ViT-B/16

Definición

El Vision Transformer (ViT) es una adaptación del transformer original al procesamiento de imágenes. Introducido por Google en 2020 (An Image is Worth 16x16 Words), demostró que la arquitectura transformer, diseñada para texto, también funciona excelentemente en visión sin necesidad de convoluciones —desplazando a las CNN del estado del arte en muchas tareas.

La idea central es radicalmente simple: tomar una imagen, partirla en parches de tamaño fijo (típicamente 14×14 o 16×16 píxeles), tratar cada parche como si fuera un "token" de texto, y procesarlos con un transformer estándar.

Hoy ViT es la base de prácticamente toda la visión por computador moderna: encoders en modelos multimodales (CLIP, Gemini, GPT-4o), backbones de diffusion (DiT en SD3, Flux, Sora), y se aplica también a audio, vídeo y datos médicos.

Cómo funciona

El pipeline ViT estándar para una imagen de 224×224 píxeles:

  1. División en parches: la imagen se divide en parches de 16×16. Resultado: 14×14 = 196 parches.
  2. Flatten + proyección lineal: cada parche (16×16×3 = 768 valores) se aplana y se proyecta a un embedding de dimensión D (típicamente 768 en ViT-B).
  3. Class token: se prepende un token especial [CLS] cuyo embedding final servirá para clasificación.
  4. Position embeddings: se suma a cada embedding una codificación de posición (en qué parche del grid 14×14 está).
  5. Pila de capas transformer: secuencia de 196 + 1 = 197 tokens pasa por N capas (12-24-32 según tamaño).
  6. Salida: para clasificación, el embedding final del [CLS] se proyecta al número de clases. Para encoder visual, se usan los embeddings de todos los parches.

El número de parámetros típico:

  • ViT-B/16: 86M (Base, parches 16×16).
  • ViT-L/16: 307M (Large).
  • ViT-H/14: 632M (Huge).
  • ViT-G: 1.8B+ (Giant, usado en CLIP grande).

Por qué reemplazó a las CNN

Las redes convolucionales (CNN) dominaron visión durante una década (AlexNet, ResNet, EfficientNet). Sus ventajas: inductivos bias adaptados a imágenes (localidad, invarianza a traslación, jerarquía). Sus límites:

  • Receptive field limitado por capa: cada filtro solo "ve" un vecindario pequeño. Para integrar contexto global hacen falta muchas capas.
  • Difícil escalar: añadir capas a una CNN tiene retornos decrecientes.
  • Arquitectura específica: cada nueva tarea suele requerir ajustar la arquitectura.

ViT, en cambio:

  • Atención global desde la primera capa: cada parche puede relacionarse con cualquier otro inmediatamente.
  • Escala bien: a más datos + más parámetros, más calidad de forma predecible (igual que en LLMs).
  • Arquitectura unificada: el mismo ViT vale para clasificación, detección, segmentación, generación, multimodal.

A partir de 2021 los benchmarks principales de visión empezaron a ser dominados por variantes de ViT. La excepción son tareas muy específicas (visión médica, satelital) donde CNN especializadas siguen siendo competitivas.

Ejemplo práctico

Imagina aplicar ViT al control de calidad en IMDICA. Queremos detectar automáticamente si una pieza industrial recibida del proveedor tiene defectos visibles antes de almacenarla:

  1. Dataset: 5.000 fotos de piezas etiquetadas (OK, defecto leve, defecto grave).
  2. Modelo base: ViT-B/16 preentrenado en ImageNet o un modelo multimodal con encoder ViT.
  3. Fine-tuning: ajustar las últimas capas con nuestros datos. ~1 GPU hora.
  4. Inferencia: cada foto del operario en su tablet → predicción en <100ms.

Resultado típico tras buen fine-tuning: 95-98% de precisión en defectos comunes. Replazable a CNN especializada con resultados ligeramente mejores en general, pero ViT generaliza mejor a tipos de defecto nuevos no vistos en entrenamiento.

Variantes y evoluciones

  • DeiT (Data-efficient ViT): entrenamiento eficiente sin necesidad de los 300M de imágenes del ViT original.
  • Swin Transformer: introduce ventana deslizante para mejor eficiencia y multi-escala.
  • MAE (Masked Autoencoders): pre-entrenamiento auto-supervisado enmascarando parches, estilo BERT.
  • DINO / DINOv2: pre-entrenamiento auto-supervisado contrastivo. DINOv2 genera embeddings visuales increíbles.
  • CLIP: ViT + text encoder entrenados contrastivamente. Base de búsqueda semántica visual.
  • SAM (Segment Anything): ViT entrenado para segmentar cualquier objeto en cualquier imagen.
  • DiT (Diffusion Transformer): ViT aplicado a diffusion. Base de Sora, SD3, Flux.

Encoders visuales en LLMs multimodales

Cuando un LLM "ve" una imagen, casi siempre lo hace vía un encoder ViT:

  • CLIP-ViT: el más usado históricamente (LLaVA, GPT-4V early).
  • EVA-CLIP, SigLIP: variantes mejoradas, usadas en modelos modernos.
  • Encoder nativo: GPT-4o, Gemini 2 tienen su propio encoder ViT entrenado conjuntamente con el LLM.

El flujo: imagen → ViT → vectores de parches → adapter/projector → espacio de embeddings del LLM → procesamiento como tokens más. Es la pieza que hace posible la multimodalidad.

Errores comunes al hablar de ViT

  • "Funciona como vemos los humanos": no. Procesa parches independientes inicialmente, no objetos. La comprensión emerge en capas profundas.
  • "Sustituye a las CNN siempre": no en todos los dominios. CNN siguen siendo competitivas en visión especializada con datasets pequeños.
  • "Más parches = más resolución es mejor": aumentar parches dispara el coste cuadrático de atención. Hay un sweet spot.
  • Subestimar la cantidad de datos requerida: ViTs originales requerían 300M imágenes. DeiT y MAE redujeron eso, pero aún necesitan más datos que CNN equivalentes.
  • Pensar que es solo para imagen: ViT funciona en audio (espectrogramas como parches), vídeo (3D patches), datos médicos, sensores, etc.

Cuándo usar ViT

Sí, considera ViT cuando:

  • Construyes sistemas de visión modernos desde cero.
  • Quieres una arquitectura unificada texto+imagen.
  • Tienes datos suficientes (decenas de miles+ imágenes) o puedes fine-tunear desde un preentrenado.
  • Necesitas escalar la calidad subiendo parámetros y datos.

Es menos crítico si:

  • Trabajas en visión muy especializada con datasets muy pequeños y CNN funciona.
  • Necesitas inferencia ultra-rápida en dispositivos limitados (mobile, IoT) y MobileNet/EfficientNet bastan.

Referencias

Tagsiaarquitecturavisióntransformers