De texto a imagen: fundamentos de CLIP
Última hora: Los adolescentes están recurriendo a TikTok como su motor de búsqueda favorito, y al parecer funciona mejor de lo que pensarías. Esto no es sorprendente porque los motores de búsqueda tradicionales no siempre encuentran lo que quieres. Especialmente si eres una persona visual como yo, probablemente encontrarías las imágenes y los videos mucho más intuitivos y agradables que tener que recorrer líneas de texto. Sin embargo, ¿alguna vez te has preguntado cómo entienden las máquinas un texto dado y lo emparejan con las imágenes que devuelven?
En esta serie de blog, te presentaremos la recuperación de imágenes basada en textos, o servicios de texto a imagen. Texto a imagen siempre ha sido una aplicación multimodal importante, y la industria solía depender de soluciones indirectas que requieren una enorme cantidad de datos generados por usuarios para agrupar imágenes y descubrir sus relaciones semánticas. Eso fue así hasta el año pasado, cuando OpenAI lanzó una bomba en la industria con el lanzamiento de CLIP. OpenAI utilizó una cantidad asombrosa de 400 millones de pares texto-imagen para construir CLIP, de modo que pueda aprender conceptos visuales basados en entradas de lenguaje natural. Ahora, necesitamos conocer algunos conceptos básicos para entender los componentes básicos de los algoritmos de búsqueda, CLIP y texto a imagen.
Algoritmos de búsqueda y similitud semántica
Los algoritmos de búsqueda, ya sean tradicionales o de nueva escuela, unimodales o multimodales, no pueden prescindir de la medida de la similitud semántica, o mejor dicho, de la distancia semántica entre dos cosas. Esto puede sonar un poco abstracto, así que veamos algunos ejemplos. Empecemos con el espacio unidimensional de los enteros, que probablemente ha estado grabado en tu ADN desde la escuela primaria (aunque probablemente no se expresara así en aquel entonces). Ahora tenemos 5 enteros positivos {1, 5, 6, 8, 10}; dime, ¿qué número es el más cercano a 5? Sí, es 6. Felicidades por graduarte de tu infancia. La razón es que 6 tiene la distancia más corta desde 5, que es 1. La distancia aquí es la distancia semántica entre 5 y 6.
Figura 1 Un espacio unidimensional de enteros
Ahora que estás en machine learning, demos un pequeño paso adelante para ver cómo se realiza la búsqueda de texto tradicional. Si hablas con alguien que haya hecho búsqueda de texto antes, entonces lo más probable es que escuches TF-IDF muchas veces. TF se refiere a term frequency, es decir, frecuencia de términos. Imagina que hay un espacio de alta dimensión con tantas dimensiones como palabras hay en un diccionario. Si contamos el número de ocurrencias de cada palabra en un artículo y establecemos este número como el valor en la dimensión correspondiente de este espacio, podemos describir cualquier artículo como una distribución de vectores dispersos en este espacio vectorial de palabras (dispersos porque un artículo normalmente cubre solo una fracción muy pequeña de las palabras del diccionario).
Figura 2 Una demostración del espacio vectorial de palabras
Esta es una forma de pensar muy simple pero práctica. Como se muestra arriba, si dos artículos son similares en su campo o contenido, entonces los vectores correspondientes a estos dos artículos no deberían estar tan separados en el espacio vectorial de palabras. Si los dos artículos son idénticos, entonces la distancia entre sus vectores de palabras será 0. En la búsqueda de texto, extendemos el espacio unidimensional de enteros positivos de nuestro primer ejemplo a un espacio vectorial de palabras de alta dimensión, pero básicamente comparten el mismo enfoque: definir un espacio que pueda usarse para describir la semántica de los datos y determinar la distancia entre ellos.
Demos otro pequeño paso (sí, lo veías venir). Ahora que ya tenemos los textos, ¿por qué no mapear también la semántica de las imágenes al espacio vectorial de palabras para que podamos lograr la multimodalidad texto-imagen?
Pero, por supuesto, no es tan fácil. Básicamente, los textos nos dan su semántica gratis: tienen "palabras" como una unidad semántica natural. Las imágenes no tienen eso. No podemos usar sus píxeles individuales para definir sus significados.
El enigma de vectorizar sin unidades semánticas naturales solía atormentar al campo de la búsqueda de imágenes y de los datos no estructurados en general. La mayoría de los tipos de datos (imágenes, videos, audio, nubes de puntos, etc.) no vienen con unidades semánticas naturales. No pudo resolverse de manera efectiva hasta que los datos y la potencia de cómputo se volvieron lo suficientemente baratos y las redes neuronales se hicieron populares. Veamos cómo resuelven este problema las redes neuronales.
Figura 3 Capas y arquitecturas de redes neuronales convolucionales
Una de las grandes características de una red neuronal profunda es que es "lo suficientemente profunda" (De nada). En la figura anterior, la entrada a la izquierda es una imagen de 224 x 224, y la salida a la derecha es un vector de 4096 dimensiones. De izquierda a derecha, una imagen pasa por muchas capas de la red neuronal, y la red neuronal comprime gradualmente la información espacial de los píxeles de la imagen original en información semántica. En este proceso, podemos ver que la dimensión espacial se va estrechando, pero la dimensión semántica se va alargando (no es la afirmación más precisa, pero no he encontrado una mejor manera de decirlo). En esencia, este proceso es un mapeo de la semántica de la imagen a un espacio vectorial real con 4096 dimensiones. En comparación con las técnicas descritas anteriormente, vectorizar mediante redes neuronales profundas tiene varias ventajas evidentes:
- No requiere que los datos originales tengan unidades semánticas naturales y directamente segmentables, como “palabras”.
- La definición de “similitud de datos” es flexible y está determinada por los datos de entrenamiento y la función objetivo, y puede personalizarse para características específicas de la aplicación.
- El proceso de vectorización de datos es el proceso de inferencia del modelo, que implica principalmente operaciones matriciales y puede aprovechar las capacidades de aceleración de las GPU modernas.
Lo que ha hecho CLIP es conectar textos e imágenes de forma intermodal. En cuanto a los datos, OpenAI ha desarrollado un conjunto de datos a gran escala de pares texto-imagen, WIT (WebImageText). El modelo se entrena utilizando un enfoque de aprendizaje contrastivo para predecir si las imágenes y los textos deben emparejarse. Su diseño es bastante simple:
- Realizar codificación de características para textos e imágenes respectivamente;
- Proyectar las características de texto e imagen desde sus respectivos espacios de características unimodales hacia un espacio de características multimodal;
- Dentro del espacio multimodal, la distancia entre los vectores de características de textos e imágenes que se supone que son pares (muestras positivas) debe ser lo más cercana posible, y viceversa para las muestras negativas.
Figura 4 Aprendizaje de modelos visuales transferibles a partir de supervisión del lenguaje natural. Fuente de la imagen: https://arxiv.org/pdf/2103.00020.pdf
La clave aquí es el segundo paso, que consiste en proyectar características unimodales de textos e imágenes en un espacio de características multimodal a través de la capa de proyección. Esto significa que podemos mapear la semántica de imágenes y textos en el mismo espacio de alta dimensión. Este espacio semántico es el puente que CLIP tiene preparado para la búsqueda intermodal texto-imagen. ¡Ahora podemos codificar un fragmento de texto descriptivo como un vector, encontrar los vectores de imágenes con semántica similar y luego encontrar la imagen original que queremos a través de estos vectores de imagen!
En conjunto, es la misma fórmula clásica: espacio vectorial más similitud semántica. La importancia de CLIP es que nos ayuda a crear un espacio de alta dimensión que unifica la semántica de textos e imágenes, donde cuanto más cercana es la semántica de textos e imágenes, menor es la distancia entre los vectores correspondientes.
Componentes básicos de un servicio de texto a imagen
Un servicio típico de texto a imagen contiene tres partes: lado de la solicitud (textos), algoritmo de búsqueda (el “a”) y bases de datos subyacentes (imágenes).
Las bases de datos contienen imágenes originales, sus vectores y el modelo de inferencia que codifica las imágenes originales en vectores semánticos. En consecuencia, el lado de la solicitud implica principalmente el modelo de inferencia que codifica textos en vectores semánticos.
La parte “a” es el proceso que conecta las solicitudes, la base de datos vectorial y la base de datos de imágenes. Un texto del lado de la solicitud pasa por un modelo para obtener su vector, que luego se comparará en la base de datos vectorial para encontrar los topK vectores de imagen más similares. Los resultados se devuelven una vez que el programa localiza las imágenes originales que corresponden a los vectores.
Figura 5 Componentes básicos de un servicio de texto a imagen
Conclusión
¡Ahora conoces los fundamentos de la búsqueda de texto a imagen y CLIP! En el próximo artículo, practicaremos lo que hemos aprendido aquí construyendo un prototipo de servicio de texto a imagen, ¡en solo cinco minutos!
Si te gusta este artículo, ¿por qué no echas un vistazo a nuestro proyecto? Agradecemos estrellas, forks o incluso solo un pequeño clic de tu parte. ¡No dudes en hacernos llegar tus preguntas en Slack también!
Acerca de la serie
“De texto a imagen” es una serie de blogs que presenta cómo usar CLIP para construir un servicio de texto a imagen a gran escala, incluyendo:
- Comprender algoritmos de búsqueda, CLIP y texto a imagen;
- Construir una demo de texto a imagen en 5 minutos;
- Tema avanzado 1: Implementar una base de datos vectorial para recuperación vectorial a gran escala
- Tema avanzado 2: Implementar un servicio de inferencia que te permita procesar más de 1000 QPS de solicitudes de inferencia
- Tema avanzado 3: Compresión de datos vectoriales
Sigue leyendo

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Enhance legal document analysis with Zilliz Cloud’s Semantic Search and RAG. Improve accuracy, efficiency, and scalability for contracts, case law, and compliance.



