Jonatan Matajonmatum.com
conceptosnotasexperimentosensayos
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Conceptos

Generación Aumentada por Recuperación

Patrón arquitectónico que combina la recuperación de información de fuentes externas con la generación de texto por LLMs, reduciendo alucinaciones y manteniendo el conocimiento actualizado sin reentrenar el modelo.

evergreen#rag#llm#embeddings#vector-search#information-retrieval#ai-architecture

¿Qué es?

RAG (Retrieval-Augmented Generation) es un patrón que mejora las respuestas de un LLM inyectando información relevante recuperada de fuentes externas directamente en el contexto del prompt. En lugar de depender solo del conocimiento almacenado en los pesos del modelo, el sistema busca documentos relevantes y los incluye como contexto antes de generar la respuesta.

El concepto fue formalizado por Lewis et al. en 2020, pero se ha convertido en el patrón dominante para aplicaciones empresariales de IA generativa.

¿Cómo funciona?

El flujo típico de RAG tiene tres etapas:

1. Indexación (offline)

Los documentos fuente se procesan y almacenan para búsqueda eficiente:

  • Los documentos se dividen en fragmentos (chunks) de tamaño manejable
  • Cada fragmento se convierte en un embedding — un vector numérico que captura su significado semántico
  • Los vectores se almacenan en una base de datos vectorial o índice de búsqueda

2. Recuperación (runtime)

Cuando llega una consulta del usuario:

  • La consulta se convierte en un embedding usando el mismo modelo
  • Se buscan los fragmentos más similares por distancia vectorial (coseno, producto punto)
  • Se seleccionan los top-K fragmentos más relevantes

3. Generación (runtime)

  • Los fragmentos recuperados se inyectan en el prompt como contexto
  • El LLM genera una respuesta basada en la consulta Y el contexto proporcionado
  • Opcionalmente, se incluyen citas a las fuentes originales

Ejemplo mínimo con LangChain

from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA
 
# 1. Chunking
splitter = RecursiveCharacterTextSplitter(chunk_size=512, chunk_overlap=64)
chunks = splitter.split_documents(documents)
 
# 2. Indexación
vectorstore = FAISS.from_documents(chunks, OpenAIEmbeddings())
 
# 3. Recuperación + Generación
qa = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(model="gpt-4o"),
    retriever=vectorstore.as_retriever(search_kwargs={"k": 4}),
)
answer = qa.invoke("¿Cuál es la política de devoluciones?")

Estrategias de chunking

La calidad del chunking determina la calidad de la recuperación:

EstrategiaTamaño típicoMejor para
Tamaño fijo256-512 tokensDocumentos homogéneos
Recursivo por separadores512-1.024 tokensTexto con estructura (Markdown, HTML)
SemánticoVariableDocumentos donde el significado cruza párrafos
Por documentoDocumento completoDocumentos cortos (FAQs, fichas)

El overlap (superposición entre chunks) de 10-20% ayuda a preservar contexto en los bordes.

Patrones avanzados

  • RAG híbrido: combina búsqueda vectorial con búsqueda por palabras clave (BM25) para mejor cobertura
  • RAG iterativo: el agente realiza múltiples rondas de recuperación, refinando la búsqueda según resultados intermedios
  • RAG con reranking: un modelo secundario reordena los resultados de búsqueda por relevancia antes de pasarlos al LLM
  • GraphRAG: utiliza grafos de conocimiento en lugar de (o además de) búsqueda vectorial

¿Por qué no solo fine-tuning?

AspectoRAGFine-tuning
Actualización de datosInmediata (cambiar documentos)Requiere reentrenar
CostoBajo (infraestructura de búsqueda)Alto (GPU, datos etiquetados)
TrazabilidadAlta (citas a fuentes)Baja (conocimiento en pesos)
AlucinacionesReducidas (contexto factual)Persisten
Conocimiento especializadoBueno con buenos documentosMejor para estilo/formato

En la práctica, muchos sistemas combinan ambos: fine-tuning para el estilo y formato, RAG para el conocimiento factual.

Conexión con llms.txt

El estándar llms.txt es un ejemplo práctico de RAG: proporciona a los agentes un documento estructurado que pueden recuperar y usar como contexto para responder preguntas sobre un sitio o proyecto.

Limitaciones

  • Calidad del chunking: fragmentos mal divididos producen contexto irrelevante
  • Límite de contexto: no se pueden inyectar documentos infinitos — la ventana de contexto del LLM es finita
  • Latencia: la etapa de recuperación añade tiempo a cada consulta
  • Garbage in, garbage out: si los documentos fuente tienen errores, el LLM los propagará con confianza

¿Por qué importa?

RAG es la técnica más práctica para dar a los LLMs acceso a información actualizada y específica del dominio sin fine-tuning. Combina la capacidad generativa del modelo con datos recuperados en tiempo real, reduciendo alucinaciones y manteniendo las respuestas fundamentadas en fuentes verificables.

Referencias

  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — Lewis et al., 2020. El paper original que formalizó RAG.
  • From Local to Global: A Graph RAG Approach — Microsoft Research, 2024. GraphRAG para consultas sobre corpus completos.
  • RAGAS: Automated Evaluation of RAG — Es et al., 2023. Framework de evaluación para sistemas RAG.
  • RAG Options for Foundation Models — AWS — AWS, 2024. Guía prescriptiva de patrones RAG en producción.
  • What is Retrieval-Augmented Generation? — IBM Research — IBM, 2023. Explicación del concepto y sus aplicaciones empresariales.

Contenido relacionado

  • Búsqueda semántica

    Técnica de recuperación de información que utiliza embeddings vectoriales para encontrar resultados por significado, no solo por coincidencia exacta de palabras clave.

  • llms.txt

    Estándar propuesto para publicar un archivo Markdown en la raíz de un sitio web que permite a los modelos de lenguaje entender y utilizar el contenido del sitio de forma eficiente durante la inferencia.

  • Agentes de IA

    Sistemas autónomos que combinan modelos de lenguaje con razonamiento, memoria y uso de herramientas para ejecutar tareas complejas de múltiples pasos con mínima intervención humana.

  • Embeddings

    Representaciones vectoriales densas que capturan el significado semántico de texto, imágenes u otros datos en un espacio numérico donde la proximidad refleja similitud conceptual.

  • Bases de Datos Vectoriales

    Sistemas de almacenamiento especializados en indexar y buscar vectores de alta dimensión de forma eficiente, habilitando búsqueda semántica y aplicaciones de RAG a escala.

  • Mitigación de Alucinaciones

    Técnicas para reducir la generación de información falsa pero plausible por parte de los LLMs, desde RAG hasta verificación factual y diseño de prompts.

  • AWS Bedrock

    Servicio serverless de AWS que proporciona acceso a modelos fundacionales de múltiples proveedores (Anthropic, Meta, Mistral, Amazon) vía API unificada, sin gestionar infraestructura de ML.

  • Ventanas de Contexto

    La cantidad máxima de tokens que un LLM puede procesar en una sola interacción, determinando cuánta información puede considerar simultáneamente para generar respuestas.

  • Construyendo un segundo cerebro en público

    Crónica de construir un segundo cerebro con grafo de conocimiento, pipeline bilingüe y endpoints para agentes — en días, no semanas, y lo que eso enseña sobre la brecha entre teoría y sistemas que funcionan.

Conceptos