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

Copiar URL

La generación aumentada por recuperación o RAG es un método mediante el cual se vincula un modelo de lenguaje de gran tamaño (LLM) a un recurso externo para obtener mejores respuestas de una aplicación de inteligencia artificial generativa

Descubre Red Hat AI

Introducción a la inteligencia artificial para las empresas: Guía para principiantes

La generación aumentada por recuperación - RAG - permite complementar la información que está dentro de un modelo de lenguaje de gran tamaño con las fuentes externas que elijas, como repositorios de datos, conjuntos de textos y documentación. Estos recursos se segmentan, se clasifican en una base de datos vectorial y se utilizan como material de referencia para que las respuestas proporcionadas sean más precisas.

La RAG es útil porque indica al LLM que recupere información específica e inmediata de las fuentes de información que elijas. Además, permite ahorrar dinero, ya que ofrece una experiencia personalizada sin necesidad de gastar en el entrenamiento ni el perfeccionamiento del modelo. También puedes ahorrar recursos, dado que cuando se realiza una consulta a un LLM, solo se envía la información más relevante, en lugar de documentos extensos.

Obtén más información sobre la inteligencia artificial generativa 

Recursos de Red Hat

Los LLM utilizan técnicas de procesamiento del lenguaje natural (NLP) y machine learning (aprendizaje automático) para comprender y generar lenguaje humano destinado a la inferencia de la inteligencia artificial. Por inferencia de inteligencia artificial se entiende la fase operativa de esta tecnología, en la cual el modelo puede aplicar los conocimientos adquiridos durante el entrenamiento a situaciones reales. 

Los LLM pueden ser muy valiosos para la comunicación y el procesamiento de datos, pero también presentan algunas desventajas:

  • Se entrenan con datos disponibles para el público general, pero pueden no incluir la información específica a la que deseas que hagan referencia, como conjuntos de datos internos de tu empresa.
  • Tienen una fecha límite de conocimiento, lo que significa que la información de su entrenamiento no se actualiza de forma permanente. En consecuencia, el material puede volverse obsoleto y dejar de ser relevante.
  • Están diseñados para complacer, por lo que a veces presentan información falsa o desactualizada, conocida también como "alucinación".

La implementación de la arquitectura RAG en un sistema de búsqueda de respuestas basado en un LLM establece una vía de comunicación entre un LLM y las fuentes de información adicionales que elijas. El LLM puede realizar referencias cruzadas y complementar su conocimiento interno para que el usuario que formula una consulta obtenga resultados más confiables y precisos.

Explicación sobre LoRA y QLoRA

Los mecanismos de recuperación que se incluyen en la arquitectura RAG le permiten acceder no solo al entrenamiento general de un LLM, sino también a otras fuentes de datos. Al basar el LLM en un conjunto de hechos externos verificables a través de la RAG, se obtienen varios beneficios:

Precisión
La RAG proporciona al LLM fuentes que puede citar para que los usuarios comprueben las afirmaciones. También permite diseñar una arquitectura RAG que responda con "No lo sé" si la pregunta está fuera de su área de conocimiento. En general, la RAG reduce las posibilidades de que un LLM comparta información incorrecta o engañosa como resultado y puede aumentar la confianza de los usuarios.

Rentabilidad
El reentrenamiento y el perfeccionamiento de los LLM son procesos costosos y que requieren mucho tiempo, al igual que la creación desde cero de un modelo base con información específica (por ejemplo, para diseñar un chatbot). Con la RAG, el usuario puede incorporar nuevos datos a un LLM, así como cambiar o actualizar las fuentes de información, simplemente cargando un documento o un archivo.

La RAG también permite reducir los costos de inferencia. Las consultas a los LLM son costosas: si utilizas un modelo local, implican exigencias para tu propio hardware, y si utilizas un servicio externo a través de una interfaz de programación de aplicaciones (API), generan una factura según el consumo. En lugar de enviar un documento de referencia completo a un LLM a la vez, la RAG puede enviar solo los fragmentos más importantes del material y, así, reducir el tamaño de las consultas y aumentar la eficiencia.

