MÓDULO 11 · RAG AVANZADO · 25 MIN

Enriquecer el chunk: Contextual RAG y Parent-Child

Un chunk que no se entiende leído a solas tampoco le sirve al modelo. Hay dos formas de arreglarlo, y son opuestas en coste: escribirle encima el contexto que le falta —una llamada al LLM por chunk, pagada al indexar— o buscar sobre trozos pequeños y entregar el trozo grande del que salieron, que no cuesta prácticamente nada. Casi siempre conviene probar la segunda primero.
01 — Contextual RAG
Escribirle al chunk de dónde viene

La idea, desarrollada por Anthropic, es sencilla: antes de generar el embedding, un LLM lee el documento completo y redacta dos o tres frases que sitúan ese chunk dentro de él. Lo que se indexa es el contexto más el chunk.

Qué se indexa
Antes«La política cambiaría el próximo trimestre»
Después«Este fragmento es del informe anual de TechCorp, sección Anuncios del CEO. Describe cambios en la política de trabajo remoto. | La política cambiaría el próximo trimestre»

El chunk enriquecido responde solo a las tres preguntas que el original dejaba abiertas: de qué documento viene, de qué habla y a qué se refieren sus pronombres. Y como el embedding se calcula sobre el texto completo, también se encuentra mejor: la consulta «política de trabajo remoto de TechCorp» ya casa con él.

El precio es directo y hay que hacerlo consciente: una llamada al LLM por cada chunk, pagada durante la indexación y otra vez en cada reindexado.

02 — Parent-Child
Buscar en pequeño, entregar en grande

La otra vía no toca el contenido: cambia qué se busca y qué se devuelve. Se trocea dos veces —trozos grandes, y dentro de cada uno trozos pequeños—, se indexan solo los pequeños, y cuando uno de ellos casa con la consulta se entrega el grande del que forma parte.

parent  ─── 2000 caracteres ──────────────────────────────
   ├─ child 1 (400)   ← se indexa y se busca
   ├─ child 2 (400)   ← casa con la consulta
   └─ child 3 (400)

recupera → el PARENT completo, no el child

Resuelve exactamente el compromiso que hacía elegir tamaño de chunk: los trozos pequeños dan precisión al buscar —un fragmento corto es semánticamente nítido— y el trozo grande da contexto al responder. Ya no hay que elegir.

Un detalle de implementación que se olvida y produce resultados repetidos: varios children del mismo parent pueden casar con la misma consulta, así que hay que deduplicar por padre y recuperar de más para compensar. Si no, los tres huecos del top-K se llenan con el mismo texto grande tres veces.

// sin deduplicar por parent, tres aciertos distintos devuelven el mismo documento
03 — Cuál primero
La comparación que decide
Contextual RAGParent-Child
Coste de indexarUna llamada al LLM por chunkNinguno: solo trocear dos veces
Coste por consultaNormalNormal
Qué resuelveReferencias ambiguas, pronombres, falta de origenContexto insuficiente alrededor del acierto
Mejora el encontrarSí: el embedding lleva más señalNo: se busca sobre el mismo texto
Cuándo no sirveChunks ya autocontenidosEl problema es la ambigüedad, no la longitud

La fila que decide es la penúltima. Si tu problema es que no encuentras el chunk correcto, Parent-Child no te ayuda: busca sobre el mismo texto de siempre. Si tu problema es que lo encuentras y no se entiende, Parent-Child lo arregla gratis y Contextual RAG te cobra por hacer lo mismo con más elegancia.

Auditoría El material da aquí una de las pocas cifras honestas de todo el curso: «Contextual RAG requiere una llamada LLM por chunk durante indexación. Para 1000 chunks, esto puede costar ~$1-5 USD». Nombra el mecanismo, da un rango y aparece donde hace falta decidir. Le falta una condición, y es la que más mueve el número: el prompt mete el documento completo en cada llamada, así que el coste escala con chunks × longitud del documento, no con el número de chunks. Contextualizar 1.000 fragmentos de un manual largo significa reenviar ese manual 1.000 veces. ¿Cuántos tokens tiene tu documento, y cuánto sale esa multiplicación en tu caso? Es la cuenta que conviene hacer antes de lanzar la indexación, no después.
Para hacer
La prueba del chunk a solas

Coge diez chunks al azar de tu índice y léelos sin mirar de dónde vienen. Marca cuántos podrías explicarle a alguien sin más información — cuántos se sostienen solos.

Si suspenden muchos, mira por qué: si es porque les falta el origen o tienen pronombres sin antecedente, necesitas contexto; si es porque están cortados a media idea, necesitas devolver el padre. Son dos diagnósticos distintos con dos precios muy distintos, y la lectura de cinco minutos te ahorra elegir el caro por defecto.