Cómo RAG permite que un modelo de lenguaje responda preguntas fundamentadas en tus documentos — no solo en sus datos de entrenamiento.
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.
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.
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.
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.
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.
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.