Control de los desarrolladores
En comparación con los métodos de perfeccionamiento tradicionales, la RAG proporciona una forma más sencilla y accesible de obtener comentarios, resolver los problemas y corregir las aplicaciones. Para los desarrolladores, el mayor beneficio de la arquitectura RAG es que les permite aprovechar un flujo de información actualizada y específica de cada área.

Privacidad y soberanía de los datos
El uso de información confidencial para perfeccionar una herramienta de LLM siempre ha conllevado riesgos, ya que los modelos pueden divulgar información de sus datos de entrenamiento. La RAG ofrece una solución a estas inquietudes sobre la privacidad al garantizar que los datos confidenciales permanezcan en las instalaciones mientras se utilizan en un LLM local o externo de confianza. La arquitectura RAG también puede configurarse para restringir el acceso a la información privada con base en distintos niveles de autorización, de manera que solo ciertos usuarios puedan acceder a determinada información según sus permisos de seguridad. 

Las arquitecturas RAG recuperan datos de una fuente externa, los procesan en el contexto de un LLM y generan una respuesta basada en la combinación de las fuentes. Este proceso incluye tres etapas principales: preparación, recuperación y generación de los datos.

Paso 1: Preparación de los datos (para su recuperación)

  • Identificación y carga de los documentos: identifica y obtén la documentación fuente que desees compartir con el LLM y asegúrate de que se encuentre en un formato que este comprenda, como archivos de texto, tablas de bases de datos o PDF. Independientemente del formato de origen, cada documento debe convertirse en un archivo de texto para incorporarlo a la base de datos vectorial. Este proceso también se conoce como etapas de extracción, transformación y carga (ETL), y garantiza que los datos sin procesar se limpien y organicen de forma que estén preparados para el almacenamiento, el análisis y el machine learning.
     
  • Transformación: las herramientas de "división de texto" o "fragmentación" preparan los documentos para la recuperación. Esto implica analizar los documentos actualizados y catalogarlos en "fragmentos" relacionados en función de distintas características. Por ejemplo, es posible que para el modelo resulte más sencillo buscar y recuperar los documentos que están organizados por párrafos que aquellos estructurados con tablas y figuras.

    La fragmentación puede basarse en diversos factores, como la semántica, las oraciones, los tokens, el formato, los caracteres HTML o el tipo de código. Muchos marcos open source pueden facilitar el proceso de incorporación de documentos, como LlamaIndex y LangChain.
     

  • Integraciones: las integraciones utilizan un modelo de machine learning especializado (modelo de incrustaciones vectoriales) para convertir los datos en vectores numéricos y poder aplicar operaciones matemáticas que permitan evaluar las similitudes y las diferencias entre los distintos fragmentos de datos. Gracias a ellas, puedes convertir texto o imágenes en vectores que capten el significado central del contenido y descarten los detalles irrelevantes. Durante este proceso, se puede asignar un valor numérico (por ejemplo, [1,2, -0,9, 0,3]) a un fragmento de datos y clasificarlo en un sistema mayor denominado base de datos vectorial.

    Dentro de una base de datos vectorial, este valor numérico permite que la arquitectura RAG asocie los fragmentos de contenido y organice los datos para optimizar la recuperación. El objetivo de esta clasificación consiste en estructurar los vectores para que los conceptos que sean similares se almacenen en coordenadas adyacentes. Por ejemplo, los conceptos "café" y "té" se ubicarían muy cerca, así como "bebida caliente". En cambio, los conceptos no relacionados, como "teléfonos celulares" y "televisión", se posicionarían más alejados. La distancia o cercanía entre dos vectores permite que el modelo determine la información que debe recuperarse e incluirse en el resultado de la consulta del usuario.
     

  • Almacenamiento: los datos combinados procedentes de diversas fuentes (los documentos externos que elijas y el LLM) se almacenan en un repositorio central.
     

