Skip to content

English · Español

Fase 29 — Generación aumentada con recuperación (RAG)

Requiere: 13 — Embeddings y espacios de representación · 28 — Fine-tuning, LoRA, QLoRA Enseña: rag · chunking · bm25 · hnsw · hybrid-search · reranking Salta a cualquier capítulo desde el índice de referencia de fases.

Mapa del capítulo

Preescrita según A12. La teoría y los enunciados de los laboratorios son borradores estables; las soluciones se escriben justo a tiempo al abrir la fase.

RAG = recuperar primero, generar después. En vez de meter las reglas de gramática en los pesos del modelo, las dejamos en una base vectorial y las traemos al vuelo. Para consultas como "¿cuál es el past participle de eat?" basta con MiniGPT + un buen retriever. Esta fase construye el pipeline a mano: chunker, embedding store, BM25, reranker, lector.


Objetivo

Construir un pipeline mínimo de RAG (Retrieval-Augmented Generation) anclado en una base de conocimiento curada a mano con reglas de gramática verbal inglesa (cubriendo el alcance de §A13: 5 tiempos, 3 personas, 20 verbos, más pares en español). Dada una consulta como "what's the past participle of eat?" o "how do you say 'I will work' in Spanish?", el pipeline recupera los chunks de reglas relevantes, opcionalmente los rerankea, y pide a MiniGPT (con el adaptador LoRA de la Fase 28) que produzca una respuesta fundamentada (grounding) con citas.

El artefacto es un CLI: verb-tutor ask "what's the past participle of eat?" → respuesta + lista (chunk_id, score).

Ubicación del módulo

El toolkit de RAG vive en src/minirag/ (nuevo en esta fase): chunk.py, embed.py, index.py, bm25.py, retrieve.py, rerank.py, generate.py, cli.py. La base de conocimiento vive en data/kb/grammar-rules/. Ver src/minirag/BLUEPRINT.md para el contrato de la API.

Orden de lectura

  1. theory/00-motivation.md — por qué RAG; el tradeoff closed-book vs open-book en LLMs.
  2. theory/01-embeddings-and-biencoders.md — bi-encoders, cross-encoders, objetivos de entrenamiento.
  3. theory/02-chunking-and-indexes.md — estrategias de chunking; flat / IVF / HNSW; las estructuras.
  4. theory/03-hybrid-search-and-reranking.md — BM25, dense, RRF, pipelines de reranking.
  5. theory/04-evaluation.md — hit-rate, MRR, recall@k, faithfulness, métricas end-to-end.
  6. lab/00-kb-curation.md — curar a mano la KB de 50 chunks de reglas gramaticales.
  7. lab/01-bi-encoder-baseline.md — implementar recuperación (retrieval) densa; medir hit-rate@k.
  8. lab/02-bm25-and-hybrid.md — implementar BM25; combinar con dense vía RRF; mostrar que el híbrido gana.
  9. lab/03-end-to-end-rag.md — conectar reader + retriever + CLI; medir faithfulness.

solutions/ se rellena al abrir la fase, una vez que la API de src/minirag/ se estabilice.

Definition of Done

Ver PHASE_29_PLAN.md §6. Brevemente:

  • KB curada (~50 chunks, matriz verbo-tiempo-persona §A13 + español).
  • src/minirag/{chunk,embed,index,bm25,retrieve,rerank,generate,cli}.py implementados.
  • Hit-rate@5 ≥ 0.80; MRR ≥ 0.60 en el conjunto sintético de eval.
  • Híbrido bate a dense-solo y a BM25-solo por ≥ 5pp en hit-rate@5.
  • Faithfulness ≥ 70% en una eval cualitativa de 30 consultas.
  • El CLI verb-tutor ask funciona de extremo a extremo con citas.

Lo que esta fase intencionalmente NO cubre

  • langchain / llama-index / haystack. Anti-goal §10. Lo construimos todo a mano.
  • Bases vectoriales a escala de producción. Nada de Pinecone, Weaviate o Milvus. FAISS-flat sobra para una KB de 50 docs.
  • Recuperación multimodal. Solo texto.
  • Reescritura de consultas (HyDE, multi-query). Mencionado en la teoría; no implementado. Se revisita en la Fase 32 si resulta útil.
  • Infraestructura de streaming / serving. Fase 33.
  • Fine-tuning del modelo de embedding. Usamos un modelo preentrenado sentence-transformers tal cual.
  • Entrenamiento del reranker. Usamos un cross-encoder preentrenado tal cual.
  • Tool-calling para recuperación. Territorio de la Fase 31 (MCP).

El alcance de la Fase 29 es un pipeline RAG pequeño, hecho a mano, fundamentado en reglas de gramática verbal, con métricas medibles de recuperación y faithfulness. Nada más.

Lecturas recomendadas

Opcional — enriquece pero no es necesario para aprobar la fase.