Guías de IA · 11 min de lectura

¿Qué es un embedding en IA? Vectores, similitud y RAG

Un embedding convierte texto en un vector para acercar significados similares. Descubre los embeddings, la similitud coseno y el RAG.

Un espacio vectorial índigo oscuro con tres grupos de puntos luminosos y una chispa de consulta más brillante cerca del grupo ámbar

Un embedding en IA es un vector numérico, o lista de números de punto flotante, que representa texto u otros datos en un espacio matemático donde los significados similares están cerca unos de otros. Los modelos de aprendizaje automático usan embeddings vectoriales para medir la relación entre conceptos, impulsar la búsqueda semántica y recuperar contexto relevante en sistemas RAG.

Cuando explico los embeddings a ingenieros que construyen su primera canalización de búsqueda, les pido que imaginen un mapa donde los temas sustituyen a la geografía. La búsqueda por palabras clave comprueba si dos cadenas comparten exactamente las mismas letras, lo que falla cuando un documento dice perro y otro cachorro. Un embedding vectorial salva esa distancia al convertir el significado en coordenadas para que el software pueda comparar ideas mediante geometría básica.

¿Cómo representa el significado un embedding vectorial?

Un embedding vectorial representa el significado al convertir entradas complejas, como palabras, frases o imágenes, en coordenadas dentro de un espacio de embeddings multidimensional. Según el glosario de definiciones de IA de Stanford HAI, los embeddings colocan elementos similares cerca unos de otros en el espacio matemático: palabras como perro y cachorro reciben vectores cercanos, mientras que perro y tostada quedan lejos.

En la guía de embeddings de OpenAI, un embedding se define como un vector de números de punto flotante cuya distancia mide la relación entre cadenas de texto. Una distancia pequeña entre dos vectores indica una relación estrecha, mientras que una distancia grande indica una relación débil. IBM Think plantea el mismo principio para distintos tipos de datos: los embeddings vectoriales convierten entradas no matemáticas, como texto o imágenes, en matrices numéricas que pueden procesar los modelos de aprendizaje automático, de modo que los elementos más similares del mundo real reciben vectores más similares.

El Machine Learning Crash Course de Google añade tres propiedades prácticas de los espacios de embeddings que determinan cómo trabajan con ellos los ingenieros:

  • Proyección a menos dimensiones: Los modelos suelen proyectar entradas sin procesar de muchas dimensiones en un espacio de embeddings más denso y de menos dimensiones, donde la distancia puede calcularse matemáticamente como similitud relativa.
  • Coordenadas individuales opacas: Las dimensiones individuales de un embedding aprendido rara vez pueden interpretarse como conceptos claros etiquetados a mano. El significado reside en la posición y la dirección combinadas de todos los números de la matriz.
  • Especificidad de la tarea: Los embeddings suelen entrenarse para tareas concretas, por lo que un espacio vectorial optimizado para la recuperación semántica de texto difiere de uno entrenado para recomendar productos.

Como los vectores codifican relaciones en lugar de la escritura exacta, OpenAI enumera seis tareas habituales de producción para los embeddings: búsqueda (ordenar resultados según su relevancia para la consulta), agrupación, recomendaciones, detección de anomalías, medición de diversidad y clasificación (asignar a una cadena su etiqueta más cercana).

Embeddings de palabras, frases y documentos

Los embeddings de palabras, frases y documentos se diferencian por la cantidad de texto que un modelo comprime en un solo vector. Elegir la granularidad adecuada determina si el sistema sigue términos individuales, consultas breves de usuarios o pasajes de varios párrafos.

Embeddings de palabras

Un embedding de palabra es un vector denso asignado a una sola palabra o token de IA. Los embeddings estáticos de palabras, como word2vec, presentado por Tomas Mikolov y sus colegas en 2013, asignan un vector global fijo a cada palabra de un vocabulario. Como explica el Machine Learning Crash Course de Google, los modelos entrenados para predecir el contexto de una palabra suponen que las palabras que aparecen en contextos similares tienen significados relacionados.