Paso 2: Recuperación

  • Una vez que los datos se catalogan en la base de datos vectorial, los algoritmos buscan y recuperan los fragmentos de información relevantes para la petición y la consulta del usuario. Los marcos como LangChain admiten muchos algoritmos de recuperación diferentes, incluida la recuperación basada en similitudes de los datos, como la semántica, los metadatos y los documentos principales.

    En los entornos de consumidores de dominio abierto, la información se recupera a partir de documentos organizados en Internet, a los cuales se accede a través de la API de una fuente de información. Sin embargo, en un entorno de empresas de dominio cerrado, en el que es necesario mantener la privacidad de la información y protegerla de fuentes externas, la arquitectura de RAG garantiza una recuperación local y segura.

    Por último, los datos recuperados se insertan en la petición y se envían al LLM para que los procese.
     

Paso 3: Generación

  • Resultado: se brinda una respuesta al usuario. Si el método RAG funciona según lo previsto, el usuario obtendrá una respuesta precisa basada en los conocimientos fuente proporcionados.

Comienza a utilizar marcos de inteligencia artificial con Red Hat Consulting 

Cuando se diseña un modelo de machine learning, es importante buscar documentos fuente de alta calidad, ya que los resultados dependen de los datos que se introducen. Si los sistemas generan resultados erróneos o sesgados, pueden suponer un grave problema para las empresas que utilizan la inteligencia artificial. Por lo tanto, es fundamental asegurarse de que los documentos fuente no contengan información sesgada (es decir, información que favorezca a grupos privilegiados y perjudique a aquellos no privilegiados de manera sistemática) para que los resultados no representen esos sesgos.

A la hora de obtener datos para una arquitectura RAG, asegúrate de que la información que incluyas en los documentos fuente se cite con precisión y esté actualizada. Además, es necesario que especialistas evalúen la calidad de los resultados antes de poner el modelo a disposición de un público más amplio, y que sigan haciéndolo incluso después de que el modelo se implemente para utilizarlo en la producción.

Cuando se conocen las diferencias entre los métodos de entrenamiento con datos y la arquitectura de RAG, es posible tomar decisiones estratégicas sobre los recursos de inteligencia artificial que se deben implementar para satisfacer las necesidades de cada empresa, e incluso se puede utilizar más de un método a la vez. Analicemos algunos métodos y procesos habituales para el tratamiento de los datos y comparémoslos con la RAG.

Diferencias entre la RAG y la ingeniería de peticiones
La ingeniería de peticiones es la manera más sencilla y menos técnica de interactuar con un LLM. Consiste en escribir una serie de instrucciones que el modelo debe seguir para generar un resultado adecuado cuando un usuario realiza una consulta. En comparación con la RAG, este proceso requiere menos datos (únicamente utiliza aquellos con los que se preentrenó el modelo) y tiene un costo reducido (usa solo las herramientas y los modelos que ya se poseen), pero no puede generar resultados basados en información actualizada o variable. Asimismo, la calidad de los resultados depende de la formulación de las peticiones, por lo que es posible que las respuestas no sean uniformes.

Si buscas una forma sencilla y rentable de extraer información sobre temas generales sin necesidad de profundizar demasiado, puedes optar por utilizar la ingeniería de peticiones en lugar de la RAG.

Diferencias entre la RAG y la búsqueda semántica
El término "semántica" hace referencia al estudio del significado de las palabras. La búsqueda semántica es una técnica de análisis de datos que tiene en cuenta la intención y el contexto de una consulta.

Utiliza el procesamiento del lenguaje natural (NLP) y el machine learning para decodificar una consulta y buscar datos que puedan servir para brindar una respuesta más pertinente y precisa que la que proporcionaría la mera concordancia de palabras clave. Dicho de otro modo, la búsqueda semántica permite conectar lo que un usuario escribe como consulta con los datos que se emplean para generar un resultado.

Por ejemplo, si escribes una consulta sobre unas "vacaciones soñadas", la búsqueda semántica ayudaría al modelo a comprender que probablemente deseas información sobre unas vacaciones "ideales". En lugar de brindar una respuesta sobre los sueños, ofrecería una más acorde con tu intención: tal vez un paquete turístico para una escapada a la playa.

La búsqueda semántica es un elemento de la RAG que esta utiliza durante la etapa de recuperación de datos de la base vectorial para generar resultados actualizados y precisos desde el punto de vista contextual.

