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

La generación de recuperación aumentada (RAG) es un método para añadir una nueva fuente de datos a un modelo de lenguaje de gran tamaño (LLM) sin volver a formarlo.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Comprender la generación aumentada por recuperación (RAG) en la IA
  • Explicar cómo la RAG mejora los LLM
  • Comprender los bots de chat RAG y AutoRAG

Copiar enlace del artículo

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

La generación aumentada por recuperación (RAG) es el proceso de optimizar un modelo lingüístico de gran tamaño (LLM) para su uso en un contexto específico sin volver a formarlo por completo, dándole acceso a una base de conocimientos relevante para ese contexto. La RAG es una forma rentable de adaptar rápidamente un LLM a un caso de uso especializado. Es uno de los métodos que los desarrolladores pueden utilizar para ajustar un modelo de inteligencia artificial (IA).

Los LLMs se entrenan con grandes cantidades de datos, pero es posible que no puedan generar la información específica necesaria en algunos entornos. Tienen una comprensión general de cómo funciona el lenguaje humano, pero no siempre tienen experiencia específica en una área temática determinada. La RAG es una forma de corregir esto.

Imagina que un mecánico de coches se pone a trabajar en un Chevy de 1964. Si bien el mecánico puede tener mucha experiencia general en el mantenimiento de automóviles después de miles de horas de práctica, aún necesita el manual del propietario para que el automóvil pueda repararlo de manera efectiva. Sin embargo, el mecánico no necesita volver a obtener la certificación como mecánico; simplemente puede leer detenidamente el manual y luego aplicar los conocimientos generales de los coches que ya tiene.

La RAG es similar. Proporciona a un LLM un "manual", o una base de conocimientos, para que el LLM pueda adaptar su conocimiento general al caso de uso específico. Por ejemplo, un LLM general puede generar contenido sobre cómo funcionan las consultas de API, pero no necesariamente puede indicar a un usuario cómo consultar la API de una aplicación específica. Pero con la RAG, ese LLM podría adaptarse para su uso con esa aplicación vinculándolo a la documentación técnica de la aplicación.

¿Cómo funciona la RAG?

Normalmente, cuando un LLM recibe una consulta, la procesa de acuerdo con sus parámetros y formación preexistentes.

La RAG permite que el LLM haga referencia a "datos externos", una base de datos no incluida en el conjunto de datos de formación del LLM. Así que, a diferencia de la forma normal en que funciona un LLM, un LLM con RAG utiliza datos externos para mejorar sus respuestas —de ahí el nombre de recuperación (recuperar primero los datos externos), aumentada (mejorar las respuestas con estos datos) y generación (crear una respuesta).

Supongamos que el mecánico de coches del ejemplo anterior quisiera utilizar un LLM en lugar de consultar directamente los manuales del propietario. Con la RAG, el LLM podría incorporar la consulta de los manuales del propietario directamente en sus procesos. A pesar de que es probable que el LLM no se haya formado con los manuales de coches clásicos —o en caso que dicha información se incluyera en sus datos de formación, probablemente fuera solo en un pequeño porcentaje—, el LLM puede utilizar RAG para producir consultas relevantes y precisas.

Para que el LLM pueda utilizar y consultar la fuente de datos externa (como los manuales de los coches), los datos se convierten primero en vectores y luego se almacenan en una base de datos vectorial. Este proceso utiliza modelos de aprendizaje automático para generar representaciones matemáticas de elementos de un conjunto de datos (Cada "vector" es una matriz de números, como [-0.41522345,0.97685323...]).

Cuando un usuario envía una instrucción, el LLM convierte esa instrucción en un vector, y luego busca en la base de datos vectorial creada a partir de la fuente de datos externa para encontrar información relevante. Añade esa información como contexto adicional para la instrucción, y luego ejecuta la instrucción aumentada a través de su modelo típico para crear una respuesta.

¿Cuáles son las ventajas y desventajas de la RAG en la IA?

Las ventajas de utilizar la RAG para ajustar un LLM son:

  • Mayor precisión dentro del caso de uso: es más probable que un LLM proporcione una respuesta correcta si tiene acceso a una base de conocimientos relacionada con la instrucción, al igual que es más probable que un mecánico repare un coche correctamente si tiene el manual.
  • Una forma económica de adaptar un modelo: dado que no es necesario volver a formar, es menos costoso desde el punto de vista informático y requiere menos tiempo empezar a utilizar un LLM en un nuevo contexto.
  • Flexibilidad: debido a que los parámetros del modelo no se ajustan, el mismo modelo se puede mover rápidamente entre varios casos de uso.

