Capítulo 10 · RAG · 9 min
Leer tus documentos
Cómo un LLM accede a miles de páginas sin memorizarlas. Embeddings, búsqueda semántica, contexto inyectado.
Buscar antes de responder
Un LLM sabe lo que fue comprimido en sus pesos durante el entrenamiento. Pero tu documentacion interna, tus notas, tus facturas o una pagina publicada ayer no estan necesariamente ahi.
El RAG añade una etapa antes de la generacion: buscar documentos relevantes, ponerlos en el contexto, y dejar que el modelo responda con esa informacion.
Elige una pregunta: se embeddea, se compara con los chunks del corpus, y los más pertinentes se inyectan en el prompt antes de la generación. Es ese desvío el que permite a un LLM responder sobre documentos que nunca vio durante su entrenamiento.
De documentos a vectores
Primero se cortan los documentos en chunks. Cada chunk se convierte en un embedding y se guarda en una base vectorial.
Cuando llega una pregunta, tambien se convierte en vector. Luego buscamos los chunks mas cercanos por similitud semantica. No buscamos solo palabras iguales: buscamos significado cercano.
El prompt aumentado
Los chunks recuperados se insertan en el prompt:
Pregunta del usuario + contexto recuperado + instrucciones de respuesta
El modelo no "aprende" esos documentos de forma permanente. Los lee en ese momento, dentro de la ventana de contexto.
Por que es util
RAG resuelve tres problemas practicos:
- actualidad — puedes responder con informacion mas reciente que el entrenamiento
- especializacion — puedes usar documentos privados o tecnicos
- trazabilidad — puedes mostrar de donde viene una respuesta
Pero no es magia. Si la busqueda recupera malos chunks, el modelo razonara con malos datos.
Fragilidades
Un pipeline RAG puede fallar por varias razones:
- chunks demasiado grandes o demasiado pequeños
- embeddings poco adaptados al dominio
- preguntas que necesitan combinar muchas fuentes
- contexto recuperado contradictorio
- modelo que ignora una parte del contexto
La calidad depende tanto del retrieval como del modelo generativo.
Que modelo de embedding usar?
No todas las preguntas llevan a los buenos chunks con el mismo embedding. Un modelo entrenado en español generalista recuperara mal codigo Python; un modelo entrenado en codigo recuperara mal intercambios medicos.
Las opciones que vuelven en la practica:
text-embedding-3-small/-large(OpenAI) — calidad solida, generalista, multilingüe. La opcion por defecto al empezar.bge-large/bge-m3(BAAI) — open-source, excelente en multilingüe, top de los benchmarks MTEB en 2024.all-MiniLM-L6-v2(Sentence-Transformers) — pequeño, rapido, desplegable en local. Buena relacion calidad/coste para casos simples.- Modelos especializados por dominio (codigo, biomedico, juridico) — siempre mejores en su nicho, mas debiles fuera.
Una regla practica: probar dos o tres modelos sobre tus datos y tus preguntas. El ranking MTEB no dice gran cosa de tu caso particular.
El reranker: una segunda pasada
La busqueda vectorial tiene un defecto: es rapida pero gruesa. Un embedding de unos cientos de dimensiones es una media difusa de un texto. Muchos chunks "mas o menos relevantes" salen a flote, y los realmente buenos a veces se quedan ahogados.
De ahi una etapa que se ha vuelto estandar en sistemas RAG serios: el reranker.
La idea, en dos pasos:
- Primera pasada (busqueda vectorial) — recuperar los 50 o 100 chunks mas cercanos. Rapido.
- Segunda pasada (reranking) — un modelo pequeño (a menudo un cross-encoder) evalua cada par
(pregunta, chunk)juntos, da una puntuacion precisa y conserva el top 5–10. Lento por chunk, pero solo se hace sobre los 50 candidatos de la primera pasada.
El reranker ve la pregunta y el chunk al mismo tiempo, lo que el embedding no hace. Capta sutilezas semanticas que la busqueda vectorial pierde. Cohere, Jina AI, BAAI ofrecen rerankers listos para usar.
Sin reranker, tu RAG se estanca. Con reranker, la calidad sube un escalon sin cambiar el resto del pipeline.
Lo siguiente
Con RAG, el modelo puede consultar documentos. Con herramientas, puede hacer todavia mas: calcular, llamar APIs, navegar, escribir archivos. Eso nos lleva a los agentes.
Actualizado el