CLIP · BLIP · Grounding DINO · VLM (Qwen2.5-VL)
Los modelos fundacionales multimodales representan un salto cualitativo: combinan visión y lenguaje para entender instrucciones en texto natural, describir imágenes, detectar objetos mediante descripciones verbales, y razonar sobre contenido visual.
Son modelos preentrenados a gran escala que aprenden representaciones generales y transferibles.
Capturan patrones robustos gracias al preentrenamiento masivo y funcionan bien incluso en zero-shot.
Permiten reutilizar el conocimiento en muchas tareas, reducen anotación y evitan entrenar desde cero.
La multimodalidad añade una dimensión importante: estos modelos procesan imagen + texto simultáneamente, aprendiendo correspondencias entre ambos dominios. Esto les permite entender instrucciones verbales sobre contenido visual y generar descripciones textuales de imágenes.
Ejemplos de modelos multimodales:
La capacidad zero-shot significa que el modelo puede resolver tareas nuevas sin entrenamiento específico para ellas. La clave está en la composicionalidad: el modelo aprende conceptos atómicos («perro», «rojo», «corriendo») y los combina libremente.
Ejemplo práctico: el modelo solo ha visto nutria, orangután y león. En una imagen nueva, foca y gato (nunca vistos) se proyectan en el espacio semántico cerca de los conceptos aprendidos (foca ≈ nutria, gato ≈ león). Así puede reconocer clases nuevas sin reentrenar, añadiendo categorías al instante y cubriendo con coste de anotación casi cero.
Esta flexibilidad es revolucionaria para dominios industriales o médicos donde las categorías cambian constantemente.
En zero-shot, las clases llegan como texto y no como una cabeza reentrenada.
Respuesta A. Exacto: CLIP ordena categorías propuestas como texto.
La composicionalidad permite combinar atributos como «rojo», «perro» y «corriendo». Esto acelera la experimentación, aunque las categorías propuestas y la formulación de los textos pueden cambiar el resultado.
CLIP (Contrastive Language-Image Pre-training) aprende un espacio de embeddings compartido donde imágenes y textos similares están cerca y diferentes están lejos.
Arquitectura: un encoder de imagen y un encoder de texto procesan sus respectivas entradas en paralelo, proyectándolas al mismo espacio vectorial. La similitud se mide con producto escalar o coseno.
CLIP relaciona imágenes y texto mediante un entrenamiento contrastivo (contrastive learning) y luego aplica ese conocimiento para tareas como la clasificación zero-shot.
La imagen se convierte en un vector (embedding) con el Image Encoder.
Los textos de las posibles clases se convierten en vectores con el Text Encoder.
Se calcula la similitud entre el vector de la imagen y cada vector de texto.
La clase con mayor similitud es la predicción final del modelo.
Ejemplo: para una foto de un gato y los textos «una astronauta…», «un gato…» y «un caballo…», las similitudes son [0.1, 0.9, 0.2] y la predicción es «un gato…».
La similitud coseno compara direcciones, no longitudes: mueve la imagen y mira qué texto se queda más cerca.
Los cuatro textos están a distancias distintas del origen y aun así solo cuenta el ángulo. Las líneas de puntos unen los dos que el modelo ha dejado cerca: gato con perro, bicicleta con coche.
Gana «un gato» por ángulo (0,99), aunque «un perro» esté más cerca en línea recta: 0,17 frente a 0,46.
Para qué sirve esto en la práctica: es el motor de la búsqueda por texto en un catálogo de imágenes, de la deduplicación («¿tengo ya esta foto?») y del primer filtro de moderación. En los tres casos se codifica una vez, se guardan los vectores y luego cada consulta es un producto escalar.
La similitud coseno solo mira el ángulo entre vectores: vale 1 cuando apuntan igual, 0 cuando son perpendiculares y −1 cuando se oponen. Por eso dos vectores de longitud muy distinta pueden ser casi idénticos para el modelo, como pasa aquí con la imagen y «un gato». La longitud de un embedding recoge sobre todo cuánta señal tiene el parche o el texto, no de qué habla, así que la práctica habitual es normalizar los vectores antes de guardarlos; con vectores normalizados, ordenar por coseno y ordenar por distancia euclídea dan el mismo resultado, y la distancia deja de estorbar. La agrupación tampoco es casual: los conceptos que aparecen juntos en los pares de entrenamiento acaban en direcciones próximas, y por eso gato y perro caen a un lado y bicicleta y coche al otro. De ahí se siguen dos consecuencias prácticas: la lista de candidatos condiciona la respuesta, porque el modelo elige siempre uno, y la formulación del texto desplaza su vector, así que reescribir el prompt puede cambiar el ganador sin tocar la imagen.
Entrenamiento contrastivo a gran escala (400M de pares imagen-texto).
CLIP utiliza dos codificadores independientes que trabajan en paralelo, proyectando la información a un espacio compartido. El Image Encoder (Vision Transformer o ResNet) convierte la imagen en un vector numérico (embedding). El Text Encoder (un Transformer) convierte la descripción textual en otro vector numérico.
El modelo recibe un lote (batch) de N imágenes y sus N textos correspondientes, creando una matriz de N × N posibles parejas. En un lote de 32.000 pares, se generan 32.000 parejas correctas y millones de combinaciones incorrectas.
El modelo se entrena con una única regla simple (Contrastive Loss):
BLIP (Bootstrapping Language-Image Pre-training) va más allá de CLIP: no solo relaciona imágenes con texto, sino que genera descripciones textuales (captioning) y responde preguntas sobre el contenido visual (VQA).
Arquitectura: combina un encoder de imagen con un decoder de lenguaje basado en Transformers. La fusión multimodal ocurre mediante capas de cross-attention que permiten al texto «mirar» las features visuales.
Grounding DINO combina la potencia de DINO (detección) con la comprensión lingüística para realizar detección guiada por lenguaje natural sin clases fijas.
Cómo funciona: le das un prompt textual («encuentra todos los tornillos oxidados» o «localiza cascos amarillos») y el modelo devuelve bounding boxes para cada coincidencia, sin haber sido entrenado explícitamente en esas categorías.
Grounding DINO integra procesamiento de lenguaje e imagen en un pipeline unificado, permitiendo una detección de objetos altamente flexible y adaptada a descripciones textuales.
El prompt textual («coche rojo y persona») se transforma en features lingüísticas ricas en significado a través de un modelo BERT.
La imagen de entrada es procesada por un Swin Transformer para extraer features visuales de alta resolución.
Mediante atención cruzada intermodal, las features de texto guían la interpretación visual, alineando el lenguaje con las regiones espaciales relevantes de la imagen.
Un decoder Transformer usa estas features fusionadas para predecir las bounding boxes y las clases de los objetos, todo en base al prompt original.
A diferencia de métodos clásicos, no requiere cajas predefinidas, lo que simplifica y flexibiliza el proceso.
Evita el post-procesamiento de Non-Maximum Suppression, optimizando la predicción de cajas.
El texto dirige directamente qué y dónde buscar en la imagen.
Permite una profunda interacción entre las representaciones visuales y lingüísticas.
COCO: 80 clases fijas → Grounding DINO: infinitas clases, cualquier texto describible.
Los modelos multimodales se distinguen por su salida: texto, puntuación o cajas.
Respuesta A. Exacto: el prompt guía la búsqueda, pero la evaluación valida el uso.
CLIP puntúa textos frente a una imagen, BLIP genera lenguaje y Grounding DINO devuelve cajas. Para localizar un defecto nombrándolo, la salida que necesitas es una caja.
Extrae features visuales de la imagen (por ejemplo ViT o SigLIP), transformando píxeles en una representación numérica de alto nivel.
Una capa (MLP o Linear) que convierte las features visuales en «tokens visuales», adaptándolos para que tengan el mismo tamaño y formato que los tokens de texto.
Recibe [tokens de sistema] + [tokens visuales] + [tokens de usuario] como una única secuencia. La imagen se convierte en una secuencia de tokens pseudo-palabras que se concatenan al prompt de texto.
Los Vision-Language Models (VLM) como Qwen2.5-VL llevan la multimodalidad al extremo: además de describir o detectar, también razonan, comparan, extraen datos estructurados y mantienen conversaciones sobre contenido visual.
Capacidades avanzadas:
Trade-off importante: los VLM son mucho más pesados y lentos que CLIP o BLIP. Úsalos solo donde aporten valor real, no como solución universal. Para tareas simples, CLIP o Grounding DINO son suficientes.
Para maximizar la eficacia de los modelos multimodales, hay que formular los prompts de manera estratégica y específica para cada tipo de modelo.
La elección del modelo correcto depende de la complejidad de la tarea y las restricciones de latencia.
Regla de decisión rápida:
El gráfico ordena capacidades relativas, no mide latencia en un hardware concreto. Para decidir hay que medir en el dispositivo de destino con el tamaño de entrada real.
Cada familia resuelve bien una cosa y mal las demás.
Respuesta A. Exacto: BLIP genera texto condicionado por una imagen.
Generar una frase es tarea de un modelo generativo. CLIP solo puntúa textos que tú escribes y Grounding DINO devuelve cajas, no lenguaje.
Los modelos multimodales son muy potentes pero tienen limitaciones importantes que debes tener en cuenta.
Alucinaciones: los modelos generativos pueden inventar detalles que no existen en la imagen. Especialmente común en VLM cuando preguntas sobre aspectos ambiguos.
Sesgos: los datos de entrenamiento contienen sesgos sociales y culturales que se reflejan en las predicciones. Valida siempre con datos representativos de tu población objetivo.
Prompts ambiguos: «encuentra el problema» puede dar resultados inconsistentes.
Escribes las clases como texto y CLIP te ordena cuál encaja mejor.
import torch
from PIL import Image
from transformers import CLIPProcessor, CLIPModel
clip_id = "openai/clip-vit-base-patch32"
processor = CLIPProcessor.from_pretrained(clip_id)
model = CLIPModel.from_pretrained(clip_id)
image = Image.open("mi_imagen.jpg").convert("RGB")
clases = ["una foto de una pieza en buen estado",
"una foto de una pieza con óxido",
"una foto de una pieza rota"]
inputs = processor(text=clases, images=image, return_tensors="pt", padding=True)
with torch.no_grad():
probs = model(**inputs).logits_per_image.softmax(dim=1)[0]
for clase, p in zip(clases, probs):
print(f"{p:.2f} {clase}")
Dos prompts que fallan en clase y cómo se arreglan.
Respuesta C. Correcto. Dos conceptos en positivo, separados por el punto que Grounding DINO usa para distinguirlos, y cada uno nombra algo visible.
Respuesta B. Correcto. Pide en positivo, fija el formato de salida y contempla explícitamente el caso sin defectos, que es donde más alucinan los generativos.
Las tres reglas que resuelven la mayoría de los casos: pedir en positivo en lugar de en negativo, nombrar lo que se busca en vez de preguntar si algo está bien, y separar conceptos con un punto cuando el modelo es Grounding DINO. Para un VLM, además, conviene decir el formato de salida que esperas.
Responde a dos preguntas y sale el modelo, con la línea para empezar.
Ordena tus textos candidatos frente a la imagen. Es el más rápido y ligero, ideal como primer filtro de un catálogo.
CLIPModel.from_pretrained("openai/clip-vit-base-patch32")
Genera descripciones y responde preguntas sencillas sobre la imagen, con un coste muy inferior al de un VLM.
BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
Empieza por BLIP. Si necesitas que la frase razone o siga instrucciones, salta a Qwen-VL asumiendo el coste.
Salesforce/blip-image-captioning-base y, si hace falta, Qwen/Qwen2.5-VL-7B-Instruct
Le das una frase y devuelve cajas, sin haber sido entrenado en esa categoría. Separa conceptos con un punto.
AutoModelForZeroShotObjectDetection.from_pretrained("IDEA-Research/grounding-dino-base")
Razona, compara y devuelve JSON con los campos que le pidas. Es el más pesado, así que resérvalo para donde aporte.
Qwen/Qwen2.5-VL-7B-Instruct
Razonar y extraer estructura es caro. Si necesitas volumen, resuelve primero con CLIP o Grounding DINO y manda al VLM solo los casos dudosos.
Ese filtrado en dos etapas suele bajar el coste un orden de magnitud sin perder los casos que importan.
Siete comprobaciones para modelos que hablan con mucha seguridad.
Compara CLIP, BLIP, Grounding DINO y Qwen con la misma imagen.
Usa la misma imagen para separar capacidades: CLIP ordena textos, BLIP genera una descripción, Grounding DINO localiza conceptos y Qwen responde instrucciones. Registra el prompt, el modelo y el error observado; una salida más larga o fluida no implica una respuesta más correcta.