¿Qué es el RAG (Retrieval-Augmented Generation)?
RAG combina recuperación de información con generación de texto para dar respuestas precisas basadas en tus propios datos.
// 4 min de lectura · ● updated 2026-05
// antes de leer
El RAG (Retrieval-Augmented Generation) es una arquitectura que conecta un modelo de lenguaje con una fuente de datos externa —como documentos, bases de datos o APIs— para que sus respuestas no dependan solo de lo que aprendió en entrenamiento, sino de información actualizada y específica de tu dominio. En lugar de preguntar "¿qué sabe el modelo?", preguntas "¿qué dice nuestra base de conocimiento?".
Tip Pro: RAG es la forma más práctica de llevar un LLM a producción con información privada o actualizada sin necesidad de reentrenar el modelo. Si tu empresa tiene manuales, FAQs o documentación interna, RAG es tu mejor punto de partida.
¿Qué es?
RAG son tres letras que describen un flujo en dos fases:
- Retrieval (recuperación): cuando un usuario hace una pregunta, el sistema busca en una base de documentos los fragmentos más relevantes usando búsqueda por similitud (embeddings).
- Generation (generación): esos fragmentos se inyectan como contexto adicional en el prompt del LLM, que genera una respuesta basada en esa evidencia.
El concepto clave es que el modelo no necesita tener la respuesta almacenada. Solo necesita saber leer y razonar sobre la información que le acabas de dar.
Nota: RAG no modifica el modelo. No es fine-tuning. El LLM sigue siendo el mismo; lo que cambia es lo que le pones en el prompt.
Modelo mental
Imagina que eres un estudiante en un examen a libro abierto. Sin RAG, el estudiante responde solo con lo que recuerda de memoria (modelo desnudo). Con RAG, el estudiante tiene el libro al lado y puede consultarlo para cada respuesta. Sigue siendo el mismo estudiante, pero ahora sus respuestas son mucho más precisas porque cita la fuente.
Los componentes del sistema RAG:
- Documentos fuente: PDFs, páginas web, wikis, bases de datos, cualquier texto.
- Chunker: divide los documentos en fragmentos pequeños (chunks) de tamaño manejable.
- Embedding model: convierte cada fragmento en un vector numérico que representa su significado.
- Vector database: almacena los vectores y permite búsquedas por similitud (ej. Pinecone, Chroma, Qdrant, pgvector).
- LLM: el modelo de lenguaje que recibe la pregunta + los fragmentos recuperados y genera la respuesta final.
¿Cómo se usa?
Implementar RAG sigue un flujo de dos partes: la indexación (una sola vez) y la consulta (cada interacción).
Fase 1: Indexación (setup)
- Recolecta los documentos que quieras usar como fuente de conocimiento.
- Divide cada documento en chunks de 256 a 1024 tokens, según el tipo de contenido. Con solapamiento (overlap) de 20–50 tokens entre chunks para no perder contexto en los cortes.
- Genera un embedding para cada chunk usando un modelo como
text-embedding-3-small(OpenAI) oBGE(open source). - Almacena los vectores en una base de datos vectorial junto con el texto original y metadatos (fuente, página, fecha).
Advertencia: El tamaño del chunk importa. Chunks muy grandes diluyen la relevancia; chunks muy pequeños pierden contexto. Empieza con 512 tokens y ajusta según los resultados.
Fase 2: Consulta (inferencia)
- El usuario escribe una pregunta.
- El sistema genera el embedding de la pregunta con el mismo modelo usado en indexación.
- Busca en la vector database los
top_kchunks más similares (generalmente 3–10). - Construye un prompt con la pregunta y los chunks recuperados como contexto.
- Envía el prompt al LLM y devuelve la respuesta al usuario.
Ejemplo de prompt con RAG:
Contexto:
---inicio fragmento 1---
[documento recuperado 1]
---fin fragmento 1---
---inicio fragmento 2---
[documento recuperado 2]
---fin fragmento 2---
Instrucción: Responde la pregunta ÚNICAMENTE con la información del contexto proporcionado. Si el contexto no contiene la respuesta, di "No tengo información suficiente para responder".
Pregunta: ¿Cuál es el procedimiento de reembolso?Tip Pro: Incluye siempre una instrucción de "no inventar" (no hallucinate) en el prompt. Sin ella, el modelo puede ignorar el contexto y responder con lo que "sabe" de su entrenamiento, que es justo lo que RAG busca evitar.
¿Cuándo usarlo / cuándo no?
Úsalo cuando:
- Necesitas respuestas basadas en documentación privada o actualizada constantemente
- Tus usuarios hacen preguntas sobre un dominio específico (legal, médico, técnico, productos)
- Quieres reducir alucinaciones en un sistema en producción
- No puedes o no quieres hacer fine-tuning del modelo
- Los datos fuente cambian con frecuencia y necesitas reflejar cambios sin reentrenar
No lo uses cuando:
- La pregunta siempre es la misma y una respuesta fija basta (un FAQ estático resuelve el problema con menos complejidad)
- Tienes un solo documento pequeño que cabe completo en el prompt (no necesitas recuperación)
- La latencia es crítica y no puedes tolerar el tiempo extra de la búsqueda vectorial
- El modelo ya tiene el conocimiento con suficiente precisión (ej. preguntas muy generales sobre cultura popular)
Tip Pro: RAG y fine-tuning no son mutuamente excluyentes. Muchos equipos usan fine-tuning para enseñar al modelo el formato y tono de respuesta deseado, y RAG para proveer la información específica del contexto. Son complementarios.
// relacionados