Módulo 2: Cómo funcionan Vector Databases (Conceptual)
Cápsula 08: Por qué esto importa para RAG - Resumen del Módulo
🎯 Objetivo de la cápsula
Consolidar aprendizajes del Módulo 2 y conectar arquitectura de vector databases con decisiones prácticas en RAG systems.
Al finalizar esta cápsula:
- ✅ Explicarás impact de indexing algorithms en RAG performance
- ✅ Entenderás impact en costos (10x diferencia)
- ✅ Justificarás trade-offs accuracy vs cost
- ✅ Estarás listo para Módulo 3 (Features para RAG)
Tiempo estimado: 5-7 minutos
🏗️ Resumen: Las 3 capas + Algoritmos
Lo que aprendiste en este módulo
Módulo 2 en una imagen:
┌──────────────────────────────────────────────────┐
│ LAYER 1: INDEXING │
│ │
│ HNSW: O(log n), 98% accuracy, 6 GB (1M vecs) │
│ IVF: O(sqrt(n)), 93% accuracy, 2 GB │
│ PQ: O(n) compressed, 88% accuracy, 1 GB │
│ │
│ Trade-off: Accuracy vs Speed vs Memory │
└──────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────┐
│ LAYER 2: QUERY ENGINE │
│ - ANN search usando índice Layer 1 │
│ - Metadata filtering (where clauses) │
│ - Ranking y re-scoring │
└──────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────┐
│ LAYER 3: STORAGE │
│ - Persistir vectores + metadata │
│ - Durability (WAL, snapshots) │
│ - Replication (HA) │
└──────────────────────────────────────────────────┘
Mensaje clave: Entender arquitectura interna te permite debuggear, optimizar, y tomar mejores decisiones en RAG.
📊 Impact en Performance de RAG
Retrieval es el bottleneck
RAG pipeline típico:
User Query (100ms total)
↓
1. Embed query (OpenAI API) 10ms (10%)
↓
2. Vector DB retrieval ← BOTTLENECK 60ms (60%)
↓
3. LLM generation (OpenAI API) 30ms (30%)
↓
Response
Clave: Retrieval domina 60% de latency. Optimizar indexing = mayor impacto.
Comparación: Brute Force vs HNSW vs IVF vs PQ
Escenario: 1M vectores, 1536-dim, top-10 retrieval
| Algoritmo | Latency | Accuracy | % vs Requirement |
|---|---|---|---|
| Brute Force (numpy) | 1500 ms | 100% | ❌ 3x slower (requisito: <500ms) |
| HNSW | 18 ms | 98% | ✅ 27x faster than requirement |
| IVF | 40 ms | 93% | ✅ 12x faster than requirement |
| IVF+PQ | 60 ms | 88% | ✅ 8x faster than requirement |
Conclusión: Vector databases (con indexing) son ESENCIALES para RAG en producción.
Impact de accuracy loss
Pregunta: ¿98% vs 88% accuracy importa en RAG?
Experimento:
Query: "How do I reset my password?"
Database: 100K support articles
HNSW (98% accuracy):
Top 10 results: 9.8 relevant, 0.2 irrelevant
IVF (93% accuracy):
Top 10 results: 9.3 relevant, 0.7 irrelevant
IVF+PQ (88% accuracy):
Top 10 results: 8.8 relevant, 1.2 irrelevant
¿Esto afecta respuesta de LLM?
En práctica: Depende de tu threshold.
Caso A: Top-3 context (critical)
- HNSW: 2.94 relevantes → ✅ Excelente
- IVF: 2.79 relevantes → ✅ Aceptable
- IVF+PQ: 2.64 relevantes → ⚠️ Puede fallar
Caso B: Top-10 context (majority voting)
- HNSW: 9.8 relevantes → ✅ Excelente
- IVF: 9.3 relevantes → ✅ Muy bueno
- IVF+PQ: 8.8 relevantes → ✅ Suficiente
Conclusión: Con top-10 retrieval, accuracy 88-93% es suficiente (LLM puede filtrar ruido).
💰 Impact en Costos
Costo de memoria (AWS)
Escenario: 10M vectores, 1536-dim
| Algoritmo | RAM requerido | Instance | Costo/mes |
|---|---|---|---|
| HNSW | 80 GB | r6i.4xlarge (128 GB) | $730/month |
| IVF | 20 GB | r6i.xlarge (32 GB) | $180/month |
| IVF+PQ | 8 GB | r6i.large (16 GB) | $90/month |
Diferencia: 8x costo entre HNSW y IVF+PQ.
Trade-off: 10% accuracy loss → 8x cost reduction.
Break-even analysis
Pregunta: ¿Cuándo vale la pena sacrificar accuracy por costo?
Caso A: Customer-facing chatbot (accuracy crítica)
HNSW: $730/month
- Accuracy: 98%
- Potential revenue loss from bad answers: $0
ROI: HNSW vale la pena
Caso B: Internal search (accuracy no crítica)
IVF+PQ: $90/month
- Accuracy: 88%
- Potential productivity loss: Minimal (users retry query)
Savings: $640/month = $7680/year
ROI: IVF+PQ vale la pena
Framework:
- Customer-facing + revenue impact → HNSW
- Internal + no revenue impact → IVF o IVF+PQ
🎯 Decision Framework para RAG
Matriz de decisión por escenario
Escenario A: RAG Chatbot (Customer-facing)
Requisitos:
- Vectores: 100K-500K
- Accuracy: >95% (customer satisfaction crítica)
- Latency: <500ms
- Updates: Incremental (diario)
Algoritmo: HNSW
DB: ChromaDB (MVP) → Pinecone/Weaviate (scale)
Escenario B: RAG Search (Internal)
Requisitos:
- Vectores: 1M-5M
- Accuracy: 90-95% (internal, no crítico)
- Latency: <1s
- Updates: Batch (semanal)
Algoritmo: IVF
DB: Faiss (self-hosted) o Weaviate (managed)
Escenario C: RAG Analytics (Massive scale)
Requisitos:
- Vectores: 10M-100M
- Accuracy: 85-90% (analytics, no real-time)
- Latency: <2s
- Updates: Batch (mensual)
Algoritmo: IVF + PQ
DB: Faiss (self-hosted optimizado)
Checklist de decisión
Usa esta checklist antes de elegir algoritmo:
-
Dataset size
- < 1M → HNSW viable
- 1M-5M → IVF o HNSW (según RAM)
-
5M → IVF+PQ requerido
-
Accuracy requirement
-
95% → HNSW only
- 90-95% → IVF
- 85-90% → IVF+PQ
-
-
Latency requirement
- <50ms → HNSW
- <200ms → IVF
- <500ms → IVF+PQ
-
Budget
- High → HNSW (managed)
- Medium → IVF (self-hosted)
- Low → IVF+PQ (self-hosted)
-
Update pattern
- Incremental → HNSW
- Batch → IVF o IVF+PQ
Si 4-5 criterios apuntan a algoritmo X → Usa ese algoritmo.
🧠 Conocimiento aplicado: Casos reales
Caso 1: Notion AI (Document Search)
Problema:
- 50M documents
- Latencia <100ms
- Customer-facing (accuracy crítica)
Solución (estimada):
- Algoritmo: HNSW (variant)
- Arquitectura: Distributed HNSW (múltiples shards)
- Costo: $50K-100K/month en infra
Trade-off: Costo alto aceptable (revenue justifica).
Caso 2: Perplexity AI (Web Search + RAG)
Problema:
- 100M+ web pages indexed
- Latencia <200ms
- Accuracy 90% suficiente (multi-source RAG)
Solución (estimada):
- Algoritmo: IVF (clustering por dominio)
- Arquitectura: Distributed shards por topic
- Optimización: Metadata pre-filtering (domain, recency)
Trade-off: Accuracy 93% vs 98% → No afecta porque multi-source (diversity > precision).
Caso 3: ChatGPT Plugins (Enterprise RAG)
Problema:
- Variable (100K-10M docs por customer)
- Latency <500ms
- Multi-tenant (isolación crítica)
Solución (estimada):
- Algoritmo: HNSW (per-tenant index)
- Arquitectura: Pinecone (managed, isolation nativa)
- Costo: $70-200/month por tenant
Trade-off: Managed service más costoso pero reduce ops overhead.
✅ Resumen del Módulo 2
Lo que dominaste
1. Arquitectura de 3 capas:
- ✅ Layer 1 (Indexing): Construir estructura de búsqueda
- ✅ Layer 2 (Query Engine): Ejecutar búsqueda + filtros
- ✅ Layer 3 (Storage): Persistir con durabilidad
2. Algoritmos de indexing:
- ✅ HNSW: O(log n), 98% accuracy, mejor para <1M vectores
- ✅ IVF: O(sqrt(n)), 93% accuracy, mejor para 1M-5M vectores
- ✅ PQ: O(n) compressed, 88% accuracy, mejor para >5M vectores
3. Decision framework:
- ✅ Elegir algoritmo según requisitos (accuracy, latency, memoria, budget)
- ✅ Configurar parámetros (M, efConstruction, nlist, nprobe, m, nbits)
- ✅ Migration path (HNSW → IVF → IVF+PQ según scale)
4. Aplicación a RAG:
- ✅ Optimizar retrieval bottleneck (60% de latency)
- ✅ Trade-off accuracy vs cost (10% accuracy → 8x cost savings)
- ✅ Configurar según escenario (chatbot vs search vs analytics)
🎓 Habilidades desbloqueadas
Ahora puedes:
-
Debuggear performance issues
Problema: "Retrieval tarda 500ms" Análisis: - Layer 1 (indexing): 450ms ← BOTTLENECK - Layer 2 (query): 30ms - Layer 3 (storage): 20ms Solución: - Rebuild índice HNSW con efConstruction=200 (vs 100) - Resultado: 50ms retrieval (9x improvement) -
Optimizar costos
Problema: "ChromaDB consume 64 GB RAM" Análisis: - 10M vectores × 6 KB = 60 GB - HNSW overhead: 4 GB Solución: - Migrar a IVF+PQ - Resultado: 12 GB RAM (5x reducción) - Trade-off: 98% → 88% accuracy (aceptable para uso interno) -
Tomar decisiones arquitectónicas
Pregunta: "¿ChromaDB o Pinecone?" Decision tree: - < 1M vectores → ChromaDB (self-hosted, free) - 1M-10M vectores → Pinecone (managed, $70-200/month) - > 10M vectores → Faiss IVF+PQ (self-hosted optimizado) Justificación: Scale + ops overhead vs cost
🔗 Conexión con próximos módulos
Módulo 3: Features Esenciales para RAG
Ahora que entiendes CÓMO funcionan vector databases internamente, aprenderás QUÉ features necesitas para RAG:
Temas:
- Metadata filtering (where clauses)
- Hybrid search (keyword + semantic)
- Multi-tenancy (aislamiento de datos)
- Batch operations (bulk insert/update)
- Monitoring y observability
Con tu conocimiento de arquitectura interna, sabrás POR QUÉ estas features son importantes y CÓMO impactan performance.
Módulo 4-5: ChromaDB Hands-On
Implementarás RAG system con ChromaDB:
- Setup HNSW con parámetros optimizados
- Configurar metadata filtering
- Benchmark performance (validar <50ms retrieval)
Tu conocimiento de HNSW te permitirá configurar inteligentemente (no solo copiar tutorial).
Módulo 6-8: Production Considerations
Escalarás RAG system:
- Cuándo migrar de ChromaDB a Pinecone/Weaviate
- Optimizar costos (HNSW → IVF cuando >1M vectores)
- Monitoring de accuracy degradation
Tu conocimiento de algoritmos te permitirá tomar decisiones informadas de arquitectura.
✅ Test final del módulo
Valida que dominaste Módulo 2:
Pregunta 1
Tu RAG system tiene 500K vectores, accuracy debe ser >95%, latency <500ms, budget limitado.
¿Qué algoritmo y DB usarías?
Solución
HNSW con ChromaDB (self-hosted)
Razón:
- Accuracy: 98% ✅ (cumple >95%)
- Latency: 18ms ✅ (cumple <500ms)
- Memoria: 3 GB ✅ (razonable)
- Costo: $0 self-hosted ✅ (budget limitado)
Configuración:
collection = client.create_collection(
name="docs",
metadata={
"hnsw:M": 16,
"hnsw:construction_ef": 200,
"hnsw:search_ef": 100,
}
)
Pregunta 2
Tu retrieval tarda 300ms. Profiling muestra: Layer 1 (indexing) = 250ms, Layer 2 = 30ms, Layer 3 = 20ms.
¿Qué optimizarías?
Solución
Optimizar Layer 1 (Indexing)
Acciones:
- Verificar algoritmo: ¿HNSW o IVF?
- Si HNSW: Reducir
efSearch(200 → 100) - Si IVF: Reducir
nprobe(100 → 50) - Verificar tamaño de dataset: Si >1M vectores, considerar migrar HNSW → IVF
Justificación:
- Layer 1 domina 83% de latency (250ms / 300ms)
- Layers 2-3 son razonables (50ms)
- Optimizar Layer 1 = mayor ROI
Pregunta 3
Tienes 20M vectores, RAM limitado (16 GB), accuracy 88% es aceptable.
¿Qué configuración usarías?
Solución
IVF + PQ con Faiss
import faiss
dimension = 1536
nlist = 4472 # sqrt(20M)
m = 8
nbits = 8
index = faiss.IndexIVFPQ(
faiss.IndexFlatL2(dimension),
dimension,
nlist,
m,
nbits
)
index.nprobe = 50 # 1% de clusters
Resultado:
- Memoria: ~12 GB ✅ (cabe en 16 GB)
- Accuracy: ~88% ✅ (cumple requisito)
- Latency: ~90ms ✅
Alternativa (si RAM aún no alcanza):
- Reducir
nbits = 4(compresión 12x) - Accuracy baja a ~85%
- Memoria: ~6 GB Si respondiste 2-3/3 correctamente → ✅ DOMINASTE MÓDULO 2
🚀 Próximo paso: Módulo 3
Ya entiendes:
- ✅ POR QUÉ necesitas vector databases (Módulo 1)
- ✅ CÓMO funcionan internamente (Módulo 2)
Ahora aprenderás:
- 🎯 QUÉ features son esenciales para RAG (Módulo 3)
Módulo 3: Features Esenciales para RAG
Temas:
- Metadata filtering (where clauses) → Por qué Layer 2 importa
- Hybrid search (keyword + semantic) → Combinar BM25 + vector search
- Multi-tenancy (aislamiento) → Security en multi-customer RAG
- Batch operations → Optimizar ingestion de 1M documentos
- Monitoring → Detectar accuracy degradation
Duración: 60-75 minutos (8 cápsulas)
¿Listo? Ve a Módulo 3 - Features Esenciales para RAG
Tiempo de lectura: 5-7 minutos
Siguiente módulo: ../../../module-03-features-esenciales-rag/es/01-introduccion-modulo.md