Módulo 5: LLMs (Large Language Models) - GPT, Claude y Más
4. Embeddings: Representaciones Vectoriales de Significado
Descripción
Los embeddings son representaciones vectoriales (números) de texto que capturan significado semántico. Son fundamentales para:
- Semantic search (buscar por significado, no solo keywords).
- RAG (Retrieval-Augmented Generation) (buscar documentos relevantes para LLM).
- Clustering (agrupar textos similares).
- Clasificación (ej. sentiment analysis).
Qué aprenderás:
- Qué son embeddings (vectores de significado).
- Cómo funcionan (palabras similares → vectores similares).
- Operaciones con vectores (similitud coseno, aritmética).
- Aplicaciones prácticas (semantic search, RAG).
Qué Son Embeddings
Embedding: Vector (lista de números) que representa el significado de un texto.
Ejemplo (simplificado):
"king" → [0.5, 0.8, 0.1, 0.3, ...] (ej. 768 dimensiones)
"queen" → [0.52, 0.78, 0.12, 0.32, ...]
"man" → [0.1, 0.2, 0.9, 0.1, ...]
"woman" → [0.12, 0.22, 0.88, 0.11, ...]
Clave: Palabras con significado similar tienen vectores cercanos en el espacio vectorial.
Cómo Se Generan Embeddings
Modelos de embedding
Ejemplos:
- OpenAI:
text-embedding-ada-002(1,536 dimensiones). - Sentence Transformers:
all-MiniLM-L6-v2(384 dimensiones). - Cohere:
embed-english-v3.0(1,024 dimensiones).
Proceso:
- Pasas texto (ej. "Hello world") al modelo.
- Modelo genera vector de N dimensiones.
Código (OpenAI):
import openai
response = openai.embeddings.create(
model="text-embedding-ada-002",
input="Hello world"
)
embedding = response.data[0].embedding
print(len(embedding)) # 1536 dimensiones
Similitud Coseno: Medir Cercanía
Similitud coseno: Métrica que mide qué tan similares son dos vectores (rango: -1 a 1).
- 1.0: Idénticos (mismo significado).
- 0.0: Ortogonales (no relacionados).
- -1.0: Opuestos.
Fórmula:
similitud = (A · B) / (||A|| × ||B||)
Ejemplo:
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
vec_king = embedding_model("king")
vec_queen = embedding_model("queen")
vec_car = embedding_model("car")
print(cosine_similarity([vec_king], [vec_queen])) # ~0.85 (muy similares)
print(cosine_similarity([vec_king], [vec_car])) # ~0.2 (poco relacionados)
Aritmética de Embeddings
Famoso ejemplo:
king - man + woman ≈ queen
Interpretación: Si restas "masculinidad" (man) de "king" y sumas "feminidad" (woman), obtienes "queen".
Código (conceptual):
vec_result = vec_king - vec_man + vec_woman
# Buscar palabra más cercana a vec_result
# → "queen" es la más cercana
Otros ejemplos:
Paris - France + Italy ≈ Rome
walking - walk + swim ≈ swimming
Moraleja: Embeddings capturan relaciones semánticas (género, geografía, tiempo verbal).
Aplicación 1: Semantic Search
Problema: Buscar documentos por significado, no solo keywords.
Ejemplo:
Query: "How to fix a leaky faucet"
Documentos:
1. "Repairing dripping taps" (no contiene "leaky" ni "faucet", pero es relevante)
2. "Installing kitchen sinks"
3. "Painting walls"
Keyword search (tradicional): No encuentra documento 1 (no tiene keywords exactas).
Semantic search (con embeddings):
- Generar embedding de query.
- Generar embeddings de todos los documentos.
- Calcular similitud coseno entre query y cada documento.
- Rankear por similitud.
Resultado: Documento 1 tiene alta similitud (mismo significado aunque diferentes palabras).
Aplicación 2: RAG (Retrieval-Augmented Generation)
Problema: LLM tiene conocimiento desactualizado o no conoce información específica de tu dominio.
Solución (RAG):
- Indexar documentos: Generar embeddings de tus documentos (ej. PDFs internos de empresa).
- Query: Usuario pregunta "¿Cuál es la política de vacaciones?"
- Buscar: Generar embedding de query, buscar documentos más similares (semantic search).
- Generar: Pasar documentos relevantes + query al LLM → LLM genera respuesta basada en documentos.
Ventaja: LLM tiene acceso a información actualizada/específica sin re-entrenamiento.
Aplicación 3: Clustering
Problema: Agrupar 10,000 reviews de productos en temas.
Proceso:
- Generar embeddings de cada review.
- Aplicar K-means clustering en el espacio de embeddings.
- Identificar clusters (ej. Cluster 1: calidad, Cluster 2: precio, Cluster 3: envío).
Por Qué Importa para un AI Engineer
1. RAG es técnica clave
Casi toda aplicación de LLM empresarial usa RAG:
- Chatbot de soporte (buscar en base de conocimiento).
- Análisis de documentos (buscar secciones relevantes).
- Q&A sobre documentos internos.
Sin entender embeddings: No puedes implementar RAG efectivamente.
2. Optimización de búsqueda
Problema: Semantic search en 1M de documentos es lento (calcular similitud con 1M vectores).
Solución: Vector databases (Pinecone, Weaviate, Qdrant) optimizan búsqueda con ANN (Approximate Nearest Neighbors).
Resultado: Búsqueda en milisegundos (vs segundos con búsqueda lineal).
3. Selección de modelo de embedding
Trade-offs:
| Modelo | Dimensiones | Calidad | Costo | Velocidad |
|---|---|---|---|---|
| OpenAI ada-002 | 1,536 | Muy buena | $0.0001/1K tokens | Rápida (API) |
| Sentence Transformers | 384 | Buena | Gratis (local) | Muy rápida (local) |
| Cohere embed-v3 | 1,024 | Excelente | $0.0001/1K tokens | Rápida (API) |
Decisión: Depende de presupuesto, calidad requerida, latencia.
Errores Frecuentes
1. Comparar embeddings de diferentes modelos
Error: Generar embedding con OpenAI, comparar con embedding de Sentence Transformers.
Problema: Modelos diferentes → espacios vectoriales diferentes → similitud no tiene sentido.
Solución: Usar mismo modelo para generar todos los embeddings.
2. No normalizar vectores
Error: Comparar vectores sin normalizar.
Problema: Similitud coseno asume vectores normalizados (longitud 1).
Solución: Normalizar antes de comparar (bibliotecas lo hacen automáticamente).
Resumen
Embeddings:
- Vectores (listas de números) que representan significado de texto.
- Palabras similares → vectores cercanos.
Similitud coseno:
- Métrica para medir cercanía entre vectores (0-1).
- Alta similitud → significados similares.
Aplicaciones:
- Semantic search: Buscar por significado.
- RAG: LLM + base de conocimiento.
- Clustering: Agrupar textos similares.
Por qué importa:
- RAG es técnica clave para aplicaciones empresariales.
- Vector databases optimizan búsqueda.
- Selección de modelo afecta calidad, costo, latencia.
Próximo paso: Cápsula 05: Context Window — Límite de memoria de LLMs, por qué existe, soluciones.