El modelo base de CLIP

Base model of CLIP

Resumen del artículo: Aprendizaje de modelos visuales transferibles a partir de la supervisión del lenguaje natural

En este artículo vamos a analizar el documento detrás de CLIP (Entrenamiento previo de imágenes y lenguaje contrastivo). Extraeremos los conceptos clave y los desglosaremos para que sean fáciles de entender. Además, las imágenes y los gráficos de datos están anotados para aclarar dudas.

Fuente de la imagen

Artículo: Aprendizaje de modelos visuales transferibles a partir de la supervisión del lenguaje natural

Código: https://github.com/OpenAI/CLIP

Primera publicación: 26 de febrero de 2021

Autores: Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever

Categoría: aprendizaje profundo multimodal, visión por computadora, procesamiento del lenguaje natural, modelos fundamentales, aprendizaje de representaciones

Esquema

  1. Contexto y antecedentes
  2. Método
  3. Experimentos
  4. Lecturas y recursos adicionales

Contexto y antecedentes

CLIP (Entrenamiento previo de imágenes y lenguaje contrastivo) es un modelo multimodal que aprende la correspondencia entre el lenguaje natural y las imágenes. Se entrena con 400 millones de pares de texto-imágenes recopilados de Internet. Como descubriremos más adelante en este artículo, CLIP tiene un rendimiento destacado en tareas diferentes a las que fue entrenado, sin necesidad de realizar ningún ajuste fino.

Los objetivos de CLIP son:

  1. Aplicar el éxito de las técnicas de entrenamiento previo a gran escala conocidas en el procesamiento del lenguaje natural (por ejemplo, la familia GPT, T5 y BERT) a la visión por computadora.
  2. Permitir capacidades flexibles de cero disparo utilizando el lenguaje natural en lugar de un conjunto fijo de etiquetas de clase.

¿Por qué es esto importante, te preguntarás? En primer lugar, muchos modelos de visión por computadora se entrenan con conjuntos de datos etiquetados obtenidos de la colaboración de la multitud. Estos conjuntos de datos a menudo contienen cientos de miles de muestras. Algunas excepciones están en el rango de millones de muestras individuales o de dos dígitos. Como puedes imaginar, es un proceso muy costoso y que consume mucho tiempo. Por otro lado, los conjuntos de datos para modelos de lenguaje natural suelen ser varios órdenes de magnitud más grandes y se obtienen raspando Internet. En segundo lugar, si se ha entrenado un modelo de detección de objetos en ciertas clases y se desea agregar una clase adicional, sería necesario etiquetar esta nueva clase en los datos y volver a entrenar el modelo.

La capacidad de CLIP para combinar características de lenguaje natural e imágenes, junto con su rendimiento de cero disparo, ha llevado a su amplia adopción en muchos otros modelos fundamentales populares, como UnCLIP, EVA, SAM, Diffusion Estable, GLIDE o VQGAN-CLIP, por nombrar algunos.

Método

Ahora vamos a sumergirnos en el método de CLIP. La imagen que se muestra a continuación en la Fig.1 muestra la arquitectura de CLIP y el proceso de entrenamiento.

Fig. 1 — Arquitectura y proceso de entrenamiento de CLIP. Fuente de la imagen + anotaciones del autor

La arquitectura del modelo consta de dos modelos de codificador, uno para cada modalidad. Para el codificador de texto se utilizó un transformador, mientras que el codificador de imágenes utiliza una versión de ResNet o ViT (Transformador de Visión). Una transformación lineal aprendida, una para cada modalidad, transforma las características en incrustaciones de tamaño coincidente. Por último, se calcula la similitud coseno entre cada una de las incrustaciones de modalidad opuesta y se escala por un escalar de temperatura aprendido. Durante el entrenamiento, se maximiza la similitud coseno entre los pares coincidentes y se minimiza para los pares incorrectos, de ahí el término “contrastivo” en el nombre del marco de trabajo.

Existen algunas sutilezas que son cruciales para el éxito, además del gran conjunto de datos, por supuesto. Primero, el enfoque de aprendizaje contrastivo depende en gran medida del tamaño del lote N. Cuantas más muestras negativas se proporcionen junto con las correctas, más fuerte será la señal de aprendizaje. CLIP fue entrenado con un tamaño de lote de 32,768, que es bastante grande. Segundo, CLIP no aprende una coincidencia de las palabras exactas, sino una tarea proxy más fácil para aprender solo el texto en su conjunto, también llamado bag of words (BoW).

Dato curioso: La versión de CLIP que utiliza un codificador de imágenes ResNet50x64 fue entrenado durante 18 días en 592 V100 GPUS, mientras que la versión con el modelo ViT fue entrenado durante 12 días en 256 V100 GPUS. En otras palabras, más de 29 años y más de 8 años en una sola GPU respectivamente (ignorando el hecho de que se utilizaría un tamaño de lote diferente).