Los embeddings estáticos de palabras tienen una limitación conocida: un solo vector debe representar todos los sentidos de una palabra a la vez, como banco en el sentido de entidad financiera y banco en el de asiento. Google también señala, citando Deep Learning with Python de François Chollet, que los embeddings estáticos de palabras utilizaban habitualmente cantidades de dimensiones como 256, 512 o 1024.

Embeddings de frases

Un embedding de frase convierte una expresión o frase completa en un solo vector, en lugar de producir vectores separados para cada palabra. IBM señala que los embeddings de frases capturan el significado semántico combinado de una expresión completa y se usan habitualmente para codificar consultas de usuarios en procesos de búsqueda y respuesta a preguntas. Codificar la frase completa ayuda a distinguir cadenas que contienen las mismas palabras en distinto orden.

Embeddings de documentos

Un embedding de documento representa un pasaje más largo, una sección de un artículo o un fragmento completo de documento como un solo vector. Un método básico sencillo combina vectores de palabras calculando su promedio, aunque suele perder estructura y matices. Los modelos de embeddings de texto diseñados para este fin codifican todo el pasaje en un solo paso. En sistemas reales de recuperación, los equipos rara vez comprimen un libro entero en un vector; en cambio, dividen los archivos largos en fragmentos más pequeños y generan un embedding por fragmento.

Tipo de embedding Granularidad de entrada Unidad vectorial típica Función principal y limitación
Embedding de palabra Una palabra o un token Un vector por elemento del vocabulario Captura la similitud entre términos; los modelos estáticos como word2vec reúnen todos los sentidos de una palabra en un vector
Embedding de frase Expresión o frase individual Un vector por consulta o línea Captura la intención a nivel de expresión; se usa habitualmente para consultas de búsqueda y respuesta a preguntas
Embedding de documento Pasaje o fragmento de documento Un vector por fragmento o documento Facilita la recuperación en un corpus; los documentos largos suelen necesitar división antes del embedding

¿Qué significan las dimensiones de un embedding?

Las dimensiones de un embedding miden la longitud de un vector, es decir, cuántos números de punto flotante produce un modelo para cada entrada. Los vectores más grandes tienen más capacidad para codificar distinciones semánticas sutiles, mientras que los más pequeños reducen el uso de memoria, el tamaño del índice y el cálculo necesario para comparar.

Los modelos de embeddings de tercera generación de OpenAI ilustran directamente este equilibrio. Al 14 de noviembre de 2026, la documentación oficial de OpenAI establece longitudes de salida predeterminadas de 1536 dimensiones para text-embedding-3-small y 3072 dimensiones para text-embedding-3-large. Ambos modelos aceptan un parámetro opcional dimensions en la solicitud API, lo que permite solicitar un vector más corto sin perder las propiedades del embedding que representan conceptos.

OpenAI entrenó ambos modelos de tercera generación para que los números finales puedan eliminarse limpiamente. Según la guía de embeddings de OpenAI al 14 de noviembre de 2026, reducir text-embedding-3-large a 256 dimensiones sigue superando en el benchmark MTEB a un embedding text-embedding-ada-002 de 1536 dimensiones sin reducir. Si una base de datos vectorial impone un límite estricto de 1024 dimensiones, OpenAI indica que los desarrolladores pueden seguir llamando a text-embedding-3-large con dimensions establecido en 1024, a cambio de una pequeña pérdida de precisión para obtener compatibilidad y reducir el espacio de almacenamiento.

Los desarrolladores que acorten vectores manualmente después de recibirlos de una API deben aplicar después una normalización de longitud L2. Pasar el parámetro dimensions directamente al crear el embedding evita el procesamiento manual posterior y es el procedimiento recomendado por OpenAI.

¿Cómo compara embeddings la similitud coseno?

