Consultoría IA para empresas — 100% remoto, trabajamos con tu equipo in-house

Inicio/Blog/Embeddings en IA: Qué Son y Cómo Usarlos [2026]
Volver al Blog
IA2 de febrero de 202614 min

Embeddings en IA: Qué Son y Cómo Usarlos [2026]

Guía completa sobre embeddings en inteligencia artificial. Qué son, cómo funcionan, y cómo usarlos para búsqueda semántica, RAG y recomendaciones.

Embeddings en IA: Qué Son y Cómo Usarlos [2026]

TLDR: Los embeddings son representaciones numéricas (vectores) de texto, imágenes u otros datos. Permiten búsqueda semántica, comparar similitud y construir sistemas RAG. Se generan con modelos como OpenAI text-embedding-3-small ($0.02/millón tokens).


Qué son los embeddings

Los embeddings son vectores numéricos que representan el significado semántico de un texto, imagen u otro dato.

Ejemplo simple

code
1"El gato duerme" → [0.12, -0.34, 0.87, ..., 0.23] (1536 números)
2"El felino descansa" → [0.11, -0.33, 0.85, ..., 0.24] (muy similar)
3"El coche es rojo" → [0.78, 0.12, -0.45, ..., -0.67] (muy diferente)

Por qué son útiles

AplicaciónDescripción
Búsqueda semánticaEncontrar documentos por significado, no keywords
RAGRecuperar contexto relevante para LLMs
ClusteringAgrupar textos similares automáticamente
RecomendacionesSugerir productos/contenido similar
Detección duplicadosEncontrar textos casi idénticos

Cómo funcionan

El proceso

  1. Input: Un texto (o imagen, audio...)
  2. Modelo: Red neuronal entrenada
  3. Output: Vector de N dimensiones

Similitud del coseno

Para comparar dos embeddings, se usa la similitud del coseno:

python
1import numpy as np
2 
3def cosine_similarity(a, b):
4 return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
5 
6# Resultado: 0 (opuestos) a 1 (idénticos)

Dimensiones comunes

ModeloDimensionesCalidad
text-embedding-3-small1536Buena
text-embedding-3-large3072Excelente
Cohere embed-v31024Buena
Voyage AI1024-1536Muy buena

Generar embeddings con OpenAI

Instalación

bash
1pip install openai numpy

Código básico

python
1from openai import OpenAI
2import numpy as np
3 
4client = OpenAI()
5 
6def get_embedding(text: str) -> list[float]:
7 """Genera el embedding de un texto."""
8 response = client.embeddings.create(
9 model="text-embedding-3-small",
10 input=text
11 )
12 return response.data[0].embedding
13 
14# Ejemplo
15embedding = get_embedding("Hola mundo")
16print(f"Dimensiones: {len(embedding)}") # 1536
17print(f"Primeros valores: {embedding[:5]}")

Procesar múltiples textos

python
1def get_embeddings_batch(texts: list[str]) -> list[list[float]]:
2 """Genera embeddings para múltiples textos de una vez."""
3 response = client.embeddings.create(
4 model="text-embedding-3-small",
5 input=texts
6 )
7 return [item.embedding for item in response.data]
8 
9# Más eficiente que llamar uno por uno
10textos = ["Texto 1", "Texto 2", "Texto 3"]
11embeddings = get_embeddings_batch(textos)


Búsqueda semántica

Implementación básica

python
1from openai import OpenAI
2import numpy as np
3 
4client = OpenAI()
5 
6# Base de datos de ejemplo
7documents = [
8 "Python es un lenguaje de programación",
9 "El café es una bebida popular",
10 "JavaScript se usa para desarrollo web",
11 "El té verde tiene antioxidantes",
12 "TypeScript añade tipos a JavaScript"
13]
14 
15# Generar embeddings de documentos
16doc_embeddings = []
17for doc in documents:
18 response = client.embeddings.create(
19 model="text-embedding-3-small",
20 input=doc
21 )
22 doc_embeddings.append(response.data[0].embedding)
23 
24def search(query: str, top_k: int = 3) -> list[tuple[str, float]]:
25 """Busca los documentos más similares a la query."""
26 # Embedding de la query
27 query_response = client.embeddings.create(
28 model="text-embedding-3-small",
29 input=query
30 )
31 query_embedding = query_response.data[0].embedding
32 
33 # Calcular similitudes
34 similarities = []
35 for i, doc_emb in enumerate(doc_embeddings):
36 sim = np.dot(query_embedding, doc_emb) / (
37 np.linalg.norm(query_embedding) * np.linalg.norm(doc_emb)
38 )
39 similarities.append((documents[i], sim))
40 
41 # Ordenar por similitud
42 similarities.sort(key=lambda x: x[1], reverse=True)
43 return similarities[:top_k]
44 
45# Prueba
46results = search("programación en la web")
47for doc, score in results:
48 print(f"{score:.3f}: {doc}")
49 
50# Output:
51# 0.823: JavaScript se usa para desarrollo web
52# 0.801: TypeScript añade tipos a JavaScript
53# 0.756: Python es un lenguaje de programación