Una vez que el modelo está entrenado, se puede utilizar para realizar la clasificación de objetos en imágenes. La pregunta es: ¿cómo realizar la clasificación utilizando un modelo que no ha sido entrenado para clasificar imágenes ni tiene etiquetas de clase de entrada, sino indicaciones de texto? La Figura 2 muestra cómo:

Fig. 2 — Arquitectura de CLIP para la clasificación de imágenes. Fuente de la imagen + anotaciones por el autor

Una etiqueta de clase se puede ver como una indicación de texto formada por una sola palabra. Para indicarle al modelo qué clases están disponibles para la tarea de clasificación, se introduce un conjunto de N clases en el modelo. Esto es una gran ventaja en comparación con los modelos de clasificación entrenados en un conjunto fijo de etiquetas. Ahora podemos introducir 3 clases o 100; es nuestra elección. Como veremos más adelante, para mejorar el rendimiento de CLIP, la etiqueta de clase se transforma en una indicación para proporcionar más contexto al modelo. Cada indicación se alimenta al codificador de texto y luego se transforma en un vector de incrustación.

La imagen de entrada se introduce en el codificador de imágenes para obtener el vector de incrustación.

A continuación, se calcula la similitud del coseno para cada par de incrustaciones de texto e imagen. Se aplica un Softmax a los valores de similitud obtenidos para formar una distribución de probabilidades. Por último, se selecciona el valor con la probabilidad más alta como la predicción final.

Experimentos y Ablaciones

El documento de CLIP presenta una gran cantidad de experimentos y ablaciones. Aquí cubriremos cinco, de los cuales considero que son importantes para entender el éxito de CLIP. Primero, los resultados clave (como los formulan los autores de CLIP) y luego profundizaremos en los detalles:

  1. Efficiencia de entrenamiento: CLIP es mucho más eficiente en transferencia sin entrenamiento que nuestra línea de base de subtítulos de imágenes
  2. Formato de entrada de texto: El diseño de indicaciones y la combinación mejoran el rendimiento sin entrenamiento
  3. Rendimiento sin entrenamiento: CLIP sin entrenamiento es competitivo con nuestra línea de base completamente supervisada
  4. Rendimiento con pocos ejemplos: CLIP sin entrenamiento supera a las sondas lineales con pocos ejemplos
  5. Cambio de distribución: CLIP sin entrenamiento es mucho más robusto al cambio de distribución que los modelos estándar de ImageNet

Eficiencia de entrenamiento

Durante el entrenamiento, el codificador de imágenes y el codificador de texto se entrenan de manera conjunta, es decir, con un solo objetivo de entrenamiento y al mismo tiempo. No solo CLIP realiza un esquema de aprendizaje contrastivo, sino que las indicaciones de texto se comparan en su conjunto con una imagen dada, por lo que el orden de las palabras no importa. Es simplemente un “bag of words” (saco de palabras). La frase “mi nombre es Sascha” da como resultado la misma incrustación que “Sascha nombre es mi”.

Predecir un conjunto de palabras en lugar de las palabras correctas y su posición en una frase es un objetivo proxy mucho más fácil. La Figura 3 a continuación muestra la precisión sin entrenamiento en ImageNet en función del número de muestras de entrenamiento del modelo transformador inicial entrenado para predecir palabras exactas, el modelo transformador inicial entrenado para predecir un conjunto de palabras y el modelo CLIP que realiza aprendizaje contrastivo utilizando conjuntos de palabras.

“CLIP es mucho más eficiente en transferencia sin entrenamiento que nuestra línea de base de subtítulos de imágenes” – Autores de CLIP

Fig. 3 — Eficiencia sin entrenamiento. Fuente de la imagen + anotaciones por el autor

Formato de Entrada de Texto

Como hemos visto en la Fig. 2, para realizar la clasificación de objetos, la etiqueta de clase se ha convertido en una indicación de texto. Por supuesto, esto no fue por casualidad, ya que CLIP estaría perfectamente bien con una sola palabra. Se hizo para aprovechar la descriptividad del lenguaje y proporcionar contexto para resolver posibles ambigüedades. Tomemos la palabra “boxeador” como ejemplo. Podría ser un tipo de perro o un tipo de atleta. Los autores de CLIP han demostrado que el formato de la indicación de texto importa mucho y puede mejorar el rendimiento e incrementar la eficiencia.

“La ingeniería y el conjunto de indicaciones mejoran el rendimiento sin entrenamiento” — Autores de CLIP

Fig. 4— Ingeniería y conjunto de indicaciones vs. nombres de clase sin contexto. Fuente de la imagen + anotaciones por el autor

Rendimiento sin entrenamiento

