Retrieval Augmented Generation (RAG)
RAG recupera pasajes pertinentes de una base de conocimiento externa y los añade al prompt de un LLM, de modo que las respuestas se basan en fuentes actuales, privadas y citables.
La generación aumentada por recuperación (RAG) es una técnica en la que un modelo de lenguaje grande (LLM) responde a una pregunta usando pasajes recuperados en el momento de la consulta de una fuente de conocimiento externa e insertados en su instrucción junto a la pregunta. Los datos de entrenamiento de un LLM llegan hasta una fecha de corte y nunca incluyeron los documentos internos de una empresa, así que, sin recuperación, el modelo carece de los datos o inventa otros plausibles, un fallo conocido como alucinación. El término procede del artículo de 2020 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, de Patrick Lewis y sus colegas de Facebook AI Research, que combinó un generador BART preentrenado con un recuperador neuronal sobre un índice vectorial denso de Wikipedia y estableció el estado del arte en tres tareas de respuesta a preguntas de dominio abierto. Hoy, el término abarca cualquier sistema que primero recupera información y después genera una respuesta.
Cómo funciona una canalización RAG#
RAG se ejecuta en dos etapas. La indexación se realiza de antemano: los documentos se dividen en pasajes, por ejemplo, mediante segmentación semántica; cada pasaje se convierte en un embedding y los vectores se almacenan en una base de datos vectorial. En el momento de la consulta, la pregunta se convierte en un embedding con el mismo modelo, la búsqueda vectorial devuelve los pasajes más cercanos y el sistema crea una instrucción a partir de las indicaciones, esos pasajes y la pregunta. Después, el LLM redacta una respuesta fundamentada en el texto proporcionado y puede citar el pasaje que respalda cada afirmación.
Los sistemas de producción añaden pasos alrededor de este núcleo. La búsqueda híbrida combina la similitud vectorial con la búsqueda por palabras clave para no pasar por alto términos exactos como números de pieza; un reranker reordena los candidatos principales con un modelo más preciso, y la recuperación contextual hace que un LLM anteponga a cada fragmento una nota breve que lo sitúa dentro del documento antes de indexarlo. Frameworks como LangChain y LlamaIndex agrupan estos componentes.
Los pasos de recuperación y aumento se pueden implementar en unas pocas líneas de Python con la biblioteca Sentence Transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# Knowledge base: passages the LLM never saw during training
passages = [
"Badge access to Building C requires a safety briefing completed within the last 12 months.",
"The cafeteria in Building A serves breakfast from 7:00 to 9:30 on weekdays.",
"Forklift operators must renew their certification every three years.",
]
passage_embeddings = model.encode(passages)
# Retrieve: embed the question and keep the most similar passage
question = "How often do I need to redo forklift training?"
scores = model.similarity(model.encode(question), passage_embeddings)[0]
context = passages[int(scores.argmax())]
# Augment: put the retrieved passage in the prompt the LLM will answer from
prompt = f"Answer using only this context.\nContext: {context}\nQuestion: {question}"
print(prompt)Imprime una instrucción que contiene el pasaje sobre la certificación de carretillas elevadoras, que coincide con la pregunta por su significado: pregunta sobre repetir la formación y el pasaje habla de renovar la certificación. Cualquier LLM puede responder a partir de esa instrucción, y los pasajes pueden cambiar a diario sin volver a entrenar el modelo.
RAG frente al ajuste fino y al contexto largo#
- Ajuste fino: Actualiza los pesos del modelo con ejemplos nuevos. Modifica bien el comportamiento, el estilo y el formato de salida, pero es una forma lenta de añadir datos que cambian a menudo y no deja ninguna fuente que citar, así que muchos sistemas ajustan el formato y usan RAG para el conocimiento.
- Ventanas de contexto largas: los modelos que aceptan un millón de tokens pueden leer directamente un gran conjunto de documentos, pero cada consulta paga por todos los tokens y la precisión disminuye a medida que las entradas se alargan; este efecto se conoce como deterioro del contexto. RAG solo envía los pasajes relevantes.
Variantes del patrón básico: GraphRAG recupera información de un grafo de conocimiento; la RAG agéntica permite que un agente decida cuándo y dónde buscar; y la RAG multimodal recupera imágenes, vídeo y audio, además de texto.
Usos de RAG#
- Chatbots empresariales: Los asistentes internos responden a partir de políticas, wikis y tickets de soporte anteriores, y enlazan el párrafo del que procede cada respuesta.
- Atención al cliente: Antes de responder, los asistentes recuperan el manual del modelo exacto del producto del cliente y el historial de pedidos de ese cliente.
- Atención sanitaria: Los asistentes clínicos recuperan guías actualizadas y referencias farmacológicas, de modo que las respuestas remiten a una fuente verificable en lugar de a la memoria del modelo.
RAG también responde preguntas sobre vídeo. Un LLM no puede ver horas de grabación cada vez que recibe una pregunta, así que combinar RAG con visión artificial permite convertir primero las grabaciones en registros recuperables. Ultralytics YOLO26 en modo de seguimiento informa de la clase, el cuadro delimitador y el ID de seguimiento persistente de cada objeto en cada fotograma; una canalización almacena esos datos en filas, de modo que una pregunta como «¿Cuántos camiones han entrado esta mañana en el muelle 3?» recupera esas filas en vez de buscar en el vídeo.
Por qué fallan las respuestas de RAG#
RAG puede fallar en dos puntos. Un fallo de recuperación significa que el pasaje con la respuesta nunca llegó a la instrucción, porque la segmentación lo dividió, el modelo de embeddings no detectó un sinónimo o quedó justo por debajo del límite de los k primeros resultados; se mide como recall en k sobre un conjunto de preguntas de prueba. Un fallo de generación significa que el pasaje correcto llegó, pero el modelo lo ignoró, lo interpretó mal o lo contradijo. Bibliotecas de evaluación como Ragas puntúan ambos aspectos: el recall del contexto para el recuperador y la fidelidad para el generador, definida como la proporción de afirmaciones de la respuesta respaldadas por el contexto recuperado.










