¿Qué son los vector embeddings?
Comprenderá cómo las redes neuronales transforman el texto en vectores densos dentro de un espacio de alta dimensionalidad, por qué los textos semánticamente similares producen vectores cercanos y qué mide la similitud coseno.
¿Qué son los vector embeddings? es una lección gratuita de AI Engineering Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Engineering Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Engineering Academy incluye 4 lecciones en total.
El significado detrás de los números
Un embedding vectorial es una lista de números (un vector) que representa el significado de un fragmento de texto. En lugar de almacenar las palabras como cadenas sin procesar, las redes neuronales aprenden a codificar el significado semántico en matrices numéricas densas. Dos textos con un significado similar producirán vectores cercanos entre sí en este espacio de alta dimensionalidad.
Espacio vectorial de alta dimensionalidad
Los embeddings modernos suelen tener entre 768 y 3072 dimensiones. Cada dimensión captura alguna característica latente del significado —temas, sentimiento, estilo y relaciones— sin estar programada explícitamente. El resultado es un espacio geométrico rico en el que las relaciones semánticas se convierten en distancias medibles.
Por ejemplo, text-embedding-3-small produce vectores de 1536 dimensiones, mientras que text-embedding-3-large produce vectores de 3072 dimensiones.
Cómo aprenden embeddings las redes neuronales
Los modelos de embeddings se entrenan con corpus de texto enormes para predecir palabras que faltan (modelado de lenguaje enmascarado) o para distinguir entre pares semánticamente similares y diferentes. Durante el entrenamiento, la red ajusta millones de pesos hasta que los textos similares se agrupan de forma natural en el espacio vectorial aprendido.
Por eso los embeddings se denominan representaciones densas: cada dimensión contiene información, a diferencia de las codificaciones one-hot dispersas, en las que la mayoría de los valores son cero.
Similitud coseno: medir la cercanía
La similitud coseno mide el ángulo entre dos vectores y devuelve un valor entre -1 y 1. Una puntuación de 1 significa que los vectores apuntan exactamente en la misma dirección (significado idéntico), 0 significa que son ortogonales (no están relacionados) y -1 significa que apuntan en direcciones opuestas.
Se prefiere a la distancia euclidiana para texto porque ignora la magnitud del vector y se centra exclusivamente en la dirección, lo que la hace resistente a las diferencias en la longitud del texto.
import numpy as np
def cosine_similarity(vec_a, vec_b):
dot_product = np.dot(vec_a, vec_b)
norm_a = np.linalg.norm(vec_a)
norm_b = np.linalg.norm(vec_b)
return dot_product / (norm_a * norm_b)
# Example with tiny 3D vectors
v1 = np.array([0.8, 0.2, 0.5])
v2 = np.array([0.9, 0.1, 0.4])
print(cosine_similarity(v1, v2)) # Close to 1.0Por qué es importante la similitud semántica
La búsqueda tradicional por palabras clave falla cuando los usuarios parafrasean: buscar automobile no encuentra documentos sobre cars. Los embeddings vectoriales resuelven este problema porque los textos semánticamente equivalentes se asignan a vectores cercanos, independientemente de las palabras exactas utilizadas.
Esto permite la búsqueda semántica, en la que se encuentra el resultado más relevante según el significado y no según la coincidencia de palabras, una capacidad fundamental para los sistemas RAG.
Visualización del vector de embedding
Imagine que representa oraciones en un mapa 2D (una analogía simplificada). Las oraciones sobre machine learning se agrupan en una región, las oraciones sobre cooking se agrupan en otra y las oraciones sobre sports forman un tercer grupo. Los embeddings vectoriales crean este mapa en miles de dimensiones.
Relaciones conocidas como king - man + woman ≈ queen son operaciones aritméticas reales en este espacio: las operaciones vectoriales codifican analogías semánticas.
Generar un embedding sencillo
La API de embeddings de OpenAI acepta texto y devuelve una lista de valores float. Una sola llamada a la API puede generar el embedding de una oración o de un párrafo completo. El vector devuelto tiene una dimensión fija independientemente de la longitud de la entrada.
Importante: las entradas más largas no producen vectores más grandes; siguen produciendo un vector del mismo tamaño fijo, pero los textos muy largos pueden perder detalles específicos porque el modelo comprime todo en ese espacio fijo.
from openai import OpenAI
client = OpenAI() # uses OPENAI_API_KEY from environment
response = client.embeddings.create(
model='text-embedding-3-small',
input='Vector embeddings capture semantic meaning.'
)
embedding = response.data[0].embedding
print(f'Dimensions: {len(embedding)}') # 1536
print(f'First 5 values: {embedding[:5]}')Generar embeddings de varios textos a la vez
Puede generar embeddings de varias cadenas en una sola llamada a la API pasando una lista al parámetro input. Esto es mucho más eficiente que realizar una solicitud por texto, porque reduce los viajes de ida y vuelta de red y permite que la API agrupe el cálculo.
La respuesta contiene un objeto de embedding por cada entrada, en el mismo orden, por lo que puede combinarlos con sus textos originales mediante zip.
from openai import OpenAI
client = OpenAI()
texts = [
'Python is a programming language.',
'Snakes are reptiles.',
'Machine learning requires data.'
]
response = client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
for text, result in zip(texts, response.data):
print(f'{text[:30]}... -> {len(result.embedding)}D vector')Producto punto frente a similitud coseno
Si sus embeddings están normalizados mediante L2 (vectores unitarios con magnitud 1), el producto punto equivale a la similitud coseno. Los modelos de embeddings de OpenAI devuelven vectores normalizados, por lo que puede utilizar cualquiera de las dos métricas; el producto punto es ligeramente más rápido de calcular.
Sin embargo, al combinar embeddings de distintos modelos o fuentes que podrían no estar normalizados, calcule siempre explícitamente la similitud coseno para evitar resultados engañosos.
import numpy as np
def normalize(vec):
return vec / np.linalg.norm(vec)
v1 = normalize(np.array([3.0, 4.0, 0.0]))
v2 = normalize(np.array([4.0, 3.0, 0.0]))
# For unit vectors: dot product == cosine similarity
dot = np.dot(v1, v2)
print(f'Dot product: {dot:.4f}') # same as cosine simEmbeddings frente a codificación one-hot
La codificación one-hot representa cada palabra como un vector con exactamente un 1 y todos los demás valores iguales a 0. Un vocabulario de 50 000 palabras produce vectores de 50 000 dimensiones casi completamente formados por ceros, lo que resulta muy ineficiente.
Los embeddings densos utilizan entre 768 y 3072 dimensiones, pero cada dimensión contiene información real. El espacio es entre 10 y 20 veces menor y, aun así, captura muchos más matices, incluidos sinónimos, analogías y significado composicional que la codificación one-hot no puede captar.
Casos de uso habituales de los embeddings
Además de la búsqueda semántica, los embeddings impulsan muchas aplicaciones prácticas:
- Búsqueda semántica: encontrar documentos por su significado, no por palabras clave
- Sistemas de recomendación: sugerir elementos similares a los que le han gustado al usuario
- Agrupación: agrupar documentos por tema automáticamente
- Clasificación: proporcionar embeddings a un clasificador lineal
- Deduplicación: detectar contenido casi duplicado
Todos los sistemas RAG dependen de los embeddings para relacionar las consultas de los usuarios con fragmentos de documentos relevantes.
Comprobación rápida
Compruebe su comprensión de los conceptos de ingeniería de IA de esta lección.
Resumen de la lección
En esta lección ha aprendido que los embeddings vectoriales codifican el significado semántico como matrices numéricas densas, que la similitud coseno mide la cercanía semántica comparando las direcciones de los vectores y que la API de embeddings de OpenAI convierte texto en vectores de tamaño fijo mediante una sola llamada. A continuación, exploraremos cómo generar y comparar embeddings utilizando en la práctica los modelos de OpenAI.
Preguntas frecuentes
¿La lección «¿Qué son los vector embeddings?» es gratis?
Sí — el texto completo de «¿Qué son los vector embeddings?» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Engineering Academy, actualiza a CoddyKit PRO. El curso de AI Engineering Academy incluye 4 lecciones en total.
¿Qué aprenderé en «¿Qué son los vector embeddings?»?
Comprenderá cómo las redes neuronales transforman el texto en vectores densos dentro de un espacio de alta dimensionalidad, por qué los textos semánticamente similares producen vectores cercanos y qu… Practicas AI Engineering Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Engineering Academy?
No se requiere experiencia previa. AI Engineering Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «¿Qué son los vector embeddings?»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Engineering Academy?
Sí. Cada lección de AI Engineering Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ¿Qué son los vector embeddings?
- Generación de embeddings con OpenAI
- Búsqueda semántica con NumPy
- Clustering y visualización de embeddings