¿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 los datos con el índice periódicamente. Una vez configurado, AutoRAG indexa el contenido en segundo plano y responde a las consultas a tiempo real. Más información sobre cómo funciona AutoRAG.