RAG: qué es y cómo funciona

Por Ricardo Gutierrez · · 19 min lectura

En este artículo

  1. Cómo funciona paso a paso
  2. Embeddings explicados de forma simple
  3. Estrategias de chunking
  4. Opciones de vector store
  5. Pipeline RAG paso a paso
  6. Cuándo usar RAG
  7. RAG vs fine-tuning: cómo decidir
  8. Arquitectura básica
  9. Herramientas para implementar RAG
  10. Métricas de evaluación
  11. Errores comunes y cómo evitarlos
  12. Siguiente paso
  13. Preguntas frecuentes
💡 Experiencia del equipo: Implementé RAG con Qdrant + embeddings de Qwen3.5-27B para el módulo de memoria de nuestra plataforma GRC. El fine-tuning lo reservo para clasificación ciber (29K pares ChatML de entrenamiento). Para el 90% de los casos, prompting avanzado + RAG es suficiente y mucho más barato.
Guía principal: Este artículo forma parte de la IA aplicada: guía completa.

Piensa en la diferencia entre un estudiante que responde de memoria (LLM normal) y uno que puede consultar sus apuntes antes de responder (LLM con RAG). El segundo es más preciso, más actualizado y puede citar fuentes.

RAG en una frase

RAG = buscar la información correcta + generar una respuesta con esa información como contexto. Es la técnica más usada para que los LLMs trabajen con tus datos privados sin necesidad de reentrenarlos.

Resumen rápido

RAG combina búsqueda semántica con generación de texto. Tus documentos se convierten en embeddings, se almacenan en una vector store, y cuando preguntas algo, el sistema recupera los fragmentos relevantes y los pasa al LLM como contexto. Más barato y flexible que fine-tuning para el 80% de los casos.

Cómo funciona paso a paso

El flujo de RAG tiene tres fases:

1. Indexación (una vez): tus documentos se dividen en fragmentos (chunks), se convierten en vectores numéricos (embeddings) y se almacenan en una base de datos vectorial.

2. Recuperación (cada consulta): cuando el usuario hace una pregunta, esa pregunta se convierte en un vector y se buscan los fragmentos más similares en la base de datos.

3. Generación (cada consulta): los fragmentos recuperados se pasan como contexto al LLM junto con la pregunta original. El modelo genera una respuesta basada en esa información.

# Flujo simplificado de RAG
1. INDEXACIÓN (offline)
 Documentos → Chunking → Embeddings → Vector DB

2. CONSULTA (runtime)
 Pregunta usuario → Embedding → Búsqueda similar → Top-K chunks

3. GENERACIÓN (runtime)
 System prompt + Chunks relevantes + Pregunta → LLM → Respuesta

Embeddings explicados de forma simple

Los embeddings son el corazón de RAG. Imagina que cada frase de texto se convierte en un punto en un espacio de muchas dimensiones (768, 1024, o hasta 3072 dimensiones). Frases con significado similar terminan como puntos cercanos entre sí.

Ejemplo intuitivo:

Esto permite buscar por significado en lugar de por palabras exactas. Si preguntas "mascota descansando", encontrará el fragmento sobre el gato durmiendo aunque no comparta ninguna palabra.

Modelos de embedding populares en 2026:

Consideración clave: el modelo de embedding debe ser el mismo para indexar y para buscar. Si indexas con text-embedding-3-small, debes buscar con el mismo modelo. Cambiar de modelo requiere re-indexar todos los documentos.

Estrategias de chunking

Cómo divides tus documentos en fragmentos es la decisión más importante de un pipeline RAG (y la más infravalorada). Un mal chunking arruina todo lo demás.

Chunking por tamaño fijo

Divide cada X caracteres con overlap. Simple pero tosco. Puede cortar frases a mitad. Útil como baseline.

# Ejemplo: chunks de 500 caracteres con 100 de overlap
splitter = RecursiveCharacterTextSplitter(
    chunk_size=500, chunk_overlap=100
)

Chunking recursivo (el más usado)

Intenta dividir por párrafos, luego por frases, luego por caracteres. Respeta la estructura del texto. Es el default de LangChain y funciona bien para el 80% de los documentos.

Chunking semántico

