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:

  1. Pasas texto (ej. "Hello world") al modelo.
  2. 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):

  1. Generar embedding de query.
  2. Generar embeddings de todos los documentos.
  3. Calcular similitud coseno entre query y cada documento.
  4. 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):

  1. Indexar documentos: Generar embeddings de tus documentos (ej. PDFs internos de empresa).
  2. Query: Usuario pregunta "¿Cuál es la política de vacaciones?"
  3. Buscar: Generar embedding de query, buscar documentos más similares (semantic search).
  4. 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:

  1. Generar embeddings de cada review.
  2. Aplicar K-means clustering en el espacio de embeddings.
  3. 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:

ModeloDimensionesCalidadCostoVelocidad
OpenAI ada-0021,536Muy buena$0.0001/1K tokensRápida (API)
Sentence Transformers384BuenaGratis (local)Muy rápida (local)
Cohere embed-v31,024Excelente$0.0001/1K tokensRá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.