Elegir el modelo de incrustación adecuado para sus datos

¿Qué son los modelos de incrustación?
Los modelos de incrustación son modelos de aprendizaje automático que transforman datos no estructurados (texto, imágenes, audio, etc.) en vectores de tamaño fijo, también conocidos como incrustaciones vectoriales (incrustación dispersa, densa, binaria, etc.). Estos vectores capturan el significado semántico de los datos no estructurados, lo que facilita la realización de diversas tareas como la búsqueda de similitudes, el procesamiento del lenguaje natural (PLN), la visión por ordenador, la agrupación, la clasificación, etc.
Existen varios tipos de modelos de incrustación: incrustación de palabras, incrustación de frases, incrustación de imágenes, incrustación multimodal y muchos más.
Incorporación de palabras: Representan palabras como vectores densos. Algunos ejemplos son Word2Vec, GloVe y FastText.
Incrustaciones de frases**: Representan frases o párrafos enteros. Algunos ejemplos son Universal Sentence Encoder (USE) y Sentence-BERT.
Incrustación de imágenes**: Representan imágenes como vectores. Algunos ejemplos son modelos como ResNet y CLIP.
Incrustación multimodal**: Combinan diferentes tipos de datos (por ejemplo, texto e imágenes) en un único espacio de incrustación. CLIP de OpenAI es un ejemplo notable.
Modelos de incrustación y generación aumentada de recuperación (RAG)
La Generación Aumentada por Recuperación (RAG) es un patrón de la IA Generativa en el que puedes utilizar tus datos para aumentar el conocimiento del modelo generador LLM (como ChatGPT). Este enfoque es una solución perfecta para abordar los molestos problemas de alucinación de los LLM. También puede ayudarte a aprovechar tus datos privados o específicos del dominio para crear aplicaciones de GenAI sin preocuparte por los problemas de seguridad de los datos.
RAG consta de dos modelos diferentes, los modelos de incrustación y los modelos de lenguaje de gran tamaño (LLMs), que se utilizan ambos en modo de inferencia. Este blog presenta cómo elegir el mejor modelo de incrustación y dónde encontrarlo en función del tipo de datos y, posiblemente, del idioma o del dominio de especialidad, como el Derecho.
Cómo elegir el mejor modelo de incrustación para sus datos
Elegir el modelo de incrustación adecuado para tus datos requiere comprender tu caso de uso específico, el tipo de datos que tienes y los requisitos de rendimiento de tu aplicación.
Datos de texto: MTEB Leaderboard
La tabla de clasificación MTEB de HuggingFace es una ventanilla única para encontrar modelos de incrustación de texto. Para cada modelo de incrustación, puedes ver su rendimiento medio en tareas generales.
Una buena forma de empezar es clasificar en orden descendente por la columna "Promedio de recuperación ", ya que es la tarea más relacionada con la búsqueda vectorial. A continuación, busque el modelo más pequeño (GB de memoria).
- La dimensión de inserción es la longitud del vector, es decir, la parte y de f(x)=y, que obtendrá el modelo.
Max tokens es la longitud del trozo de texto de entrada, es decir, la parte x en f(x)=y, que puede introducir en el modelo.
Además de la tarea de recuperación, también puede filtrar por:
Idioma: francés, inglés, chino o polaco. Por ejemplo, tarea=recuperación e Idioma=chino.
- Por ejemplo, la tarea=recuperación e idioma=derecho, para modelos ajustados a textos jurídicos.
Desgraciadamente, como los datos de entrenamiento se han hecho públicos recientemente, algunas entradas de MTEB son modelos sobreajustados, con una clasificación engañosamente más alta de lo que sería realista en tus datos. Este blog de HuggingFace ofrece consejos para decidir si te fías de la clasificación de un modelo. Haz clic en el enlace del modelo (llamado "tarjeta del modelo").
Busca blogs y artículos** que expliquen cómo se ha entrenado y evaluado el modelo. Fíjese bien en los idiomas, los datos y las tareas en los que se ha entrenado el modelo. Busca también modelos creados por empresas de renombre. Por ejemplo, en la ficha del modelo voyage-lite-02-instruct, verás que aparecen otros modelos VoyageAI de producción, pero no éste. Es una pista. Ese modelo es un modelo de vanidad. **No lo utilice.
En la captura de pantalla de abajo, yo probaría la nueva entrada de Snowflake, "snowflake-arctic-embed-1" porque es de alto rango, lo suficientemente pequeña como para ejecutarla en mi portátil, y la tarjeta de modelo tiene enlaces a un blog y papel.
Captura de pantalla de Snowflake en la clasificación MTEB](https://assets.zilliz.com/Untitled_a6d5fa5d3e.png)
Una vez seleccionado el modelo de incrustación, lo bueno de utilizar modelos HuggingFace es que se puede cambiar de modelo cambiando **model_name** en el código.
importar antorcha
de sentence_transformers import SentenceTransformer
# Inicializar la configuración de torch
torch.backends.cudnn.deterministic = True
DEVICE = torch.device('cuda:3' if torch.cuda.is_available() else 'cpu')
# Cargar el modelo desde huggingface.
model_name = "WhereIsAI/UAE-Large-V1" # ¡Sólo cambia model_name para usar un modelo diferente!
encoder = SentenceTransformer(model_name, device=DEVICE)
# Obtén los parámetros del modelo y guárdalos para más tarde.
EMBEDDING_DIM = encoder.get_sentence_embedding_dimension()
MAX_SEQ_LENGTH_IN_TOKENS = encoder.get_max_seq_length()
# Imprimir los parámetros del modelo.
print(f "nombre_modelo: {nombre_modelo}")
print(f "EMBEDDING_DIM: {EMBEDDING_DIM}")
print(f "MAX_SEQ_LENGTH: {MAX_SEQ_LENGTH_IN_TOKENS}")
Datos de imagen: ResNet50
A veces se quieren buscar imágenes similares a una imagen de entrada. ¿Quizá busca más imágenes de gatos Scottish Fold? En este caso, subiría su imagen favorita de un gato Scottish Fold y pediría al motor de búsqueda que encontrara imágenes similares.
ResNet50 es un popular modelo de red neuronal convolucional (CNN) entrenado originalmente en 2015 por Microsoft con datos de ImageNet.
Del mismo modo, para la búsqueda inversa de vídeos, ResNet50 todavía puede incrustar vídeos. A continuación, se realiza una búsqueda inversa de similitud de imágenes en la base de datos de imágenes fijas de vídeo. El vídeo más cercano (excluyendo el de entrada) se devuelve al usuario como vídeo más similar.
Datos de sonido: PANNs
De forma similar a la búsqueda inversa de imágenes a partir de una imagen de entrada, también se puede realizar una búsqueda inversa de clips de audio a partir de un fragmento de sonido de entrada.
PANNs (Pretrained Audio Neural Networks) son modelos de incrustación populares para esta tarea porque están pre-entrenados en conjuntos de datos de audio a gran escala y son buenos en tareas como la clasificación y etiquetado de audio.
Imagen multimodal y datos de texto: SigLIP o Unum
En los últimos años han surgido modelos de incrustación que se entrenan con una mezcla de Datos no estructurados: Texto, Imagen, Audio o Vídeo. Estos modelos de incrustación capturan la semántica de varios tipos de datos no estructurados a la vez en el mismo espacio vectorial.
Los modelos de incrustación multimodal permiten utilizar texto para buscar imágenes, generar descripciones textuales de imágenes o realizar búsquedas inversas de imágenes a partir de una imagen de entrada.
CLIP (Contrastive Language-Image Pretraining) de OpenAI en 2021 solía ser el modelo de incrustación estándar. Sin embargo, a los profesionales les resultaba difícil utilizarlo porque había que afinarlo. En 2024, SigLIP, o sigmoidal-CLIP de Google, parece ser un CLIP mejorado, con informes de buenos resultados utilizando zero-shot prompts.
Las variantes de modelos pequeños de LLM se están haciendo populares. En lugar de requerir un gran clúster de computación en nube, pueden ejecutarse en ordenadores portátiles (como mi M2 Apple con sólo 16 GB de RAM). Los modelos pequeños utilizan menos memoria, lo que significa que tienen menor latencia y pueden funcionar potencialmente más rápido que los modelos grandes. Unum ofrece pequeños modelos de incrustación multimodal.
Datos multimodales de texto y/o sonido y/o vídeo
La mayoría de los sistemas RAG multimodales de texto a sonido utilizan un LLM generativo multimodal para convertir primero el sonido en texto. Una vez creados los pares sonido-texto, el texto se incrusta en vectores y se puede utilizar la GAR para recuperar el texto de la forma habitual. En el último paso, el texto se mapea de nuevo a sonido para terminar el bucle Text-to-Sound o viceversa.
Whisper de OpenAI puede transcribir voz a texto.
Text-to-speech (TTS) de OpenAI también puede convertir texto en audio hablado.
Los sistemas RAG multimodales de texto a vídeo utilizan un enfoque similar para mapear primero los vídeos en texto, incrustar el texto, buscar en el texto y devolver los vídeos como resultados de la búsqueda.
Sora de OpenAI puede convertir texto en vídeo. De forma similar a Dall-e, el usuario proporciona el texto y el LLM genera un vídeo. Sora también puede generar vídeos a partir de imágenes fijas u otros vídeos.
Resumen
En este blog se han tratado algunos modelos de incrustación populares utilizados en aplicaciones RAG.
Otros recursos
Evaluación del modelo de incrustación](https://zilliz.com/learn/evaluating-your-embedding-model)
Entrenamiento de su propio modelo de incrustación de texto](https://zilliz.com/learn/training-your-own-text-embedding-model)
¿Qué es la GAR?](https://zilliz.com/learn/Retrieval-Augmented-Generation)
Modelos de IA de alto rendimiento para tus aplicaciones GenAI | Zilliz](https://zilliz.com/ai-models)
Referencias
MTEB leaderboard, paper, Github: https://huggingface.co/spaces/mteb/leaderboard
Mejores prácticas de MTEB para evitar elegir un modelo sobreajustado: https://huggingface.co/blog/lyon-nlp-group/mteb-leaderboard-best-practices
Búsqueda de imágenes similares: https://milvus.io/docs/image_similarity_search.md
Búsqueda imagen a vídeo: https://milvus.io/docs/video_similarity_search.md
Búsqueda de sonidos similares: https://milvus.io/docs/audio_similarity_search.md
Búsqueda texto-imagen: https://milvus.io/docs/text_image_search.md
2024 Documento SigLIP (sigmoid loss CLIP): https://arxiv.org/pdf/2401.06167v1
Modelos de incrustación multimodal de bolsillo de Unum: https://github.com/unum-cloud/uform
- ¿Qué son los modelos de incrustación?
- Modelos de incrustación y generación aumentada de recuperación (RAG)
- Cómo elegir el mejor modelo de incrustación para sus datos
- Resumen
- Otros recursos
- Referencias
Contenido
Comienza Gratis, Escala Fácilmente
Prueba la base de datos vectorial completamente gestionada construida para tus aplicaciones GenAI.
Prueba Zilliz Cloud GratisSigue leyendo

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

Zero-Downtime Migration Now Available in Zilliz Cloud Private Preview
Zero-Downtime Migration enables seamless cluster-to-cluster migrations within Zilliz Cloud while maintaining full service availability.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.