Diferencias entre la RAG y el preentrenamiento
El preentrenamiento es la fase inicial del entrenamiento de un LLM para adquirir un dominio general del lenguaje mediante el aprendizaje a partir de un gran conjunto de datos. Al igual que el cerebro humano desarrolla vías neuronales a medida que adquirimos nuevos conocimientos, el preentrenamiento desarrolla una red neuronal dentro de un LLM al entrenarlo con datos.

En comparación con la RAG, el preentrenamiento de un LLM es más costoso y puede llevar más tiempo y necesitar más recursos informáticos, como miles de GPU. Puedes optar por utilizar el preentrenamiento en lugar de la RAG si tienes acceso a un amplio conjunto de datos (el cual debe poder influir considerablemente en el modelo entrenado) y deseas dotar a un LLM de conocimientos básicos sobre determinados temas o conceptos.

Diferencias entre la RAG y el perfeccionamiento
Si la arquitectura RAG determina los conocimientos que debe poseer un LLM, el perfeccionamiento define las acciones que debe llevar a cabo. Este proceso consiste en utilizar un LLM preentrenado y seguir entrenándolo con un conjunto de datos más reducido y específico, lo cual permite que el modelo aprenda patrones comunes que no cambian con el tiempo.

A simple vista, la RAG y el perfeccionamiento pueden parecer similares, pero presentan algunas diferencias. Por ejemplo, este último requiere una gran cantidad de datos y recursos informáticos para crear el modelo, a menos que utilices técnicas de perfeccionamiento eficiente de parámetros (PEFT).  

Por su parte, la RAG puede recuperar información de un único documento sin necesidad de utilizar muchos recursos. Además, mientras que se ha demostrado que la RAG efectivamente reduce las alucinaciones, el proceso para lograr el mismo resultado con el perfeccionamiento de un LLM es mucho más largo y complejo.

Los modelos suelen beneficiarse del uso de ambos métodos. Sin embargo, puedes optar por el perfeccionamiento en lugar de la RAG si ya tienes acceso a una gran cantidad de datos y recursos, si esos datos son relativamente invariables o si trabajas en una tarea especializada que requiera un análisis más personalizado que el formato pregunta-respuesta en el que se centra la arquitectura RAG.

Obtén más información sobre las diferencias entre la RAG y el perfeccionamiento

La arquitectura RAG puede aplicarse a muchos casos prácticos. Los siguientes son algunos de los más conocidos.

  • Servicio de atención al cliente: la programación de un chatbot para responder las consultas de los clientes con información de un documento específico puede reducir el tiempo de resolución de las consultas y mejorar la eficacia del sistema de atención al cliente.

  • Generación de información útil: la RAG permite aprender de los documentos que ya posees. Cuando utilizas la arquitectura RAG, puedes vincular un LLM con los informes anuales, los documentos de marketing, los comentarios en las redes sociales, las opiniones de los clientes, los resultados de las encuestas, los documentos de investigación u otros materiales y encontrar respuestas que te permitan comprender mejor tus recursos. Además, puedes utilizarla para conectarte directamente a las fuentes de datos en tiempo real, como los feeds de las redes sociales, los sitios web u otras fuentes que se actualizan con frecuencia, de modo que puedas generar respuestas útiles de inmediato.

  • Sistemas de información de salud: la arquitectura RAG puede mejorar los sistemas que ofrecen información o asesoramiento médicos. Gracias a la posibilidad de revisar distintos aspectos, como la historia clínica de una persona, los servicios de programación de citas y las últimas investigaciones y directrices médicas, la RAG facilita el acceso de los pacientes a la asistencia y los servicios que necesitan.

Red Hat® AI es nuestra cartera de productos de inteligencia artificial basada en soluciones que nuestros clientes ya conocen. Gracias a ellas, nuestros productos siguen siendo confiables, flexibles y adaptables.

Con Red Hat AI, las empresas logran:

  • adoptar la inteligencia artificial y generar innovaciones con ella de manera rápida;
  • simplificar el proceso de distribución de soluciones basadas en inteligencia artificial;
  • implementar recursos en cualquier entorno.

Descubre Red Hat AI 

