Chunking avanzado para RAG privado
Muchos RAG fallan antes de llegar al modelo: cortan párrafos por la mitad, pierden títulos, mezclan temas y no guardan metadatos. Chunking avanzado significa preservar sentido, no solo contar tokens.
Objetivos de aprendizaje
- Evitar chunks fijos que cortan ideas.
- Guardar headings, página, documento, fecha y permisos.
- Evaluar recuperación con preguntas reales.
En cristiano: chunk. Es un fragmento de documento que se convierte en embedding y luego se recupera para responder. Si el chunk está mal hecho, el RAG recupera ruido.
Terminal
chunk:
text: "El cliente puede devolver el producto durante 14 días..."
metadata:
document_id: "politica-devoluciones"
heading_path: ["Atención al cliente", "Devoluciones"]
page: 3
language: "es"
updated_at: "2026-07-05"
tenant_id: "acme"
source_url: "docs/devoluciones.pdf" Idea clave. El título y la ruta de sección son parte del significado. Un chunk sin heading suele quedar huérfano.
Reglas prácticas
- Corta por secciones, párrafos y frases antes que por tamaño fijo.
- Usa overlap cuando una explicación continúa entre chunks.
- No mezcles tablas, notas legales y narrativa en el mismo fragmento.
- Guarda metadatos para filtrar antes de buscar.
- Evalúa con preguntas que el usuario haría de verdad.
Cuidado. Más chunks no significa mejor RAG. Puede subir recall y bajar precisión si llenas la base de fragmentos redundantes.
Terminal
eval_recuperacion:
pregunta: "¿Cuántos días tengo para devolver un producto?"
debe_recuperar:
- document_id: "politica-devoluciones"
heading: "Devoluciones"
no_debe_recuperar:
- "garantias"
- "envios" Comprueba que funciona. Reindexa el mismo documento con dos estrategias y compara top-5 resultados para 20 preguntas. Si no mides recuperación, solo estás cambiando trozos.
Guardar y reabrir el proyecto.
Un buen chunk conserva sentido, fuente y permisos. El embedding solo es tan bueno como el texto y metadatos que le das.