Usa embeddings para detectar cambios de tema y divide ahí. Más costoso computacionalmente, pero produce chunks con coherencia temática. Ideal para documentos largos con múltiples temas.

Chunking por estructura

Divide por headers (H1, H2, H3), secciones de Markdown, o estructura del documento. Ideal para documentación técnica, wikis y manuales que ya están bien estructurados.

Regla práctica: empieza con chunks de 500-1000 tokens con 10-20% de overlap. Si la recuperación es mala, experimenta con tamaños más pequeños (200-500) para documentos densos o más grandes (1000-2000) para documentos narrativos.

Opciones de vector store

La base de datos vectorial almacena tus embeddings y permite buscar por similitud. Las opciones principales en 2026:

Para empezar (gratis/simple):

Para producción (escalables):

Nuestra recomendación: ChromaDB para prototipos, pgvector si ya usas PostgreSQL/Supabase, Qdrant para producción self-hosted.

Pipeline RAG paso a paso

Un pipeline RAG completo de producción tiene más componentes que el flujo básico. Aquí está la versión realista:

# Pipeline RAG completo (producción)

1. INGESTA
   Documentos → Parsing (PDF, DOCX, HTML) → Limpieza de texto
   → Metadata extraction (fecha, autor, categoría)

2. PROCESAMIENTO
   Texto limpio → Chunking (estrategia elegida)
   → Embedding (batch processing)
   → Almacenamiento en vector DB + metadata

3. CONSULTA
   Pregunta → Query rewriting (opcional, mejora resultados)
   → Embedding de la pregunta
   → Búsqueda vectorial (top-K, típicamente K=4-8)
   → Re-ranking (opcional, reordena por relevancia)
   → Filtrado por metadata (fecha, categoría, permisos)

4. GENERACIÓN
   System prompt + Contexto recuperado + Pregunta
   → LLM → Respuesta + Citations

5. POST-PROCESAMIENTO
   Verificación de hallucinations → Formateo
   → Logging para evaluación

Query rewriting: antes de buscar, reformulas la pregunta para obtener mejores resultados. Ejemplo: "cuánto tardó?" se reescribe como "plazos de entrega del proyecto mencionado anteriormente". Un LLM pequeño puede hacer esto por ti.

Re-ranking: los resultados de la búsqueda vectorial no siempre están en el orden óptimo. Un modelo de re-ranking (como Cohere Rerank o BGE Reranker) reordena los resultados por relevancia real a la pregunta. Mejora significativamente la calidad.

Cuándo usar RAG

Usa RAG cuando: necesitas respuestas basadas en documentos específicos (manuales, contratos, base de conocimiento), los datos cambian frecuentemente (noticias, precios, inventario), necesitas citar fuentes, o quieres reducir alucinaciones del modelo.

No uses RAG cuando: la tarea es puramente creativa (escribir ficción), el conocimiento necesario es general y estable (gramática, matemáticas básicas), o tienes muy pocos documentos (menos de 10 páginas, mejor pásalos directamente en el prompt).

RAG vs fine-tuning: cómo decidir

La pregunta más frecuente. Para entender cuándo elegir cada uno, lee nuestra guía de fine-tuning: cuándo lo necesitas y cuándo no. Aquí está la decisión desgranada:

Elige RAG cuando:

Elige fine-tuning cuando:

La opción híbrida (lo mejor de ambos): Fine-tune para el estilo y dominio base, RAG para los datos específicos y actualizados. Es la arquitectura que usamos en producción para nuestro módulo GRC: el modelo entiende la jerga de ciberseguridad (fine-tuning), y recupera normativas específicas del cliente (RAG).

Arquitectura básica

Los componentes de un sistema RAG son:

Document loader: lee PDFs, Word, HTML, Markdown, CSVs. Herramientas: LangChain loaders, Unstructured, LlamaIndex.

Chunker: divide documentos en fragmentos de 200-1000 tokens. Estrategias: por párrafos, por overlap, semántico.

Embedding model: convierte texto en vectores. Modelos: text-embedding-3-small (OpenAI), embed-v3 (Cohere), BGE (open source). Para entender los embeddings, lee sobre bases de datos vectoriales.

Vector database: almacena y busca vectores. Opciones: Qdrant, Pinecone, Weaviate, ChromaDB, pgvector.