La similitud coseno compara dos vectores de embeddings midiendo el coseno del ángulo entre ellos. Como evalúa la orientación en el espacio de embeddings y no la magnitud bruta del vector, dos pasajes que apuntan en la misma dirección semántica obtienen una puntuación alta aunque sus longitudes sean diferentes.

Para vectores generales, la similitud coseno va de -1 a 1:

  • 1: Ambos vectores apuntan exactamente en la misma dirección, lo que indica similitud máxima.
  • 0: Ambos vectores son ortogonales, lo que indica significados no correlacionados.
  • -1: Ambos vectores apuntan en direcciones opuestas.

La distancia euclidiana ofrece una métrica alternativa al medir la distancia en línea recta entre dos puntos del espacio de embeddings. Cuando los desarrolladores preguntan qué función de distancia elegir, la FAQ de embeddings de OpenAI recomienda explícitamente la similitud coseno y señala que la elección de la métrica suele marcar poca diferencia con los vectores de OpenAI. Todos los embeddings que devuelve la API de OpenAI ya están normalizados a una longitud de 1, por lo que la similitud coseno equivale al producto escalar y la similitud coseno y la distancia euclidiana producen clasificaciones de búsqueda idénticas.

¿Cómo se usan los embeddings en RAG?

Los embeddings impulsan la generación aumentada por recuperación (RAG) al comparar la pregunta de un usuario con fragmentos de documentos almacenados antes de que un modelo de lenguaje redacte una respuesta. En lugar de depender únicamente de los hechos memorizados durante el preentrenamiento, una canalización RAG busca en colecciones de textos privados o actualizados mediante la similitud vectorial.

De acuerdo con las recomendaciones de OpenAI sobre respuesta a preguntas y búsqueda de texto, una canalización RAG estándar sigue cinco pasos:

  1. Dividir el corpus en fragmentos: Divide los documentos fuente largos en pasajes más pequeños para que cada vector represente una idea concreta. Nuestra guía sobre cómo dividir documentos para RAG explica estrategias específicas de división.
  2. Generar embeddings e indexar los fragmentos: Envía cada fragmento a un modelo de embeddings y almacena los vectores resultantes junto con su texto fuente. OpenAI recomienda almacenar los vectores en una base de datos vectorial para buscar rápidamente en grandes colecciones.
  3. Generar un embedding de la consulta del usuario: Pasa la pregunta recibida por exactamente el mismo modelo de embeddings para que la consulta quede en el mismo espacio matemático que los fragmentos indexados.
  4. Recuperar los vecinos más cercanos: Calcula puntuaciones de similitud, como la similitud coseno o el producto escalar de vectores normalizados, y recupera los fragmentos más relevantes.
  5. Pasar el contexto al modelo: Inserta los fragmentos de texto recuperados en el prompt del modelo de lenguaje para que pueda generar una respuesta fundamentada en el material fuente.

El tamaño de los fragmentos y los umbrales de recuperación varían mucho según la estructura de los documentos y los patrones de consulta, por lo que los equipos deben probar estrategias de división con su corpus real en lugar de depender de un tamaño universal.

Modelos de embeddings de OpenAI, límites y precios

Al 14 de noviembre de 2026, la API de embeddings de OpenAI ofrece tres modelos de texto principales con límites de tokens fijos y precios por token. Los desarrolladores generan vectores enviando una solicitud POST https://api.openai.com/v1/embeddings que contiene input y model, con dimensions opcional (en modelos de tercera generación) y encoding_format (float por defecto, o base64).

Los tres modelos de embeddings de OpenAI enumerados comparten los mismos límites por solicitud: un máximo de 8.192 tokens por entrada individual, hasta 2.048 elementos por matriz de entrada y un máximo de 300.000 tokens en total sumando todas las entradas de una llamada API. Se rechazan las cadenas vacías. Para contar los tokens localmente antes de enviar solicitudes, OpenAI aconseja usar la codificación cl100k_base con tiktoken. Los tres modelos también admiten la Batch API de OpenAI.

