¿Qué es la generación aumentada por recuperación (RAG)?

Generación potenciada por la recuperación (RAG) es una arquitectura de IA que recupera documentos externos relevantes en el momento de la consulta y entrena un modelo de lenguaje a gran escala (LLM) a partir de dichos documentos para generar respuestas basadas en información actual y verificable. A diferencia de un LLM puro, que se basa únicamente en sus pesos de entrenamiento, un sistema RAG separa lo que el modelo sabe por lo que parece alza la vista, lo que lo hace muy útil para tareas en las que son importantes tanto la precisión como la actualidad.

Cómo funciona RAG

RAG combina dos componentes: un «retriever» que localiza pasajes relevantes y un generador (el LLM) que lee dichos pasajes y genera una respuesta. Patrick Lewis y sus coautores presentaron esta arquitectura en NeurIPS 2020, combinando un modelo seq2seq preentrenado (memoria paramétrica) con un índice vectorial denso de Wikipedia al que se accede a través de un recuperador neuronal (memoria no paramétrica). En su artículo se indicaba que RAG genera resultados «más específicos, diversos y basados en hechos» que una línea de base exclusivamente paramétrica (Lewis et al., «Generación potenciada por la recuperación para tareas de PLN con gran carga de conocimiento» (NeurIPS 2020), arXiv 2005.11401, 2020).

En tiempo de ejecución, el proceso funciona en tres pasos. En primer lugar, la consulta del usuario se codifica en un vector y se compara con un almacén de documentos preindexado para extraer los fragmentos más relevantes. En segundo lugar, dichos fragmentos se añaden a la ventana de contexto del modelo como entrada adicional. En tercer lugar, el LLM genera una respuesta que combina su conocimiento paramétrico con la información recuperada.

El almacén de documentos suele ser una base de datos vectorial: un sistema que almacena representaciones de alta dimensión de fragmentos de texto y permite realizar búsquedas rápidas por «vecino más cercano» aproximadas. Las bases de datos vectoriales que sustentan las aplicaciones RAG registraron un crecimiento interanual del 377 %, lo que supone el crecimiento más rápido de todas las categorías tecnológicas relacionadas con los modelos de lenguaje a gran escala (LLM) analizadas (Databricks, «El estado de los datos y la IA» (Tendencias de adopción y crecimiento en las empresas), 2024).

Por qué el método RAG se ha convertido en el enfoque estándar para la puesta a tierra

Los modelos de lenguaje grande (LLM) fijan sus conocimientos al finalizar el preentrenamiento. Cualquier dato que cambie tras ese punto de corte —un precio, una normativa o las especificaciones de un producto— requiere o bien una nueva ronda de entrenamiento o bien una capa de recuperación. RAG gestiona esto de forma económica. En lugar de volver a entrenar el modelo, se actualiza el almacén de documentos y el modelo cita automáticamente la información actualizada la próxima vez que se reciba una consulta relevante.

La adopción por parte de las empresas refleja esta utilidad práctica. El enfoque RAG se ha convertido en el método predominante para basar los modelos de lenguaje grande (LLM) en datos propios o actuales, y su adopción ha aumentado hasta el 51 % de las empresas en 2024, frente al 31 % del año anterior (Menlo Ventures, 2024: El estado de la IA generativa en las empresas, 2024).

Una segunda ventaja es la auditabilidad. Dado que los documentos recuperados forman parte de la ventana de contexto, un desarrollador puede comprobar qué pasajes ha utilizado el modelo y rastrear las afirmaciones hasta su fuente. Esto resulta difícil o imposible con un modelo puramente paramétrico.

Casos de uso

Bases de conocimientos corporativas. La documentación interna, los documentos legales y los contenidos de asistencia cambian con frecuencia. Un proceso RAG indexa estos documentos y permite a los empleados o clientes realizar consultas en lenguaje natural sin tener que esperar al próximo ajuste del modelo.

Datos web en tiempo real para agentes de inteligencia artificial. Los agentes de IA necesitan información actualizada —páginas de productos, noticias, resultados de búsqueda— que ningún corpus estático puede proporcionar. La incorporación de contenido web en tiempo real a la capa de recuperación proporciona al agente un contexto preciso y actualizado. La Web Render API de Massive puede actuar aquí como la capa de origen de datos web actualizados: el punto final de búsqueda devuelve resultados de búsqueda renderizados (incluidos resúmenes de IA a través de awaiting=ai), y el punto final «Browsing» devuelve código HTML o Markdown sin formato a partir de cualquier URL pública; ambos son formatos limpios que permiten dividir el contenido en fragmentos e integrarlo en un proceso RAG.

Documentación sobre el código y la API. Las API de las bibliotecas cambian con cada nueva versión. El uso de RAG sobre un corpus de documentación versionado permite que un asistente de programación cite la firma del método correcta para la versión en uso, en lugar de generar una desactualizada.

