Aprovechamiento de modelos de embeddings para la búsqueda impulsada por IA
A medida que la IA continúa evolucionando, la forma en que buscamos y recuperamos información se ha transformado, particularmente al tratar con grandes cantidades de datos no estructurados. Los métodos tradicionales de búsqueda basada en palabras clave tienen dificultades para manejar la complejidad de los conjuntos de datos modernos, especialmente cuando se trata de comprender el significado y el contexto. Aquí es donde entran en juego los modelos de embeddings y embeddings vectoriales, que permiten a los sistemas captar las relaciones entre palabras, imágenes y otros tipos de datos.
En un reciente Unstructured Data Meetup, Aamir Shakir, cofundador de Mixedbread, compartió perspectivas sobre cómo construir y entrenar modelos de embeddings para crear sistemas de IA de alto rendimiento, en particular Generación Aumentada por Recuperación (RAG) a escala. En este blog, recapitularemos los puntos clave de su charla y exploraremos el papel de los modelos de embeddings en la potenciación de sistemas de búsqueda avanzados. También cubriremos técnicas para entrenar, escalar y almacenar embeddings de manera eficiente, incluido el uso de métodos de compresión y bases de datos vectoriales como Milvus y Zilliz Cloud (el Milvus gestionado).
Aamir Shakir hablando en el Unstructured Data Meetup de SF de agosto
Si quieres aprender más sobre este tema, recomendamos ver la charla de Aamir en YouTube.
¿Qué son los modelos de embeddings y por qué son importantes para los datos no estructurados?
En un mundo impulsado por los datos, las organizaciones están abrumadas por enormes cantidades de datos no estructurados: registros, documentos internos, audio, videos y más. Extraer información significativa de datos tan diversos puede ser un desafío considerable. Aquí es donde entran en juego los modelos de embeddings y los embeddings vectoriales.
Los modelos de embeddings son un tipo de modelo de aprendizaje automático diseñado para transformar datos no estructurados en representaciones numéricas y proyectarlos en un espacio de alta dimensión. Estas representaciones se llaman embeddings vectoriales. Capturan las relaciones y los significados dentro de los datos, lo que permite a las computadoras entenderlos, procesarlos y analizarlos de manera más efectiva. Cuanto más cerca se encuentren estos vectores en el espacio vectorial, más similares serán semánticamente.
Los modelos de embeddings son herramientas fundamentales en una amplia gama de tareas, desde el procesamiento del lenguaje natural (NLP) hasta la visión por computadora y más allá.
Comprensión semántica
Los modelos de embeddings codifican el significado de palabras, oraciones o documentos en vectores, capturando sus relaciones semánticas. Al representar los datos de esta manera, estos modelos permiten que las máquinas comprendan el contexto y el significado, habilitando tareas más sofisticadas como la respuesta a preguntas, la traducción y el resumen.
Capacidades multilingües y multimodales
Los modelos avanzados de embeddings pueden manejar múltiples idiomas y tipos de datos (modalidades) como texto, imágenes y audio. Esta capacidad permite la comparación y recuperación de información entre diferentes idiomas o formatos de datos. Por ejemplo, un solo modelo podría recuperar contenido similar entre texto e imágenes, o traducir y alinear texto en múltiples idiomas, todo dentro del mismo espacio vectorial.
Transferibilidad
Los modelos de embeddings preentrenados a menudo pueden adaptarse (mediante técnicas como el ajuste fino) para diferentes tareas posteriores. En lugar de entrenar un modelo desde cero, puedes aprovechar un modelo preentrenado y modificarlo para tareas específicas, ahorrando tiempo y recursos computacionales. Esta transferibilidad hace que los modelos de embeddings sean altamente eficientes para crear aplicaciones de IA, ya sea para clasificación, sistemas de recomendación u otros casos de uso.
Problemas con los enfoques de búsqueda clásicos
Antes del auge de los embeddings, se utilizaban métodos de búsqueda tradicionales como la frecuencia de término-frecuencia inversa de documento (TF-IDF) o la coincidencia basada en palabras clave para la recuperación de información. Sin embargo, estos enfoques funcionan bien para casos de uso simples, pero no logran capturar las relaciones semánticas entre las palabras. También tienen limitaciones significativas al abordar las necesidades de información más complejas de hoy. Existen varias limitaciones:
Dificultad con la ambigüedad
Uno de los principales desafíos de los métodos tradicionales es su dificultad para manejar la ambigüedad.
Las palabras con múltiples significados (polisemia) y diferentes palabras con el mismo significado (sinonimia) plantean un desafío para los métodos tradicionales y conducen a resultados inexactos. Considera la palabra “bank.” Una búsqueda de “bank” podría devolver resultados sobre instituciones financieras cuando, en realidad, el usuario estaba buscando información sobre riberas.
Los embeddings resuelven este problema al considerar el contexto en el que aparece una palabra. La palabra “bank” en finanzas tendrá una representación vectorial diferente de “bank” en el contexto de la naturaleza. Esto ayuda a los sistemas de búsqueda a devolver resultados que no solo son relevantes, sino también contextualmente precisos.
Representaciones fijas
Otra limitación de los métodos tradicionales es su uso de representaciones fijas para palabras o documentos. Estas representaciones no cambian según diferentes contextos con el tiempo, lo que puede limitar su uso en la recuperación dinámica de información.
Escalabilidad limitada
Los métodos tradicionales tienen dificultades para mantener el rendimiento y la eficiencia a medida que los datos crecen y se vuelven más complejos, principalmente cuando se trata de tareas de recuperación de información a escala web. Por otro lado, los sistemas de búsqueda semántica que trabajan con embeddings vectoriales están diseñados para escalar. Una vez que los datos se convierten en vectores y se almacenan en una base de datos vectorial como Milvus, incluso los datos vectoriales a escala de miles de millones pueden manejarse de manera efectiva y utilizarse para una recuperación rápida y precisa. Esto hace que los embeddings sean importantes para sistemas como los sistemas de recomendación y RAG.
Estas limitaciones muestran la necesidad de embeddings para crear sistemas de búsqueda modernos que puedan comprender y recuperar contenido relevante usando el significado en lugar de palabras clave.
Modelos de embeddings y sus problemas de generalización
Los modelos de embeddings se han convertido en una piedra angular en las aplicaciones de IA, desde RAG hasta sistemas de recomendación y más allá. Si bien estos modelos son muy efectivos para codificar datos y facilitar tareas como la búsqueda y la clasificación, no están exentos de limitaciones, particularmente cuando se trata de generalización.
Manejo de términos fuera del vocabulario (OOV): Muchos modelos de embeddings tienen un vocabulario fijo, lo que causa problemas al encontrarse con palabras nuevas que no formaban parte de los datos de entrenamiento.
Rendimiento de cola larga: Aunque los modelos de embeddings suelen funcionar bien con palabras y conceptos comunes, podrían tener dificultades con términos muy específicos.
Especificidad del dominio: Los modelos de embeddings entrenados con datos de un dominio pueden tener un rendimiento deficiente cuando se aplican a un dominio diferente. Esta limitación se debe a que los embeddings contienen los patrones estadísticos de los datos de entrenamiento, que pueden no ser eficaces para nuevos tipos de datos. Por lo tanto, los modelos de embeddings suelen requerir ajuste fino con datos específicos del dominio para alcanzar el mejor rendimiento.
Sesgo en los embeddings: Los modelos de embeddings también son sensibles al sesgo. Se entrenan con conjuntos de datos grandes, a veces no curados. Por lo tanto, pueden absorber por error sesgos sociales presentes en los datos.
Variaciones contextuales: Los modelos de embeddings estáticos asignan el mismo vector a una palabra independientemente del contexto. Esto puede ser un problema para palabras que pueden tener más de un significado.
Cómo construir y entrenar un modelo de embeddings de vanguardia
Construir un modelo de embeddings de alta calidad, especialmente para sistemas complejos como RAG, requiere un enfoque cuidadoso para garantizar escalabilidad, precisión y eficiencia. Los modelos de embeddings se construyen normalmente utilizando redes neuronales, y la calidad de los embeddings que generan depende en gran medida del proceso de entrenamiento. Para lograr un rendimiento de vanguardia (SOTA), deben seguirse varios pasos clave:
Preentrenamiento con conjuntos de datos grandes y diversos
Un primer paso fundamental para construir un modelo de embeddings robusto es el preentrenamiento con conjuntos de datos grandes y diversos. Este preentrenamiento expone al modelo a una amplia variedad de patrones, estructuras y contextos lingüísticos, lo que le permite aprender características generalizables que pueden aplicarse a diversas tareas posteriores. La idea es dar al modelo una comprensión amplia de los datos, lo que le permite funcionar bien no solo con entradas familiares, sino también con datos nuevos e inéditos.
Hay diferentes tipos de embeddings, entre ellos:
Embeddings de palabras son vectores densos de baja dimensión que proyectan palabras en un espacio vectorial continuo. Son útiles para capturar relaciones semánticas y sintácticas.
Embeddings conceptuales son representaciones vectoriales de conceptos en un espacio semántico que capturan sus relaciones y atributos, que frecuentemente provienen de grafos de conocimiento.
Embeddings contextuales son representaciones dinámicas de palabras generadas por modelos como BERT y GPT. Consideran el contexto circundante de cada palabra en una frase para producir embeddings sensibles al contexto.
La siguiente ilustración te ayudará a comprender el proceso de entrenamiento de los modelos de embeddings:
Fase de entrenamiento del modelo de embeddings
Tokenización descompone los datos de entrada en unidades más pequeñas (tokens), como palabras o subpalabras, creando un vocabulario para el modelo. El vocabulario es un conjunto de tokens únicos que el modelo utilizará para comprender y representar los datos durante el entrenamiento.
Inicialización de embeddings inicializa una matriz en la que un vector de embedding representa cada token del conjunto de datos. Esta matriz resume las relaciones y significados entre tokens, con vectores que normalmente oscilan entre 50 y 1.000 dimensiones.
Entrenamiento ajusta los parámetros del modelo para minimizar la distancia entre palabras semánticamente similares y maximizar la distancia entre palabras disímiles.
Ajuste fino para la optimización específica de tareas
Después del preentrenamiento, el ajuste fino es importante para optimizar el modelo para tareas específicas. Por ejemplo, si el sistema RAG se utiliza en un contexto legal, ajustamos finamente el modelo de embeddings con documentos legales. Al hacer esto, los embeddings mantienen vocabulario específico del dominio, lo que mejora el rendimiento del sistema RAG. Durante esta etapa, también ajustamos finamente el modelo para manejar datos estructurados y no estructurados adecuados para tareas de búsqueda multimodal y multilingüe.
Almacenamiento de embeddings vectoriales a escala
A medida que los modelos de embeddings se vuelven más avanzados, los vectores que producen pueden volverse cada vez más complejos. Si bien la complejidad del modelo no siempre implica vectores de mayor dimensionalidad, los modelos más grandes suelen generar embeddings con representaciones más detalladas, lo que a veces lleva a miles de dimensiones. Esto presenta desafíos tanto en términos de almacenamiento como de recuperación, especialmente cuando se trabaja con grandes conjuntos de datos o aplicaciones en tiempo real.
Para abordar estos desafíos, los métodos eficientes de almacenamiento y recuperación son cruciales. Técnicas como las bases de datos vectoriales, la búsqueda aproximada de vecinos más cercanos (ANN) y las estructuras de indexación optimizadas se utilizan comúnmente para garantizar que los embeddings puedan recuperarse rápidamente sin sacrificar el rendimiento. Además, las técnicas de compresión también son esenciales para reducir el tamaño de estos vectores de alta dimensionalidad sin perder su significado semántico.
Bases de datos vectoriales
Las bases de datos vectoriales como Milvus y Zilliz Cloud (la versión administrada de Milvus), están diseñadas específicamente para gestionar y recuperar eficientemente datos no estructurados en forma de embeddings vectoriales. Milvus es una base de datos vectorial de código abierto optimizada para almacenar y buscar vectores a megaescala. Utiliza búsquedas de vecinos más cercanos aproximados (ANN) para recuperar rápidamente embeddings relevantes, incluso al trabajar con bases de datos que contienen miles de millones de vectores. Zilliz Cloud ofrece capacidades más avanzadas en un servicio administrado, reduciendo la sobrecarga operativa de gestionar bases de datos vectoriales a escala.
Técnicas de compresión
Aunque los embeddings pueden almacenarse directamente en bases de datos vectoriales, almacenarlos a escala puede ser costoso. Aquí es donde las técnicas de compresión resultan útiles. La idea principal detrás de la compresión es reducir los requisitos de memoria y mejorar la velocidad de consulta. Un tipo es la cuantización binaria, y el otro es la cuantización escalar.
La cuantización binaria reduce cada característica de un embedding dado a un dígito binario, mientras que la cuantización escalar reduce el tamaño general de las dimensiones a un tipo de dato más pequeño, como un flotante de 2 bytes o un entero de 1 byte.
Por ejemplo, si una imagen está representada por tres características distintas, donde cada característica contiene un valor en el rango de una unidad de almacenamiento FLOAT-32, realizar cuantización binaria sobre este vector daría como resultado que cada una de las tres características se representara independientemente mediante un único dígito binario. Así, el vector que contiene tres valores FLOAT-32 se transformaría en un vector de tres dígitos binarios, como [1, 0, 1].
Comprensión de la cuantización binaria
La cuantización binaria es altamente efectiva para realizar búsquedas vectoriales en grandes conjuntos de datos debido a sus cálculos eficientes y menos complejos. En el caso de Milvus y los vectores binarios, Milvus utiliza la distancia de Hamming como métrica de similitud. Esta métrica puede calcular rápidamente la distancia entre dos vectores binarios almacenados. Aquí tienes un ejemplo de cómo funciona el método de distancia de Hamming.
Cómo funciona el método de distancia de Hamming
Ahora, utilizaremos la técnica de cuantización escalar para convertir embeddings float32 al formato int8. Este enfoque mapea el rango continuo de valores float32 a un conjunto discreto de 256 valores int8 distintos, que van de -127 a 127.
Para realizar la cuantización escalar:
Calcular el rango: Determina los valores mínimo y máximo para cada dimensión del embedding.
Determinar el paso de cuantización: Calcula el tamaño de paso necesario para distribuir los valores float32 de manera uniforme en el rango int8.
Cuantizar: Redondea cada valor float32 al valor int8 más cercano utilizando el tamaño de paso calculado.
Valores de -1.0 a 1.0 en valores int8 discretos
Con la cuantización escalar a int8, reducimos la precisión de los embeddings float32 originales para que cada valor se represente con un entero de 8 bits (4 veces más pequeño), disminuyendo así la cantidad de memoria necesaria para almacenarlos, al tiempo que se intenta preservar la mayor cantidad de información posible.
La economía de la compresión
Resumen
Los modelos de embedding, que proporcionan un enfoque flexible, escalable y semánticamente rico para la recuperación de información, están ayudando a definir la dirección de la búsqueda por similitud. Desde mejorar la agrupación y la minería bitextual hasta permitir la búsqueda multimodal y multilingüe, los embeddings ofrecen muchas oportunidades que los métodos tradicionales no pueden alcanzar.
Construir modelos de embedding de última generación para sistemas RAG de alta calidad requiere prestar especial atención al preentrenamiento, el ajuste fino y la escalabilidad. Zilliz Cloud y Milvus ayudan a gestionar embeddings a escala y a crear sistemas de búsqueda neuronal más inteligentes y receptivos.
Recursos adicionales
Sigue leyendo

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.

DeepRAG: Thinking to Retrieval Step by Step for Large Language Models
Discover DeepRAG, an advanced retrieval-augmented generation (RAG) model that improves LLM accuracy by retrieving only essential data through step-by-step reasoning.