LLM: genera la respuesta final. Cualquier LLM sirve: GPT-4o, Claude Sonnet, Llama, Qwen. Si no sabes cuál elegir, revisa qué LLM elegir.

Herramientas para implementar RAG

Sin código: ChatGPT con archivos adjuntos (RAG implícito), Claude Projects (sube documentos), Google NotebookLM (RAG automático sobre tus fuentes).

Low-code: n8n con nodos de vector store, Flowise (drag & drop RAG), Dify (plataforma RAG visual).

Con código: LangChain (Python/JS, el más popular), LlamaIndex (especializado en RAG), Haystack (pipeline-based). Para empezar con código, revisa el tutorial de LangChain en español.

Métricas de evaluación

Un RAG sin métricas es un RAG que no sabes si funciona. Las métricas clave:

Métricas de recuperación (el buscador):

Métricas de generación (la respuesta):

Framework de evaluación recomendado: RAGAS (ragas.io). Es un framework open source que calcula automáticamente faithfulness, answer relevancy, context precision y context recall. Se integra con LangChain y LlamaIndex.

# Evaluación con RAGAS (ejemplo)
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision

result = evaluate(
    dataset,  # preguntas + respuestas + contextos
    metrics=[faithfulness, answer_relevancy, context_precision]
)
print(result)  # Scores de 0 a 1 por métrica

Errores comunes y cómo evitarlos

Chunks demasiado pequeños: pierden contexto. Un párrafo cortado a mitad no tiene sentido. Solución: usa overlap de 10-20% y chunking recursivo que respete límites de párrafo.

Chunks demasiado grandes: diluyen la relevancia. El modelo recibe mucho texto pero poco útil. Solución: si tus chunks superan los 1000 tokens, probablemente son demasiado grandes para la mayoría de consultas.

No evaluar la recuperación: si los chunks recuperados no son relevantes, la respuesta nunca será buena. Mide la precisión de la búsqueda antes de culpar al LLM. Solución: log los chunks recuperados y revisalos manualmente para tus primeras 50 consultas.

Ignorar el pre-procesamiento: PDFs escaneados, tablas complejas, imágenes con texto. Si el documento no se parsea bien, RAG falla. Solución: usa Unstructured.io o servicios de OCR antes de chunking.

No usar metadata: recuperar chunks sin filtrar por fecha, autor o categoría mezcla información obsoleta o irrelevante. Solución: siempre almacena metadata junto con el embedding y filtra cuando sea apropiado.

K demasiado alto: recuperar 20 chunks satura el contexto del LLM y diluye la señal. Solución: empieza con K=4, sube a K=6-8 solo si necesitas más cobertura. Más de 10 rara vez mejora los resultados.

Siguiente paso

Si nunca has implementado RAG, empieza con Claude Projects o NotebookLM (cero código). Sube 5-10 documentos y prueba a hacer preguntas. Cuando entiendas el concepto, pasa a LangChain para implementaciones personalizadas.

En IAcademy cubrimos RAG en profundidad: desde el concepto hasta la implementación con código.

Preguntas frecuentes

RAG funciona bien con documentos en español?

Sí, siempre que uses un modelo de embedding multilingüe. text-embedding-3-small (OpenAI), embed-v3 (Cohere) y BGE-M3 soportan español con buena calidad. Evita modelos entrenados solo en inglés.

Cuántos documentos puede manejar un sistema RAG?

No hay límite práctico. ChromaDB gestiona cientos de miles de chunks. Qdrant y Pinecone escalan a millones. La latencia de búsqueda se mantiene en milisegundos incluso con millones de vectores (búsqueda aproximada, HNSW).

RAG puede trabajar con imágenes o solo texto?

RAG multimodal es posible con modelos de embedding que soportan imágenes (CLIP, Jina CLIP). Puedes indexar imágenes, diagramas y capturas de pantalla. También puedes usar OCR para extraer texto de imágenes antes de indexar.

Domina RAG y otras técnicas avanzadas

Los 3 primeros módulos de IAcademy son gratis. Los módulos avanzados cubren RAG, agentes y fine-tuning.

Empieza gratis

Curso completo: 108 módulos de IA aplicada

11 especializaciones por departamento. Dashboard con progreso. Quizzes y skills desbloqueables. Desde 399 EUR.

Ver precios Acceder al portal