Syllabus — Fundamentos de Retrieval-Augmented Generation (RAG)
Fecha: 2026-06-02
Duración estimada: 24–32 horas (7 unidades)
Formato: Autogestionado, práctico, basado en notebooks Jupyter ejecutables
Stack tecnológico: Python 3.11+ · LangChain · ChromaDB · FAISS · BM25 · Sentence-Transformers · Ollama · DeepEval
Prerrequisitos
| Conocimiento | Nivel requerido |
|---|---|
| Python | Intermedio básico: scripts, listas/diccionarios, funciones, imports |
| Machine Learning | Nociones generales: qué es un modelo, entrenamiento vs inferencia, similitud entre textos |
| Jupyter Notebook | Saber ejecutar celdas, leer outputs, modificar código |
| Línea de comandos | Instalar paquetes con pip, ejecutar scripts |
No se requiere experiencia previa con LLMs, embeddings, sistemas de recuperación ni arquitecturas RAG.
Estructura del curso
| Unidad | Título | Tipo de experiencia | Formato | Duración |
|---|---|---|---|---|
| U1 | Introducción a RAG | conceptual-clarity + guided-practice | Markdown | 4–5 h |
| U2 | Embeddings y Búsqueda Semántica | guided-practice + conceptual-clarity | Notebook | 5–6 h |
| U3 | Estrategias de Chunking | guided-practice | Notebook | 2 h |
| U4 | Retrieval — Denso, Disperso e Híbrido | decision-lab + guided-practice | Notebook | 3–4 h |
| U5 | Integración con LLMs — Locales y Cloud | guided-practice + decision-lab | Notebook | 2 h |
| U6 | Evaluación de Sistemas RAG | decision-lab + guided-practice | Notebook | 2 h |
| U7 | Proyecto Final RAG (integrador) | project-builder | Notebook + Informe | 6–8 h |
Unidad 1 — Introducción a RAG: De la Recuperación a la Generación
Propósito: Establecer la base conceptual del curso: por qué los LLMs puros no bastan y cómo RAG resuelve las limitaciones fundamentales.
Contenido:
- Las tres limitaciones de los LLMs puros: conocimiento estático, sin acceso a datos privados, alucinación
- El patrón Retrieve → Augment → Generate con ejemplos concretos
- Arquitectura completa: pipeline de ingestión (offline) vs pipeline de consulta (online)
- Diagramas de arquitectura del flujo RAG y de los pipelines de ingestión/consulta
- Comparativa RAG vs búsqueda tradicional vs fine-tuning vs prompting largo (tabla de 7 dimensiones)
- Ejemplo walkthrough: FAQ sobre un producto real (SmartFridge X200) — LLM puro alucina, RAG responde con fidelidad
Práctica incluida: Configuración del entorno Python (langchain, chromadb, faiss-cpu, ollama, sentence-transformers), prueba de embeddings con similitud coseno.
Evidencia de aprendizaje: Actividad con 3 partes: (A) explicar la arquitectura RAG con diagrama propio, (B) clasificar 5 escenarios donde RAG supera a LLM puro, (C) reflexión sobre un caso de uso propio.
Conexión: Prepara la base conceptual para todas las unidades siguientes.
Unidad 2 — Embeddings y Búsqueda Semántica
Propósito: Comprender qué es un embedding, cómo captura significado semántico, y cómo usarlo para buscar documentos por similitud.
Contenido:
- Definición de embedding: vector denso en espacio continuo, propiedades (densidad, continuidad, direccionalidad)
- Similitud coseno como métrica de cercanía semántica
- Por qué embeddings superan a búsqueda por palabras clave (BM25, SQL LIKE)
- Carga del modelo
BAAI/bge-small-en-v1.5(33M params, 384 dimensiones) - Generación de embeddings para 6 oraciones y matriz de similitud (gato/felino ~0.85, gato/lluvia ~0.3)
- Construcción de índice FAISS con 20 documentos de productos tecnológicos
- Búsqueda con 5 consultas variadas (monitor, teclado ergonómico, silla, audífonos, disco duro)
- Integración con ChromaDB: inserción con metadatos y búsqueda con filtro por categoría
Práctica incluida: Cálculo de precision@k, experimentación variando consultas y observando cambios en resultados, indexación de documentos propios.
Evidencia de aprendizaje: Indexar al menos 5 documentos propios, ejecutar 3 consultas, y reportar la precision@3 obtenida.
Conexión: Los embeddings generados aquí son el input para el chunking (U3) y el retrieval (U4).
Unidad 3 — Estrategias de Chunking
Propósito: Experimentar con diferentes estrategias de división de documentos y medir su impacto en la calidad de recuperación.
Contenido:
- ¿Qué es chunking y por qué importa? Datos de Weaviate 2025 (brecha de hasta 9% en recall) y Vecta Benchmark 2026 (recursive 69% > semántico 54%)
- Parámetros críticos: chunk_size, chunk_overlap, separadores
- Estrategias cubiertas: fixed-size, recursive character, semantic chunking
- Corpus real: manual del SmartFridge X200 (3 secciones: especificaciones, solución de problemas, garantía)
- Evaluación comparativa: 3 consultas × 3 estrategias con medición de recall
- Visualización de chunks con colores diferenciados
Práctica incluida: Experimentación variando chunk_size y chunk_overlap, medición de recall@k para cada configuración.
Evidencia de aprendizaje: Tabla comparativa de las 3 estrategias con resultados cuantitativos, identificación de la estrategia óptima según tipo de consulta.
Conexión: Los chunks generados alimentan el retrieval denso, disperso e híbrido de la Unidad 4.
Unidad 4 — Retrieval: Denso, Disperso e Híbrido
Propósito: Implementar y comparar tres paradigmas de recuperación —denso (FAISS), disperso (BM25) e híbrido (RRF)— con reranking por cross-encoder.
Contenido:
- El problema de la recuperación: encontrar las "agujas en el pajar" entre chunks
- Recuperación densa: embeddings + FAISS (IndexFlatIP), búsqueda semántica
- Recuperación dispersa: BM25, frecuencia de términos, vocabulario, manejo de consultas sin términos
- Comparación directa denso vs disperso sobre las mismas consultas
- Fusión híbrida con Reciprocal Rank Fusion (RRF): fórmula y efecto del parámetro k
- Reranking con cross-encoder (ms-marco-MiniLM-L-6-v2): discriminación fina
- Experimento comparativo: 3 consultas × 4 métodos (dense, sparse, hybrid, hybrid+rerank) con métricas P@5 y MRR
Práctica incluida: Modificar el parámetro k de RRF y observar cambios en rankings, experimentar con consultas de diferente tipo (literal, inferencia, fuera de contexto).
Evidencia de aprendizaje: Tabla de métricas experimentales, interpretación de qué método funciona mejor para cada tipo de consulta.
Conexión: Los chunks recuperados aquí alimentan el generador LLM de la Unidad 5.
Unidad 5 — Integración con LLMs: Locales y Cloud
Propósito: Cerrar el ciclo RAG conectando el retriever con un LLM generador (Ollama local + OpenAI API opcional).
Contenido:
- Estructura de un RAG prompt: System + Contexto + Pregunta
- Pipeline completo: chunking → embeddings → FAISS → BM25 → híbrido (RRF) → reranking → generación
- Implementación con Ollama (gemma4:latest, 8B) como LLM local
- Experimento LLM puro vs RAG: misma consulta, dos respuestas contrastadas
- Efecto de la temperatura en la variabilidad de respuestas (0.0, 0.5, 1.0)
- Tres tipos de consulta: literal, inferencia, fuera de contexto
- OpenAI como alternativa cloud (opcional, requiere API key)
Práctica incluida: Ejecutar consultas propias, comparar respuestas con y sin contexto, experimentar con temperatura, identificar casos donde RAG supera a LLM puro.
Evidencia de aprendizaje: Tabla comparativa con 3 consultas mostrando LLM puro vs RAG, reflexión sobre la reducción de alucinaciones.
Conexión: El pipeline completo de aquí es el sujeto de evaluación de la Unidad 6.
Unidad 6 — Evaluación de Sistemas RAG
Propósito: Medir objetivamente la calidad de un sistema RAG usando métricas estandarizadas y un framework de evaluación.
Contenido:
- Las 4 métricas fundamentales: faithfulness, answer relevancy, context precision, context recall
- DeepEval 4.0.5 como framework de evaluación (con wrapper OllamaGemma)
- Faithfulness: ¿la respuesta se alinea con el contexto? Verificación claim por claim con Gemma4
- Answer Relevancy: ¿la respuesta responde la pregunta? Statements extraídos y verificados
- Context Precision: proporción de chunks relevantes entre los recuperados (cálculo manual con ranking)
- Context Recall: proporción de la información relevante que fue recuperada
- Experimento: 3 consultas × 4 métricas con análisis de resultados
- Experimento adicional: variación de chunk_size (300 vs 600 vs 900 caracteres) y efecto en recall
Práctica incluida: Modificar parámetros de chunking/retrieval, observar cambios en métricas, diagnosticar causas de faithfulness baja o recall insuficiente.
Evidencia de aprendizaje: Tabla de métricas para 3 consultas, identificación de la consulta mejor y peor evaluada, diagnóstico de por qué.
Conexión: Las métricas aquí aprendidas se usan en el Proyecto Final (U7) para evaluar el sistema construido.
Unidad 7 — Proyecto Final: Asistente RAG sobre Corpus Real
Propósito: Integrar todas las habilidades del curso en un proyecto autocontenido sobre un corpus de elección del estudiante.
Contenido:
- Pipeline RAG completo en un solo notebook: chunking → embeddings → FAISS → BM25 → híbrido (RRF) → reranking → generación con Ollama → evaluación con DeepEval
- Guía para seleccionar un corpus propio (documentos técnicos, FAQs, artículos, correos)
- Pipeline demo sobre SmartFridge X200 (fallback automático si no hay corpus propio)
- Comparación RAG vs LLM puro con 2 consultas de prueba
- Evaluación cuantitativa: faithfulness, answer relevancy, precision@k, average precision, recall
- Plantilla de informe técnico (unit-7-report.md): 5 secciones con rúbrica de autoevaluación
Práctica incluida: Seleccionar corpus, ejecutar el pipeline completo, evaluar con métricas, documentar decisiones técnicas en el informe.
Evidencia de aprendizaje: Informe técnico completo con arquitectura, resultados experimentales, decisiones técnicas y reflexión personal. Autoevaluación contra 6 criterios (18 pts máx).
Cierre: Conexión con aplicaciones reales (chatbots documentales, asistentes de soporte, búsqueda corporativa, investigación académica).
Evidencias de aprendizaje por unidad
| Unidad | ¿Qué entrega el estudiante? | Formato |
|---|---|---|
| U1 | Explicación escrita de arquitectura RAG + clasificación de 5 escenarios + caso propio | Respuestas en el mismo documento |
| U2 | Notebook ejecutado con 5+ documentos propios indexados y precision@3 reportada | Notebook .ipynb con outputs |
| U3 | Notebook con tabla comparativa de 3 estrategias y análisis de recall | Notebook .ipynb con outputs |
| U4 | Notebook con tabla de métricas experimentales (3 consultas × 4 métodos) | Notebook .ipynb con outputs |
| U5 | Notebook con tabla comparativa LLM-puro vs RAG y reflexión | Notebook .ipynb con outputs |
| U6 | Notebook con tabla de 4 métricas para 3 consultas y diagnóstico | Notebook .ipynb con outputs |
| U7 | Informe técnico (5 secciones) + notebook ejecutado con pipeline completo | unit-7-report.md + .ipynb |
Stack tecnológico del curso
| Componente | Herramienta | Versión / Modelo |
|---|---|---|
| Lenguaje | Python | 3.11+ |
| Embeddings | BAAI/bge-small-en-v1.5 | 33M params, 384 dims |
| Vector store | ChromaDB + FAISS (IndexFlatIP) | chromadb ≥0.5, faiss-cpu |
| Chunking | LangChain (RecursiveCharacterTextSplitter) | langchain-text-splitters |
| Retrieval disperso | rank_bm25 | BM25Okapi |
| Reranking | cross-encoder/ms-marco-MiniLM-L-6-v2 | Sentence Transformers |
| LLM local | Ollama (gemma4:latest) | 8B params |
| LLM cloud | OpenAI GPT-4o-mini (opcional) | API key requerida |
| Evaluación | DeepEval 4.0.5 | FaithfulnessMetric, AnswerRelevancyMetric |
| Marco | LangChain + LangChain Community | langchain ≥1.3 |
Modo de uso del curso
- Ejecución secuencial: Las unidades están diseñadas para cursarse en orden (U1 → U2 → ... → U7). Cada unidad construye sobre la anterior.
- Por unidad:
- Unidad 1 (Markdown): Leer el texto conceptual, ejecutar los comandos de setup en terminal, completar la actividad escrita.
- Unidades 2–7 (Notebooks): Abrir cada
.ipynben Jupyter, leer las celdas Markdown, ejecutar las celdas de código en orden, modificar donde se indique, completar la actividad al final.
- Archivos importantes:
source/units/unit-1.mdaunit-7.ipynb— Material de estudiosource/units/unit-7-report.md— Plantilla de informe del proyecto finaldata/manual-smartfridge-X200.txt— Corpus de ejemplo para todas las unidadesresearch/rag-ecosystem-2026.md— Investigación que fundamenta las decisiones técnicas del cursodecisions.md— Decisiones de diseño documentadas
- Para ejecutar notebooks se requiere el runtime descrito en la sección Stack tecnológico. El entorno Docker del curso incluye todas las dependencias preinstaladas.
- Duración sugerida: 24–32 horas totales, distribuidas en 3–4 sesiones de 6–8 horas, o 7 sesiones de 3–5 horas cada una.
Este syllabus es fiel al contenido real de las 7 unidades del curso, verificadas por lectura directa de los archivos source/units/unit-1.md a unit-7.ipynb y source/units/unit-7-report.md.