Capítulo 1: ¿Qué es RAG?
Introducción
Retrieval-Augmented Generation (RAG) es una técnica que mejora los Large Language Models (LLMs) al proporcionarles información relevante recuperada de fuentes de conocimiento externas. En lugar de depender únicamente de los datos de entrenamiento del modelo, los sistemas RAG buscan documentos relevantes y los utilizan para generar respuestas más precisas, actualizadas y contextualmente relevantes.
El concepto central
Piense en RAG como un examen con libro abierto:
- Sin RAG (Libro cerrado): El LLM responde preguntas usando solo lo que memorizó durante el entrenamiento.
- Con RAG (Libro abierto): El LLM puede buscar información relevante antes de responder.
Etimología e historia
El término "Retrieval-Augmented Generation" fue acuñado por Lewis et al. en su artículo de 2020 "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks".
Hitos clave:
- 2020: Publicación del artículo original de RAG por Facebook AI Research
- 2021: Mejoras en Dense Passage Retrieval (DPR)
- 2022: Las bases de datos vectoriales se vuelven convencionales
- 2023: LangChain y LlamaIndex popularizan los pipelines de RAG
- 2024: Técnicas avanzadas de RAG (HyDE, Multi-Query, etc.)
RAG frente a otros enfoques
RAG vs Fine-Tuning
| Aspecto | RAG | Fine-Tuning |
|---|---|---|
| Actualización de datos | En tiempo real | Requiere reentrenamiento |
| Costo | Menor | Mayor |
| Mejor para | Conocimiento dinámico | Cambios de comportamiento |
| Transparencia | Puede citar fuentes | Caja negra |
| Complejidad de configuración | Moderada | Mayor |
RAG vs Prompt Engineering
| Aspecto | RAG | Prompt Engineering |
|---|---|---|
| Tamaño de contexto | Puede manejar grandes bases de conocimiento | Limitado por la ventana de contexto |
| Precisión | Mayor para consultas fácticas | Depende del conocimiento del modelo |
| Caso de uso | Tareas intensivas en conocimiento | Tareas generales |
Los dos componentes
1. Retriever
El retriever es responsable de encontrar información relevante:
# Simplified retriever concept
def retrieve(query, knowledge_base, top_k=5):
"""
Find the most relevant documents for a query
"""
# Convert query to embedding
query_embedding = embed(query)
# Search knowledge base
results = knowledge_base.similarity_search(
query_embedding,
top_k=top_k
)
return results
2. Generator
El generator utiliza el contexto recuperado para producir respuestas:
# Simplified generator concept
def generate(query, retrieved_docs, llm):
"""
Generate a response using retrieved context
"""
# Build prompt with context
context = "\n".join([doc.content for doc in retrieved_docs])
prompt = f"""Based on the following context, answer the question.
Context:
{context}
Question: {query}
Answer:"""
# Generate response
response = llm.generate(prompt)
return response
Analogía en el mundo real
Imagine que usted es un agente de soporte al cliente:
Sin RAG:
Usted responde preguntas de memoria, lo que puede llevar a información desactualizada o incorrecta.
Con RAG:
Antes de responder, busca rápidamente en la base de conocimiento de su empresa, encuentra el documento de política relevante y proporciona una respuesta precisa con referencia.
Cuándo usar RAG
RAG es ideal cuando usted necesita:
✅ Información actualizada - Documentos de la empresa, noticias, investigaciones
✅ Conocimiento específico de dominio - Documentos médicos, legales, técnicos
✅ Atribución de fuentes - Citar de dónde proviene la información
✅ Acceso a datos privados - Información interna de la empresa
✅ Reducción de alucinaciones - Respuestas fundamentadas en hechos
RAG podría no ser la mejor opción cuando:
❌ Escritura creativa - Poesía, ficción, lluvia de ideas
❌ Conversación general - El chat casual no requiere recuperación
❌ Cambios de comportamiento - Enseñar al modelo un nuevo estilo (utilice fine-tuning)
Aplicaciones en la industria
Soporte al cliente
Usuario: "¿Cuál es su política de devoluciones para electrónicos?"
RAG: Recupera la política de devoluciones actual → Genera respuesta precisa
Investigación legal
Usuario: "Encuentre jurisprudencia sobre propiedad intelectual en software"
RAG: Recupera casos relevantes → Resume hallazgos
Información médica
Usuario: "¿Cuáles son los efectos secundarios del medicamento X?"
RAG: Recupera documentos de la FDA → Proporciona lista precisa
Búsqueda empresarial
Usuario: "¿Qué se discutió en la reunión de junta del último trimestre?"
RAG: Recupera actas de la reunión → Resume puntos clave
Terminología clave
| Término | Definición |
|---|---|
| Retrieval | El proceso de encontrar documentos relevantes |
| Augmentation | Añadir contexto recuperado al prompt |
| Generation | LLM produciendo una respuesta |
| Knowledge Base | Colección de documentos para buscar |
| Embedding | Representación vectorial de texto |
| Semantic Search | Encontrar documentos por significado, no por palabras clave |
Resumen
- RAG combina retrieval y generation para mejores respuestas de IA
- Resuelve limitaciones clave de los LLMs como conocimiento desactualizado y alucinaciones
- Dos componentes principales: Retriever (encuentra documentos) + Generator (produce la respuesta)
- Ideal para tareas intensivas en conocimiento que requieren precisión y citas
- Diferente al fine-tuning - RAG es para conocimiento, fine-tuning para comportamiento
Próximos pasos
Continúe con Capítulo 2: ¿Por qué RAG? para entender los problemas específicos que resuelve RAG.