¿Qué es CLIP de OpenAI?
CLIP, que significa Contrastive Language-Image Pre-training (Pre-entrenamiento Contrastivo Lenguaje-Imagen), es una red neuronal desarrollada por OpenAI. Está diseñada para entender conceptos visuales a partir del lenguaje natural. En lugar de ser entrenado en un conjunto de datos curado con etiquetas específicas (como “gato” o “perro”), CLIP aprende de un conjunto de datos masivo y ruidoso de imágenes y sus correspondientes leyendas de texto extraídas de internet. Este método de entrenamiento único le permite realizar una amplia variedad de tareas de clasificación de imágenes sin haber sido entrenado explícitamente para ellas, una capacidad conocida como aprendizaje “zero-shot”.
Características Clave
- Clasificación de Imágenes Zero-Shot: Clasifica imágenes en categorías que defines sobre la marcha usando instrucciones en lenguaje natural, sin necesidad de reentrenar el modelo.
- Similitud Imagen-Texto: Dada una imagen y un conjunto de descripciones de texto, CLIP puede determinar qué texto describe mejor la imagen.
- Representación Visual Robusta: El modelo aprende una comprensión flexible y robusta de los conceptos visuales que a menudo generaliza mejor que los modelos tradicionales entrenados en conjuntos de datos específicos como ImageNet.
- Interfaz de Lenguaje Natural para la Visión: Cierra la brecha entre la visión y el lenguaje, permitiendo a los usuarios interactuar y buscar imágenes utilizando el lenguaje cotidiano.
Casos de Uso
- Moderación de Contenido: Marcar automáticamente imágenes que coincidan con descripciones textuales de contenido inapropiado o sensible.
- Búsqueda de Imágenes Mejorada: Construir motores de búsqueda que permitan a los usuarios encontrar imágenes utilizando frases descriptivas complejas en lugar de solo etiquetas simples.
- Guía de Modelos Generativos: La capacidad de CLIP para puntuar qué tan bien una imagen coincide con una instrucción fue un componente clave en la revolución temprana de texto a imagen, famosamente utilizado con modelos como VQGAN.
- Herramientas de Accesibilidad: Crear aplicaciones que puedan describir el contenido de una imagen para usuarios con discapacidad visual.
Para Empezar
Aquí tienes un ejemplo sencillo de “Hola Mundo” usando la librería transformers para ver cómo CLIP relaciona una imagen con instrucciones de texto.
Primero, asegúrate de tener las librerías necesarias instaladas: ```bash pip install transformers torch Pillow requests
Luego, puedes ejecutar el siguiente código de Python: ```python from PIL import Image import requests from transformers import CLIPProcessor, CLIPModel
Cargar el modelo pre-entrenado y el procesador desde Hugging Face
model = CLIPModel.from_pretrained(“openai/clip-vit-base-patch32”) processor = CLIPProcessor.from_pretrained(“openai/clip-vit-base-patch32”)
URL de una imagen para probar
url = “http://images.cocodataset.org/val2017/000000039769.jpg” image = Image.open(requests.get(url, stream=True).raw)
Preparar las instrucciones de texto y la imagen
El modelo determinará qué instrucción es una mejor descripción de la imagen
inputs = processor( text=[“una foto de un gato”, “una foto de un perro”], images=image, return_tensors=”pt”, padding=True )
Pasar las entradas al modelo
outputs = model(**inputs)
Los logits_per_image representan la puntuación de similitud entre la imagen y cada instrucción de texto
logits_per_image = outputs.logits_per_image
Aplicar softmax para obtener probabilidades
probs = logits_per_image.softmax(dim=1)
print(f”Probabilidades: {probs.tolist()[0]}”)
El resultado mostrará una probabilidad más alta para “una foto de un gato”
Precios
El modelo CLIP de OpenAI es de Código Abierto y se publica bajo la permisiva Licencia MIT. Los pesos del modelo y el código fuente están disponibles gratuitamente para investigación e integración en aplicaciones. Aunque el modelo en sí es gratuito, usarlo a través de una API de terceros o en una plataforma en la nube puede generar costos.