¿Qué es RAG?

21/4/2025Pedro VG

OneLiner

RAG son las siglas de (Retrieval-Augmented Generation). Es el método más común para proporcionar contexto a LLMs sobre la pregunta del usuario, permitiendo así responder de forma más adecuada.

Fundamentos

El RAG se diferencia de otras formas de proporcionar contexto al modelo de lenguaje en que no consiste en añadir directamente documentos completos o imágenes al mensaje del usuario. En su lugar, implica una secuencia de pasos más complejos, externos a la interacción usuario-modelo.

Ventajas

El uso de RAG tiene múltiples ventajas sobre depender de los datos adquiridos durante el entrenamiento por el LLM o proporcionar contexto de forma fija, sea mediante un System Prompt o el mensaje del usuario.

  • Reducción del coste: Al proporcionar solo los resultados más similares a la búsqueda del usuario como contexto, se reduce enormemente el gasto de tokens en el modelo.

  • Superar los límites del contexto: Aunque en 2025 estos límites ya no tengan tanta importancia, con modelos como GPT-4.1 de OpenAI superando el millón de tokens de contexto máximo, usar RAG reduce el tiempo de cómputo necesario para generar la respuesta del usuario.

Estructura

Un sistema RAG debe contar con los siguientes componentes fundamentales:

  • Base Documental: Para poder hacer una búsqueda inteligente en documentos e imágenes, es imprescindible tener esos datos accesibles. Esta base documental debe estar vectorizada (véase embeddings).

  • Modelo de Embedding: Necesario para procesar las consultas del usuario al LLM.

El proceso de RAG comienza cuando el usuario realiza una pregunta al LLM y se divide en varios pasos:

  1. Inicio del proceso: En sistemas complejos con múltiples funcionalidades, el uso de RAG puede ser iniciado mediante una llamada a función por parte del modelo (tool call).

  2. Vectorización de la pregunta del usuario. En este paso, la pregunta inicial puede ser preprocesada por un LLM, que recomponga el texto para incrementar la precisión de la búsqueda.

  3. Cómputo de la distancia vectorial entre la pregunta del usuario y la base documental. Este paso puede tener diversas implementaciones, como una solución híbrida que combine una base de datos convencional con lógica en la aplicación, o delegando la búsqueda en una base de datos vectorial.

  4. Devolución de los resultados de la búsqueda al LLM. En este paso se pueden realizar procesos adicionales, como resumir los resultados o reestructurar el contenido.

  5. Generación de la respuesta al usuario. Si el sistema de interacción entre el usuario y el LLM mantiene la conversación, el modelo puede usar el contexto proporcionado para futuras respuestas sin necesidad de usar RAG nuevamente.

Limitaciones

El rendimiento de un sistema RAG está implícitamente limitado por dos factores clave:

  • Calidad del modelo de embedding: Al depender del vector generado para realizar la búsqueda, la capacidad del modelo para generar este embedding es fundamental para la precisión.

  • Estructura de los documentos: Relacionado con la calidad del embedding, si el texto no tiene cohesión o carece de una estructura clara, el rendimiento se verá afectado.

Conclusión

El RAG es un sistema ampliamente usado en aplicaciones, plataformas y servicios de IA generativa, optimizando los recursos de cómputo y aumentando significativamente la utilidad de los LLMs.