Casos de uso prácticos

1. Sistema RAG simple

python
1def rag_query(question: str, documents: list[str]) -> str:
2 """Responde preguntas usando documentos relevantes."""
3 # Buscar documentos relevantes
4 relevant_docs = search(question, top_k=3)
5 context = "\n".join([doc for doc, _ in relevant_docs])
6 
7 # Generar respuesta con contexto
8 response = client.chat.completions.create(
9 model="gpt-4o-mini",
10 messages=[
11 {
12 "role": "system",
13 "content": f"Responde basándote en este contexto:\n{context}"
14 },
15 {"role": "user", "content": question}
16 ]
17 )
18 
19 return response.choices[0].message.content

2. Detector de duplicados

python
1def find_duplicates(texts: list[str], threshold: float = 0.95) -> list[tuple]:
2 """Encuentra textos duplicados o muy similares."""
3 embeddings = get_embeddings_batch(texts)
4 duplicates = []
5 
6 for i in range(len(texts)):
7 for j in range(i + 1, len(texts)):
8 sim = cosine_similarity(
9 np.array(embeddings[i]),
10 np.array(embeddings[j])
11 )
12 if sim > threshold:
13 duplicates.append((texts[i], texts[j], sim))
14 
15 return duplicates

3. Clustering de textos

python
1from sklearn.cluster import KMeans
2 
3def cluster_texts(texts: list[str], n_clusters: int = 5):
4 """Agrupa textos similares."""
5 embeddings = get_embeddings_batch(texts)
6 
7 kmeans = KMeans(n_clusters=n_clusters, random_state=42)
8 labels = kmeans.fit_predict(embeddings)
9 
10 clusters = {}
11 for text, label in zip(texts, labels):
12 if label not in clusters:
13 clusters[label] = []
14 clusters[label].append(text)
15 
16 return clusters


Bases de datos vectoriales

Para proyectos de producción, necesitas una base de datos vectorial.

Comparativa

Base de datosTipoPrecioMejor para
PineconeCloudGratis hasta 100KProducción fácil
ChromaLocal/CloudGratisDesarrollo
WeaviateSelf-hostedGratisControl total
pgvectorPostgreSQLGratisYa usas Postgres
QdrantCloud/SelfGratisAlto rendimiento

Ejemplo con Chroma

python
1import chromadb
2from chromadb.utils import embedding_functions
3 
4# Inicializar
5client = chromadb.Client()
6openai_ef = embedding_functions.OpenAIEmbeddingFunction(
7 api_key="sk-...",
8 model_name="text-embedding-3-small"
9)
10 
11# Crear colección
12collection = client.create_collection(
13 name="mi_coleccion",
14 embedding_function=openai_ef
15)
16 
17# Añadir documentos
18collection.add(
19 documents=["Documento 1", "Documento 2"],
20 ids=["id1", "id2"]
21)
22 
23# Buscar
24results = collection.query(
25 query_texts=["mi búsqueda"],
26 n_results=5
27)


FAQ

¿Cuánto cuestan los embeddings de OpenAI?

$0.02 por millón de tokens con text-embedding-3-small. Un documento de 1000 palabras ≈ 1300 tokens ≈ $0.000026.

¿Puedo generar embeddings gratis?

, con modelos locales como sentence-transformers:

python
1from sentence_transformers import SentenceTransformer
2model = SentenceTransformer('all-MiniLM-L6-v2')
3embedding = model.encode("Tu texto")

¿Cuál es la diferencia entre embedding-3-small y large?

Large tiene más dimensiones (3072 vs 1536) y mejor calidad, pero cuesta el doble y ocupa más espacio.

¿Los embeddings expiran?

No, puedes guardarlos indefinidamente. Solo recalcula si cambias de modelo.


Conclusión

Los embeddings son fundamentales para aplicaciones modernas de IA:

  1. Búsqueda semántica - Encuentra por significado, no keywords
  2. RAG - Da contexto a tus LLMs
  3. Clustering - Agrupa contenido similar
  4. Recomendaciones - Sugiere items relacionados

Recursos relacionados:


Más contenido técnico en Javadex.es

Síguenos: YouTube @JavadexAI | TikTok @javadex

Posts Relacionados

JS

Javier Santos Criado

Consultor de IA y Automatización | Fundador de Javadex

Experto en implementación de soluciones de Inteligencia Artificial para empresas. Especializado en automatización con n8n, integración de LLMs, y desarrollo de agentes IA.

RECOMENDADO

Lleva tu proyecto a producción

Hosting web desde 2,99€/mes o VPS con SSD NVMe desde 4,99€/mes. Panel intuitivo, IP dedicada y soporte 24/7 en español.

SSL gratis SSD NVMe Soporte 24/7 Panel intuitivo
Explorar planes de Hostinger

¿Quieres más contenido de IA?

Explora nuestras comparativas y guías

Consultoría y formación en IA para empresas

Implementamos soluciones de inteligencia artificial adaptadas a tu negocio. Proceso 100% remoto — trabajamos con tu equipo in-house sin que tengas que desplazarte.

Sesión de 30 min · Sin compromiso