En otro experimento, los autores compararon el rendimiento de clasificación de imágenes sin entrenamiento de CLIP con un modelo que fue entrenado específicamente en el conjunto de datos de comparación.

“CLIP sin entrenamiento es competitivo con una línea de base totalmente supervisada” — Autores de CLIP

Fig. 5— CLIP sin entrenamiento vs. línea de base supervisada. Fuente de la imagen + anotaciones por el autor

Rendimiento con pocos ejemplos

Mientras que los clasificadores sin entrenamiento no se ajustan a la tarea específica, los detectores con pocos ejemplos sí lo hacen. Los autores experimentaron con múltiples modelos pre-entrenados disponibles públicamente y compararon su rendimiento con pocos ejemplos en 20 conjuntos de datos diferentes, en comparación con CLIP sin entrenamiento y CLIP con pocos ejemplos. Los modelos con pocos ejemplos fueron ajustados con 1, 2, 4, 8 y 16 ejemplos por clase.

Curiosamente, CLIP sin entrenamiento tiene un rendimiento aproximadamente igual al de CLIP con 4 ejemplos.

Si se compara CLIP con otros modelos, se debe tener en cuenta que los modelos disponibles públicamente para comparación (es decir, BiT, SimCLR y ResNet) han sido pre-entrenados en conjuntos de datos diferentes y más pequeños que el modelo CLIP.

“CLIP sin entrenamiento supera a las pruebas lineales con pocos ejemplos” — Autores de CLIP

Fig. 6— Rendimiento con pocos ejemplos. Fuente de la imagen + anotaciones por el autor

Cambio de Distribución

En términos generales, la robustez de un modelo frente a cambios de distribución se refiere a su capacidad para desempeñarse igual de bien en datos de una distribución diferente a la distribución de datos en la que fue entrenado. Idealmente, tendría un rendimiento igualmente bueno. En la realidad, su rendimiento disminuye.

La robustez de CLIP sin entrenamiento se comparó con un modelo ResNet101 de ImageNet. Ambos modelos se evaluaron en cambios de distribución naturales de ImageNet, como se muestra en la Fig. 7.

“CLIP sin entrenamiento es mucho más robusto ante cambios de distribución que los modelos estándar de ImageNet” — Autores de CLIP

Fig. 7 — Cambio de distribución. Fuente de la imagen + anotaciones por el autor

Lecturas y recursos adicionales

Tal como se mencionó al principio de este artículo, CLIP ha sido ampliamente adoptado por una gran cantidad de proyectos.

A continuación se muestra una lista de documentos que utilizan CLIP:

  1. [UnCLIP] Generación jerárquica de imágenes condicionales de texto con latentes CLIP
  2. [EVA] Explorando los límites del aprendizaje de representación visual enmascarada a gran escala
  3. [SAM] Segmentar cualquier cosa
  4. [Stable Diffusion] Síntesis de imágenes de alta resolución con modelos de difusión latente
  5. [GLIDE] Hacia la generación y edición de imágenes fotorrealistas con modelos de difusión guiados por texto
  6. [VQGAN-CLIP] Generación y edición de imágenes de dominio abierto con orientación de lenguaje natural

Y una lista de repositorios si desea sumergirse en la implementación y probarlo usted mismo:

  • Repositorio oficial de OpenAI
  • Notebook de Python para experimentar con CLIP
  • OpenCLIP: Implementación de código abierto de CLIP

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

La inteligencia artificial ayuda a los robots a manipular objetos con todo su cuerpo

Con una nueva técnica, un robot puede razonar eficientemente sobre objetos en movimiento utilizando más que solo sus ...

Inteligencia Artificial

Google AI propone E3-TTS, una solución sencilla y eficiente de texto a voz basada en difusión para convertir texto en voz de manera fácil y completa.

En el aprendizaje automático, un modelo de difusión es un modelo generativo comúnmente utilizado para tareas de gener...

Inteligencia Artificial

Drones con Desfibriladores Están Salvando Vidas

Los investigadores encontraron que los drones con desfibriladores externos automatizados llegaron al lugar de un pres...

Inteligencia Artificial

Explorando NLP - Comenzando con NLP (Paso #1)

Este semestre, tengo NLP como parte de mi plan de estudios. ¡YAY! Como parte de una próxima evaluación para la materi...

Inteligencia Artificial

Este artículo sobre IA revela Cómo los modelos de lenguaje grandes se comparan con los motores de búsqueda en eficiencia de verificación de hechos

Investigadores de diferentes universidades comparan la eficacia de los modelos de lenguaje (LLMs) y los motores de bú...

Ciencia de Datos

El Desafío de Ver la Imagen Completa de la Inteligencia Artificial

Cada vez es más difícil tener conversaciones reflexivas sobre el cambiante (y rápidamente creciente) impacto de la IA...