Algunas de las posibles desventajas son:

  • Tiempos de respuesta más lentos: aunque la RAG no requiere volver a formar, la inferencia —el proceso de razonamiento y respuesta a las instrucciones— puede llevar más tiempo, ya que el LLM ahora tiene que consultar varios conjuntos de datos para producir una respuesta.
  • Incoherencias entre conjuntos de datos: es posible que la base de conocimientos externa no se integre a la perfección con el conjunto de datos de entrenamiento del modelo, al igual que dos conjuntos de enciclopedias pueden describir eventos históricos de forma ligeramente diferente. Esto puede dar lugar a respuestas incoherentes a las consultas.
  • Mantenimiento manual: cada vez que se actualiza la base de conocimientos externa —en nuestro ejemplo, cuando salen nuevos modelos de coches—, los desarrolladores tienen que iniciar manualmente el proceso de convertir los nuevos datos en vectores y actualizar la base de datos vectorial (Cloudflare desarrolló AutoRAG para ayudar a los desarrolladores a evitar este proceso manual; más información a continuación).

¿Qué es un bot de chat RAG?

Un bot de chat RAG es un bot de chat basado en un LLM que se ha especializado para casos de uso específicos a través de la RAG, que se conecta a una o más fuentes de datos externos que son relevantes para el contexto en el que opera el bot de chat. Un bot de chat RAG para su uso en un taller de automóviles tendría acceso a la documentación del automóvil; esto sería más útil para los mecánicos en el taller que hacer preguntas a un chatbot de LLM de uso general.

RAG vs. adaptación de bajo rango (LoRA)

La adaptación de bajo rango (LoRA) es otra forma de ajustar un modelo, es decir, adaptarlo a un contexto específico sin volver a formarlo por completo. LoRA, sin embargo, implica ajustar los parámetros del modelo, mientras que RAG no altera en absoluto los parámetros del modelo. Más información sobre LoRA aquí.

¿Qué es AutoRAG?

AutoRAG configura y gestiona canalizaciones RAG para desarrolladores. Conecta las herramientas necesarias para la indexación, la recuperación y la generación, y mantiene todo actualizado al sincronizar periódicamente los datos con el índice. Una vez configurado, AutoRAG indexa el contenido en segundo plano y responde a las consultas en tiempo real. Más información sobre cómo funciona AutoRAG.

Preguntas frecuentes

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

RAG es una técnica que optimiza los modelos de lenguaje de gran tamaño (LLM) para contextos específicos, proporcionándoles acceso a una base de conocimientos relevante sin necesidad de volver a entrenarlos por completo. RAG es una forma eficiente de personalizar un LLM para tareas especializadas.

¿Cómo mejora RAG las capacidades de los LLM?

RAG permite que un LLM consulte fuentes de datos externas, como una base de datos dedicada, para enriquecer sus respuestas. Cuando un usuario envía una consulta, el LLM la convierte en un vector, encuentra información relacionada en la fuente de datos externa (que también está vectorizada) y luego utiliza este contexto ampliado para generar una respuesta más informada y precisa.

¿Cuáles son las principales ventajas de usar RAG con modelos de IA?

RAG mejora la precisión de un modelo de IA para una aplicación específica, ya que el LLM puede utilizar una base de conocimientos especializada. RAG también es un método rentable para adaptar un modelo, ya que evita el uso extensivo de recursos computacionales y el tiempo necesario para un nuevo entrenamiento completo. Además, RAG ofrece flexibilidad, ya que permite que el mismo modelo se aplique fácilmente a diversos escenarios específicos sin modificar sus parámetros fundamentales.

¿Cuáles son algunas de las posibles desventajas de implementar RAG en la IA?

A pesar de sus beneficios, RAG puede ralentizar los tiempos de respuesta porque el LLM tiene que recuperar y procesar información de varios conjuntos de datos. También existe el riesgo de incoherencias si la base de conocimientos externa no se alinea perfectamente con los datos de entrenamiento originales del modelo. Además, mantener RAG requiere un esfuerzo manual para convertir y actualizar nuevos datos en vectores dentro de la base de datos cada vez que cambia la base de conocimientos externa.

¿Qué es un bot de chat RAG?

Un bot de chat RAG es un bot de chat basado en LLM que se ha especializado para casos de uso concretos mediante el proceso RAG. Esto significa que tiene acceso a fuentes de datos externas relevantes para su contexto operativo específico, lo que te permite ofrecer respuestas más específicas y precisas que un bot de chat de uso general.

¿En qué se diferencia RAG de la adaptación de bajo rango (LoRA)?

RAG y la adaptación de bajo rango (LoRA) son dos métodos para ajustar modelos de IA sin necesidad de volver a entrenarlos por completo. Sin embargo, difieren en su enfoque: RAG no modifica los parámetros del modelo, mientras que LoRA implica ajustarlos.

¿Qué es AutoRAG?

AutoRAG es una herramienta desarrollada por Cloudflare que simplifica la configuración y gestión de las canalizaciones RAG para desarrolladores. Automatiza la conexión de las herramientas necesarias para la indexación, recuperación y generación, asegurando la sincronización de datos y respuestas a consultas en tiempo real mediante la actualización continua del contenido en segundo plano.