Fundamentos
¿Qué son los embeddings?
Un embedding convierte el texto en un vector de números que representa su significado, lo que hace posible buscar por significado y no por el texto exacto. Cómo se mide la similitud, y por qué los embeddings de distintos modelos no se pueden mezclar.
Todas las guías · Última revisión:
Una lista de números que representa el significado
Un modelo de embeddings lee un fragmento de texto —una palabra, una frase, un párrafo, a veces un documento entero— y devuelve un vector de longitud fija: una lista ordenada de números, normalmente de cientos o miles de elementos. Ese vector no es un resumen legible por una persona; es una posición en un espacio matemático que el modelo aprendió durante el entrenamiento, organizado de modo que los textos con significado relacionado queden cerca unos de otros.
Lo que queda cerca es el significado parecido, no la ortografía parecida
Dos frases que casi no comparten palabras pero significan más o menos lo mismo pueden producir vectores cercanos entre sí, porque el modelo de embeddings aprendió asociaciones entre conceptos durante el entrenamiento, no solo qué letras aparecen. A la inversa, dos frases que comparten muchas palabras pero significan cosas distintas pueden acabar muy alejadas. Esta es la diferencia clave entre la búsqueda basada en embeddings y la coincidencia por palabras clave exactas.
La cercanía se mide, no se estima a ojo
Una vez que el texto está representado como vectores, comparar significado se convierte en un problema geométrico: una puntuación de similitud calculada entre dos vectores, casi siempre según cuánto apunten en la misma dirección. Buscar en una colección grande significa calcular esa puntuación entre un vector de consulta y cada vector almacenado, y devolver las coincidencias más cercanas: la misma operación tanto si la colección tiene cien entradas como cien millones.
Los embeddings de distintos modelos no se mezclan
Igual que el vocabulario de un tokenizador, el espacio vectorial de un modelo de embeddings es propio de ese modelo y de cómo se entrenó. Un vector producido por un modelo de embeddings no es comparable de forma útil con uno producido por otro modelo distinto, aunque ambos vectores tengan el mismo número de dimensiones. Cambiar de modelo de embeddings significa volver a generar los embeddings de todo lo ya almacenado, no solo del contenido nuevo a partir de ese momento.
Un modelo de embeddings hace un trabajo distinto al de un modelo de lenguaje
Un modelo de lenguaje genera texto, token a token, a partir de un prompt. Un modelo de embeddings no genera nada: convierte texto en un vector y ahí termina. Algunos sistemas usan el mismo modelo base para ambas tareas, y otros usan dos modelos completamente distintos; en cualquier caso, el vector que produce un paso de embeddings no es en sí mismo una respuesta, solo algo que un paso de búsqueda o emparejamiento puede comparar.
Dónde aparece esto en la práctica
Los embeddings son lo que hace posible la generación aumentada por recuperación: consulta qué es RAG para ver cómo encaja la recuperación con un modelo de lenguaje, pero la misma técnica también sustenta la búsqueda semántica en tickets de soporte o documentación, el emparejamiento de conversaciones pasadas parecidas, la eliminación de contenido casi idéntico y la agrupación de elementos relacionados sin que nadie etiquete categorías a mano.
Preguntas frecuentes
- ¿Un embedding es lo mismo que un token?
- No. Un token es una unidad discreta de texto que un modelo de lenguaje lee o escribe de una en una. Un embedding es un vector continuo que representa el significado de un fragmento de texto más grande, producido por un paso aparte que no genera nada.
- ¿Puedo comparar embeddings producidos por dos modelos distintos?
- No de forma útil. Cada modelo de embeddings define su propio espacio vectorial durante el entrenamiento, así que una distancia que en el espacio de un modelo significa "muy similar" no tiene un significado definido en el espacio de otro modelo, aunque los vectores tengan la misma longitud.
- ¿Un vector de embedding más grande significa mejor calidad de búsqueda?
- No por sí solo. Más dimensiones pueden capturar más matices, pero la calidad depende de con qué se entrenó el modelo y de cuánto encaje eso con tu contenido, no solo del número de dimensiones.
- ¿Alguien puede recuperar el texto original a partir de un embedding?
- Recuperarlo con exactitud suele ser poco práctico, pero un embedding sigue derivándose directamente de tu contenido y puede filtrar información relevante sobre él bajo ciertos ataques. Trata los embeddings almacenados de texto sensible con el mismo cuidado que el propio texto, no como si ya estuvieran anonimizados.
Pruébalo en lugar de leer sobre ello
Las funciones de memoria y paquetes de contexto de ClawAI generan embeddings localmente mediante Ollama y los guardan en una base de datos vectorial para la búsqueda por similitud, en vez de enviar tu contenido a una API de embeddings en la nube para ese fin.