Volver a Aprende IA | Inicio
IA / PLN · Referencia educativa

Generación Aumentada por Recuperación

Cómo RAG permite que un modelo de lenguaje responda preguntas fundamentadas en tus documentos — no solo en sus datos de entrenamiento.

Código de Ejemplo micro / rag-example git.shadyknollcave.io/micro/rag-example

Fase 1 · Offline — Indexación

Se hace una vez
📄
Documentos
Texto, PDFs, notas
✂️
Fragmentación
Ventanas de palabras con solapamiento
🔢
Modelo de Embedding
Modelo IA que convierte texto en números
🗄️
Índice Vectorial
base de datos buscable de representaciones
Detalle de fragmentación Se desliza una ventana de N palabras por el documento con un paso menor que la ventana, de modo que los fragmentos adyacentes se solapan. El solapamiento evita que una oración quede "cortada" entre dos fragmentos perdiendo contexto.
Detalle de embedding Cada fragmento → un vector denso de ~384–768 flotantes. El texto semánticamente similar queda cerca en este espacio de alta dimensión. El modelo está congelado; todos los fragmentos usan los mismos pesos.
Detalle del índice vectorial Todas las representaciones de fragmentos se almacenan juntas en un archivo de índice en disco — esencialmente una base de datos buscable del contenido de tus documentos en forma numérica. Las implementaciones simples usan arrays en memoria; los sistemas de producción usan bases de datos vectoriales dedicadas (ver la guía del Ecosistema RAG) para escala y rendimiento.

Fase 2 · Online — Consulta

Por pregunta
💬
Pregunta del Usuario
Consulta en lenguaje natural
🔢
Modelo de Embedding
Mismo modelo que la Fase 1
📐
Búsqueda de Similitud
compara la pregunta con cada fragmento
🏆
Top-K Fragmentos
Pasajes más relevantes
📝
Prompt al LLM
fragmentos + pregunta inyectados
Respuesta
Basada en tus documentos
Búsqueda de similitud La pregunta se convierte al mismo formato numérico que los fragmentos almacenados, luego se compara con todos ellos en una operación rápida. Los fragmentos con puntuación más cercana a 1.0 se consideran más relevantes. El LLM nunca lee el corpus completo — solo los pasajes más coincidentes.
¿Por qué debe ser el mismo modelo de embedding? Los fragmentos y la consulta deben codificarse de la misma manera para ser comparables. Usar modelos diferentes sería como medir distancias con reglas distintas — los números no significarían lo mismo.
Construcción del prompt Los fragmentos recuperados se pegan en un mensaje de sistema: "Usa solo el contexto a continuación para responder." Esto ancla al LLM y previene alucinaciones sobre temas fuera de los documentos.

❌ Sin RAG

El LLM responde solo desde los datos de entrenamiento. Puede alucinar hechos que no aprendió, dar información desactualizada, o inventar detalles con confianza sobre tus documentos privados que nunca ha visto.

✅ Con RAG

El LLM solo ve los extractos recuperados y recibe instrucciones de responder a partir de ellos. Si la respuesta no está en los fragmentos recuperados, lo dice — sin alucinaciones sobre contenido fuera de su ventana de contexto.

Guía Paso a Paso del Pipeline

1

Fragmentación — Divide los documentos en piezas

Un documento largo es demasiado grande para buscarlo con precisión. Deslizamos una ventana de, digamos, 100 palabras por el texto, moviéndonos 50 palabras a la vez (50 palabras de solapamiento). Cada ventana = un fragmento. El solapamiento garantiza que una oración que abarque dos ventanas quede capturada completamente en al menos una de ellas. Piénsalo como arrancar las páginas de un libro en fichas donde las fichas consecutivas comparten algunas líneas.

2

Indexación — Convierte cada fragmento en un vector numérico

Pasamos cada fragmento por un modelo sentence-transformer, que produce un vector de ~384 números (un embedding). Estos números codifican el significado del texto — oraciones similares obtienen vectores similares. Todos los vectores de fragmentos se apilan en una matriz: el índice vectorial. Esto se hace una vez y se guarda en disco.

3

Recuperación — Encuentra lo relevante usando similitud semántica

Cuando un usuario hace una pregunta, la convertimos al mismo formato numérico que los fragmentos almacenados usando el mismo modelo de embedding. Una única operación rápida calcula qué tan similar es la pregunta a cada fragmento a la vez. Elegimos los K fragmentos con mayor puntuación — los más propensos a contener la respuesta. A diferencia de la búsqueda por palabras clave, esto funciona por significado: "ataque cardíaco" e "infarto de miocardio" coinciden aunque las palabras sean distintas.

4

Generación — Pregunta al LLM con contexto fundamentado

Construimos un prompt que dice: "Aquí hay extractos relevantes de los documentos: [fragmentos top-K]. Usando solo estos, responde: [pregunta del usuario]." El LLM ve solo los fragmentos recuperados, no el corpus completo. Ahora puede dar una respuesta precisa y con fuente. Si los fragmentos no contienen la respuesta, un modelo bien promoteado lo dirá en vez de alucinar.

Profundiza Referencia del Ecosistema RAG Plataformas empresariales · BDs Vectoriales · Modelos de Embedding · Frameworks