Control y colaboración de los desarrolladores

Las soluciones de Red Hat AI permiten que las empresas implementen la arquitectura RAG en sus procesos de operaciones de modelos de lenguaje de gran tamaño (LLMOps) al proporcionar la infraestructura fundamental para las cargas de trabajo.

En específico, Red Hat® OpenShift® AI es una plataforma de MLOps flexible y con capacidad de ajuste que brinda a los desarrolladores las herramientas necesarias para diseñar, implementar y gestionar las aplicaciones que utilizan la inteligencia artificial. Proporciona la infraestructura fundamental para respaldar una base de datos vectorial, crear incrustaciones, realizar consultas a los LLM y utilizar los mecanismos de recuperación necesarios para generar resultados.

Red Hat AI también ofrece mecanismos de alineamiento de modelos para mejorar los LLM a través de InstructLab. Esta solución presenta un enfoque impulsado por la comunidad open source para mejorar las funciones de los LLM.

Gracias a la colaboración permanente y respaldada, puedes personalizar las aplicaciones de los modelos de inteligencia artificial para los casos prácticos de tu empresa de forma rápida y sencilla.

Descubre Red Hat OpenShift AI 

Crea una aplicación de RAG

Red Hat OpenShift AI es una plataforma que permite diseñar proyectos de análisis de datos y distribuir aplicaciones que utilizan la inteligencia artificial. Con ella, puedes integrar todas las herramientas necesarias para respaldar la generación aumentada por recuperación, un método que permite obtener respuestas de la inteligencia artificial desde tus propios documentos de referencia. Cuando conectas OpenShift AI con NVIDIA AI Enterprise, puedes experimentar con modelos de lenguaje de gran tamaño (LLM) para encontrar el más adecuado para tu aplicación.

Crea un canal para la documentación

Para utilizar la RAG, primero debes ingresar tus documentos a una base de datos vectorial. En nuestra aplicación de ejemplo, incorporamos un conjunto de documentos de productos a una base de datos Redis. Como estos documentos cambian con frecuencia, podemos crear un canal para este proceso que ejecutaremos periódicamente, de modo que siempre dispongamos de las últimas versiones.

Explora el catálogo de LLM

NVIDIA AI Enterprise brinda acceso a un catálogo de diferentes LLM para que puedas probar distintas opciones y seleccionar aquel que genere los mejores resultados. Los modelos se alojan en el catálogo de la API de NVIDIA. Una vez que hayas configurado un token de API, podrás implementar un modelo utilizando la plataforma de distribución de modelos NVIDIA NIM directamente desde OpenShift AI.

Elige el modelo adecuado

A medida que pruebas diferentes LLM, los usuarios pueden valorar cada respuesta generada. Configura un panel de supervisión de Grafana para comparar las calificaciones, así como la latencia y el tiempo de respuesta de cada modelo. Luego, aprovecha esos datos a la hora de elegir el mejor modelo para la fase de producción.


 

An architecture diagram shows an application built using Red Hat OpenShift AI and NVIDIA AI Enterprise. Components include OpenShift GitOps for connecting to GitHub and handling DevOps interactions, Grafana for monitoring, OpenShift AI for data science, Redis as a vector database, and Quay as an image registry. These components all flow to the app frontend and backend. These components are built on Red Hat OpenShift AI, with an integration with ai.nvidia.com.

Descarga el PDF

Hub

El blog oficial de Red Hat

Obtenga la información más reciente sobre nuestro ecosistema de clientes, socios y comunidades.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

¿Qué es el ajuste fino eficiente de parámetros (PEFT)?

El PEFT es un conjunto de técnicas que ajustan solo una parte de los parámetros que están dentro de un LLM para utilizar menos recursos.

Diferencias entre LoRA y QLoRA

La adaptación de bajo rango (LoRA) y la adaptación de bajo rango cuantificada (QLoRA) son técnicas para entrenar modelos de inteligencia artificial.

Los vLLM

Los vLLM son conjuntos de código open source que permiten que los modelos de lenguaje realicen cálculos de manera más eficiente.

IA/ML: lecturas recomendadas

Artículos relacionados