Modelo Dimensiones predeterminadas Máximo de tokens de entrada Precio por millón de tokens (14 de noviembre de 2026) Páginas aproximadas por dólar (~800 tokens/página) Puntuación MTEB publicada por OpenAI
text-embedding-3-small 1536 8.192 $0.02 62.500 62.3%
text-embedding-3-large 3072 8.192 $0.13 9.615 64.6%
text-embedding-ada-002 1536 8.192 $0.10 12.500 61.0%

Estas cifras proceden directamente de la página de precios de OpenAI y de la guía de embeddings al 14 de noviembre de 2026. OpenAI describe text-embedding-3-small como un sucesor mejorado de text-embedding-ada-002 y presenta text-embedding-3-large como su modelo más capaz para tareas tanto en inglés como en otros idiomas. Los porcentajes MTEB anteriores deben considerarse únicamente como benchmarks publicados por OpenAI en su propia documentación en esa fecha, no como una clasificación independiente y actualizada de todos los proveedores de embeddings del sector.

FAQ

¿Cuál es la diferencia entre un embedding vectorial y un token?

Un token es un fragmento del texto de entrada, como una palabra o parte de una palabra, que un modelo lee y por el que cobra. Un embedding vectorial es la matriz densa de números de punto flotante que el modelo produce para representar el significado de uno o varios tokens. Puedes introducir hasta 8.192 tokens en un modelo de embeddings de OpenAI para recibir un vector.

¿Reduce el parámetro dimensions de OpenAI la precisión de los embeddings?

Acortar un vector con el parámetro dimensions supone sacrificar una pequeña cantidad de precisión para reducir los costes de almacenamiento y cálculo. OpenAI afirma que sus modelos de tercera generación se entrenaron para poder eliminar los números finales conservando la representación de los conceptos. Al 14 de noviembre de 2026, OpenAI informa de que un vector text-embedding-3-large de 256 dimensiones sigue superando en MTEB a un vector text-embedding-ada-002 de 1536 dimensiones sin reducir.

¿Debo usar similitud coseno o distancia euclidiana para los embeddings de OpenAI?

La similitud coseno es la métrica recomendada por OpenAI, aunque ambas funciones ofrecen clasificaciones idénticas para los vectores de OpenAI. Como los embeddings de OpenAI están normalizados a una longitud de 1, la similitud coseno equivale matemáticamente al producto escalar y la distancia euclidiana conserva exactamente el mismo orden. Para vectores generales sin normalizar de otras fuentes, la similitud coseno aísla el ángulo en lugar de la magnitud.

¿Conocen los modelos de embeddings los acontecimientos recientes?

Los modelos de embeddings de tercera generación de OpenAI, text-embedding-3-small y text-embedding-3-large, no conocen los acontecimientos ocurridos después de septiembre de 2021. OpenAI señala en su FAQ de embeddings que este límite de conocimiento suele ser menos restrictivo para los embeddings que para los modelos de generación de texto, aunque ciertas consultas de dominios específicos o posteriores al límite pueden obtener correspondencias de menor calidad.

¿A quién pertenecen los embeddings generados mediante la API de OpenAI?

Según la FAQ oficial de OpenAI, los clientes son propietarios tanto de las entradas que envían como de los vectores de salida generados por los modelos de OpenAI, incluidos los embeddings. OpenAI afirma que la propiedad se aplica a sus puntos de acceso de embeddings, mientras que los usuarios siguen siendo responsables de garantizar que su uso de la API cumpla la legislación aplicable.

Fuentes

Escrito por

Chunyu Cai

Chunyu Cai es el director ejecutivo de Lotook, LLC y un emprendedor que escribe sobre modelos de IA, agentes y cómo cambian el trabajo cotidiano. Chunyu Cai tiene un título de máster de Imperial College London.