¿Qué Son los Embeddings?
OneLiner
Los embeddings son una representación matemática de palabras/textos, transformando información lingüística compleja en vectores comprensibles para modelos de IA.
¿Qué Son los Embeddings?
En procesamiento del lenguaje natural (NLP), los embeddings desempeñan un papel crucial al permitir que las máquinas "entiendan" significados y relaciones entre palabras. Son representaciones multidimensionales que capturan semántica y contexto lingüístico.
Un embedding es una representación numérica (vector) donde cada dimensión corresponde a alguna característica lingüística o semántica. Por ejemplo, palabras relacionadas (como "perro" y "gato") se ubican cerca en el espacio vectorial, mientras que palabras sin relación como ("azul" y "física") están más alejadas.
Los vectores tienen muchas dimensiones, muchas más que los ejemplos de tipo (X,Y) del colegio. Por ejemplo, la API de OpenAI permite generar embeddings de entre 300 y 3072 dimensiones.
Otra característica propia de los embeddings es que el número de dimensiones del vector generado es independiente del tamaño del texto. Una única palabra resultará en un vector del mismo tamaño que un texto de 8000 tokens.
Modelos de Embedding
Los modelos de embedding son la forma de transformar cualquier texto o imagen en su representación vectorial, y también son redes neuronales como GPT-4o.
Pero, a diferencia de los LLMs, los modelos de embedding son mucho más pequeños y menos complejos computacionalmente. No obstante, es fundamental este modelo para obtener una vectorización de calidad que consiga capturar realmente el significado del texto.
Ejemplos de estos modelos son:
- text-embedding-3-small: De OpenAI. Solo 5cts permiten vectorizar más de 2 millones de tokens.
- nomic-embed-text: El modelo de embedding más popular en Ollama, con 22 millones de descargas.
Limitaciones
-
Contexto: Los modelos de embedding tienen ventanas de contexto (el máximo número de tokens que pueden procesar) muy limitadas, de unos 8192 tokens. Insuficiente para documentos largos.
-
Procesamiento: Realizar búsquedas en los vectores generados por el embedding tiene una complejidad muy elevada, por lo que se deben emplear algoritmos especializados.
-
Lock-In: La representación del texto depende directamente del modelo que lo ha generado. Cambiar de modelo suele implicar volver a vectorizar todos los textos almacenados.
Usos
-
RAG: Acrónimo de Retrieval-Augmented Generation. Se trata de una técnica para proporcionar información adicional a los LLMs de forma eficiente.
-
Búsquedas semánticas: Ligado al RAG también, las búsquedas semánticas buscan obtener los textos más similares a un texto o pregunta dada, realizando una comparación de los vectores. Se suelen emplear bases de datos vectoriales o algoritmos paralelos para esta tarea. Al buscar "animales", la búsqueda dará más cercanía con "perro" y "gato", que con "coche".
Peeker
El uso de modelos de embedding es fundamental en técnicas como RAG, que permiten a los modelos de lenguaje obtener contexto de forma dinámica y reactiva a las preguntas del usuario, mediante búsquedas en documentos vectorizados.