Saltar al contenido principal

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​

AspectoRAGFine-Tuning
Actualización de datosEn tiempo realRequiere reentrenamiento
CostoMenorMayor
Mejor paraConocimiento dinámicoCambios de comportamiento
TransparenciaPuede citar fuentesCaja negra
Complejidad de configuraciónModeradaMayor

RAG vs Prompt Engineering​

AspectoRAGPrompt Engineering
Tamaño de contextoPuede manejar grandes bases de conocimientoLimitado por la ventana de contexto
PrecisiónMayor para consultas fácticasDepende del conocimiento del modelo
Caso de usoTareas intensivas en conocimientoTareas 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
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érminoDefinición
RetrievalEl proceso de encontrar documentos relevantes
AugmentationAñadir contexto recuperado al prompt
GenerationLLM produciendo una respuesta
Knowledge BaseColección de documentos para buscar
EmbeddingRepresentación vectorial de texto
Semantic SearchEncontrar 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.