Automatización de la atención al cliente. Los bots de atención al cliente que se basan en un catálogo de productos actualizado, un documento sobre la política de devoluciones y un feed de problemas conocidos responden con precisión y citan la política pertinente, lo que reduce el número de casos que deben derivarse a niveles superiores.

Buenas prácticas

El tamaño de los fragmentos es importante. Los fragmentos demasiado pequeños pierden contexto; los fragmentos demasiado grandes diluyen la señal relevante. La mayoría de los profesionales comienzan con fragmentos de entre 256 y 512 tokens, con un solapamiento del 10-20 %, para evitar que se interrumpa el hilo del pensamiento.

Limpie primero sus documentos originales. El texto estándar, los elementos de navegación y los anuncios de una página recuperada generan representaciones con ruido y reducen la calidad de las respuestas. Si extrae contenido web en tiempo real, analícelo para convertirlo en Markdown limpio o texto sin formato antes de indexarlo.

Evalúe por separado la recuperación y la generación. Una respuesta deficiente puede deberse a una recuperación incorrecta (no se ha devuelto el documento adecuado) o a una generación incorrecta (el modelo ha ignorado un documento válido). Mantener métricas separadas para cada etapa le ayuda a identificar y corregir el componente adecuado.

Actualice el índice con una periodicidad que se ajuste a la frecuencia de los cambios en la fuente. Un catálogo de productos que se actualiza a diario requiere una reindexación diaria. Un corpus jurídico que se actualiza trimestralmente puede reindexarse con menos frecuencia. Los documentos obsoletos en el almacén de recuperación son una fuente habitual de errores de RAG.

Preste atención a los límites de la ventana de contexto. Cada fragmento recuperado consume tokens. Si hay muchos fragmentos, es posible que se supere la ventana de contexto del modelo o que se diluya la señal. Una solución práctica consiste en volver a clasificar los fragmentos recuperados por relevancia y conservar solo los tres o cinco primeros.

Conclusión

RAG aborda el modo de fallo más habitual en la producción de los modelos de lenguaje a gran escala (LLM): respuestas que, aunque plausibles, resultan obsoletas o erróneas porque el modelo no puede acceder a información más allá del límite de su entrenamiento. Al separar la recuperación de la generación, la arquitectura mantiene al modelo generativo centrado en el razonamiento, mientras que el componente de recuperación se encarga de conocer los hechos actuales. La adopción en el ámbito empresarial superó la barrera del 51 % en 2024, y la infraestructura de apoyo —bases de datos vectoriales, API de recuperación y capas de acceso web en tiempo real— ha alcanzado ya un grado de madurez tal que la mayoría de los equipos pueden crear un flujo de trabajo RAG operativo sin necesidad de contar con conocimientos especializados en aprendizaje automático. El principal reto de ingeniería ya no es si utilizar RAG, sino de qué fuentes de datos recuperar la información y cómo mantener dichas fuentes actualizadas y limpias.

Preguntas frecuentes

El ajuste fino incorpora nuevos conocimientos a los pesos del modelo mediante un entrenamiento adicional. El RAG no modifica los pesos y proporciona información actualizada en el momento de la inferencia mediante la recuperación de documentos. El ajuste fino resulta más adecuado para enseñar a un modelo un nuevo estilo o una nueva tarea; el RAG resulta más adecuado para mantener las respuestas actualizadas con un coste mínimo.

RAG reduce las alucinaciones al proporcionar al modelo el texto original en el que basar su respuesta, pero no las elimina por completo. El modelo sigue pudiendo ignorar un pasaje recuperado, interpretarlo erróneamente o completar las lagunas con detalles inventados. La calidad de la recuperación, el diseño de la indicación y la verificación posterior a la generación influyen en la frecuencia con la que se producen las alucinaciones.

RAG extrae información de cualquier texto que pueda dividirse en fragmentos e integrarse: archivos PDF, páginas HTML, registros de bases de datos, archivos Markdown, código o tablas estructuradas. La calidad de la extracción depende de lo bien que se hayan depurado y dividido en fragmentos los documentos de origen antes de la indexación.

Una base de datos vectorial almacena representaciones vectoriales de fragmentos de texto y permite realizar búsquedas rápidas por similitud. Cuando se recibe una consulta, la capa de recuperación realiza una representación vectorial de la misma y busca en la base de datos vectorial los fragmentos que mejor se ajustan a ella. Esa búsqueda por similitud constituye el núcleo de la etapa de recuperación en todos los sistemas RAG.

Sí. En lugar de utilizar un índice estático predefinido, la capa de recuperación puede obtener páginas web en tiempo real en el momento de la consulta y extraer el texto relevante antes de enviarlo al modelo de lenguaje grande (LLM). Este enfoque sacrifica la previsibilidad de un índice estable a cambio de la precisión en tiempo real, a costa de una mayor latencia por consulta.