Generación aumentada por recuperación (RAG)
- Qué es RAG y el bucle recuperar-aumentar-generar
- Cómo indexar, recuperar, aumentar y generar con citas
- Por qué RAG supera al fine-tuning para necesidades de 'responder sobre mis documentos'
- Los cinco modos de fallo que matan la calidad de RAG
- Un prompt de fundamentación listo para copiar y pegar que cierra las dos mayores brechas
RAG hace que un modelo responda preguntas sobre tus datos — documentos, una base de conocimiento, una base de código — con los que nunca fue entrenado. La idea es simple: recuperar las piezas relevantes, aumentar el prompt con ellas y luego generar una respuesta fundamentada en esas piezas.
El bucle
- Divídelos en fragmentos, embébelos (consulta /docs/foundations/embeddings) y almacénalos en un índice vectorial (y/o de palabras clave).
- Extrae los principales fragmentos más relevantes para la pregunta.
- Pon esos fragmentos en el prompt con una instrucción como "Responde solo a partir del contexto siguiente; si no está ahí, dilo."
- Produce la respuesta — e idealmente cita de qué fragmento proviene cada afirmación.
Para el paso de embedding dentro de la indexación, consulta Embeddings y búsqueda vectorial.
¿Por qué RAG en lugar de fine-tuning?
- Fresco: actualizas los datos, no el modelo
- Verificable: proporciona citas
- Barato: mucho más barato que reentrenar
Para la mayoría de las necesidades de "responder sobre mis documentos", RAG es la herramienta correcta para empezar — consulta Fine-tuning vs prompting vs RAG.
Los modos de fallo (donde muere la calidad de RAG)
- Mala recuperación = mala respuesta. Si el fragmento correcto no se recupera, el modelo no puede usarlo. La mayoría de los problemas de 'RAG se equivoca' son problemas de recuperación.
- Fragmentar demasiado grueso/fino arruina la relevancia (consulta embeddings).
- Sin instrucción de fundamentación: el modelo mezcla los hechos recuperados con sus propias conjeturas. Dile que responda solo a partir del contexto y que admita las lagunas.
- Meter demasiado: los fragmentos irrelevantes diluyen la señal y cuestan tokens. Recupera pocos fragmentos, de alta calidad.
- Sin citas: no puedes verificar, así que no puedes confiar.
El fallo de fragmentación se remonta a los embeddings, y meter de más cuesta tokens.
- Evalúa la recuperación por separado: mide '¿recuperamos el fragmento correcto?' aparte de '¿respondió bien el modelo?'. Localiza el problema rápidamente. Consulta Evals (/docs/foundations/evals).
Copiar y pegar: un prompt de fundamentación
La solución de mayor impacto individual es una instrucción de fundamentación. Coloca tus fragmentos recuperados en una plantilla como esta — obliga al modelo a responder solo a partir del contexto, citar cada afirmación y admitir las lagunas en lugar de adivinar:
Prompt de fundamentación
You are answering strictly from the context below. Rules: - Use ONLY the context to answer. Do not use outside knowledge. - Cite the source after each claim, like [chunk 2]. - If the answer is not in the context, reply exactly: "I don't have that in the provided sources." - Quote numbers and names verbatim — never paraphrase a figure. Context: [chunk 1] ... [chunk 2] ... [chunk 3] ... Question: <the user's question>
Combínalo con unos pocos fragmentos de alta calidad (no todo lo que recuperaste) y cerrarás las dos mayores brechas a la vez: la mezcla alucinada y las respuestas no verificables. Luego evalúa la recuperación y la generación por separado para saber qué mitad ajustar.
Domina los términos
Ponte a prueba
0/5- RAG = recuperar los fragmentos relevantes, aumentar el prompt, generar una respuesta fundamentada y con citas.
- Indexa (fragmenta + embebe + almacena), recupera los principales fragmentos, aumenta con una instrucción de fundamentación, genera con citas.
- Prefiere RAG al fine-tuning para preguntas y respuestas sobre documentos: fresco, citado, más barato.
- La mayoría de los fallos son fallos de recuperación — recupera pocos fragmentos de alta calidad, no todo.
- Añade siempre una instrucción de fundamentación y cita; evalúa la recuperación y la generación por separado.