Generación aumentada por recuperación

Un espacio principal recoloreado que utiliza como base el espacio principal watsonx para atención al cliente.
Visión general

Los modelos de lenguaje de gran tamaño (LLM) a menudo sorprenden por sus conocimientos sobre una amplia gama de temas, pero sólo se limitan a los datos con los que fueron entrenados. Esto significa que los clientes que deseen utilizar los LLM con información empresarial privada o patentada no pueden utilizarlos "de buenas a primeras" para responder a preguntas, generar correspondencia o similares.

La generación aumentada por recuperación (RAG) es un patrón arquitectónico que permite a los modelos fundacionales producir resultados objetivamente correctos para temas especializados o propietarios que no formaban parte de los datos de entrenamiento del modelo. Al aumentar las preguntas e instrucciones de los usuarios con datos relevantes recuperados de fuentes de datos externas, RAG proporciona al modelo hechos y detalles "nuevos" (para el modelo) en los que basar su respuesta.

 

 

Arquitectura conceptual

La arquitectura conceptual de una solución RAG que muestra los componentes principales y el flujo de interacciones entre ellos para responder a una consulta de usuario.
La arquitectura conceptual de una solución RAG que muestra los componentes principales y el flujo de interacciones entre ellos para responder a una consulta de usuario.

El patrón RAG, que se muestra en el diagrama siguiente, se compone de dos partes: la incrustación de datos durante el tiempo de compilación y la solicitud al usuario (o la devolución de resultados de búsqueda) durante el tiempo de ejecución.

  1. Un ingeniero de IA prepara los datos del cliente (por ejemplo, los manuales de procedimientos, la documentación del producto o las solicitudes de centro de servicio, etc.) durante el preprocesamiento de los datos. Los datos del cliente se transforman y/o enriquecen para que sean adecuados para el aumento del modelo. Las transformaciones pueden incluir conversiones de formato simples, como la conversión de documentos PDF en texto, o transformaciones más complejas, como la traducción de estructuras de tablas complejas en sentencias de tipo "si, entonces". El enriquecimiento puede incluir ampliar las abreviaturas más comunes, añadir metadatos, como información sobre divisas, y otras incorporaciones para mejorar la relevancia de los resultados de búsqueda.

     

  2. Se utiliza un modelo de incrustación para convertir los datos de origen en una serie de vectores que representan las palabras de los datos del cliente. Las incrustaciones facilitan el machine learning en entradas grandes como vectores dispersos que representan palabras. Las incrustaciones se almacenan como pasajes (llamados fragmentos) de datos del cliente, piense en subsecciones o párrafos, para facilitar la búsqueda de la información.

     

  3. Las incrustaciones generadas se almacenan en una base de datos vectorial. Cualquier fuente de datos que admita consultas "difusas" que devuelvan resultados basados en la relevancia probable, por ejemplo watsonx Discovery, puede utilizarse en la arquitectura RAG, pero la implementación más común utiliza una base de datos vectorial como Milvus, FAISS o Chroma.

    El sistema ya está listo para que lo usen los usuarios finales.
     

  4. Los usuarios finales interactúan con una aplicación habilitada para IA generativa e introducen una consulta.

     

  5. La aplicación de IA gen recibe la consulta y realiza una búsqueda en la base de datos vectorial para obtener la mayor cantidad de información (la llamamos top K) que más coincida con la consulta del usuario. Por ejemplo, si la consulta del usuario es "Cuál es el límite de retirada diario en la cuenta MaxSavers", la búsqueda puede devolver pasajes como "La cuenta MaxSavers es...", "El límite de retirada diario es...". y "...límites de la cuenta...".

     

  6. Los pasajes principales, junto con una instrucción organizada para la aplicación específica, se envían al LLM.

     

  7. El LLM devuelve una respuesta similar a la humana basada en la consulta, la instrucción y la información de contexto del usuario que se presenta al usuario final.

Arquitectura de productos de IBM
Una ilustración de cómo IBM watsonx Discovery, IBM watsonx Assistant y la versión SaaS de watsonx.ai realizan la arquitectura de la solución RAG.
Una ilustración de cómo IBM watsonx Discovery, IBM watsonx Assistant y la versión SaaS de watsonx.ai realizan la arquitectura de la solución RAG.

En el diagrama anterior se muestra la correlación de la cartera de productos de watsonx con el patrón RAG. 

watsonx Discovery implementa las funciones de preprocesamiento, generación de incrustación y almacenamiento y recuperación de relevancia del patrón. Para determinados tipos de soluciones, watsonx Discovery también puede utilizarse como aplicación de IA generativa front-end para los usuarios. Más allá de simplemente reemplazar una base de datos vectorial, watsonx Discovery ofrece enriquecimientos de PLN inmediatos, como la extracción de entidades, el análisis de sentimientos, el análisis de emociones, la extracción de palabras clave, la clasificación de categorías y el etiquetado de conceptos, entre otros.

Para las soluciones de chat, watsonx Assistant proporciona la interfaz de usuario y también capacidades conversacionales como recordar el tema de consultas anteriores. Por ejemplo, si un usuario pregunta "Hábleme de la Toast-o-matic" y luego "¿Cuánto cuesta eso?" watsonx Assistant sabe que "it" en la última consulta se refiere a Toast-o-matic en la primera consulta.

Por último, watsonx.ai ofrece una selección de grandes modelos de lenguaje entre los que los clientes pueden elegir en un entorno de alojamiento en la nube. Con watsonx.ai, los clientes pueden entrenar, validar, ajustar e implementar IA generativa, modelos fundacionales y capacidades de machine learning con facilidad y crear aplicaciones de IA en una fracción del tiempo con una fracción de los datos.

Implementaciones on-premise/privadas

Algunos clientes no tienen watsonx.ai disponible en su región local, o pueden tener problemas de seguridad o requisitos reglamentarios que les impidan utilizar el watsonx.ai Solución SaaS. Para estos clientes, ofrecemos watsonx.ai como un conjunto de servicios en contenedores que pueden implementarse en Red Hat Openshift ejecutándose dentro de los centros de datos de los clientes, o dentro de una nube privada dentro de la infraestructura de un servicio en la nube.

Un ejemplo de cómo se pueden implementar IBM watsonx Discovery, IBM watsonx Assistant y watsonx.ai on-premises para hacer realidad la arquitectura de soluciones RAG.
Un ejemplo de cómo se pueden implementar IBM watsonx Discovery, IBM watsonx Assistant y watsonx.ai on-premises para hacer realidad la arquitectura de soluciones RAG.
Soporte en varios idiomas

La mayoría de los LLM se forman con textos dominantes en inglés que contienen un pequeño porcentaje de textos en otras lenguas, a menudo de Europa Occidental. Para las aplicaciones que requieren soporte multilingüe o de idiomas localizados, puede implementar un paso de traducción previo y posterior a la consulta para traducir las inputs a el idioma "base" de los documentos preprocesados, por ejemplo, inglés, y traducir los resultados del modelo al idioma de destino, p. ej. español. Este enfoque se muestra en el siguiente diagrama.

Un recorrido por la arquitectura de la solución RAG que ilustra las interacciones y los flujos de los componentes para permitir el soporte de varios idiomas.
Un recorrido por la arquitectura de la solución RAG que ilustra las interacciones y los flujos de los componentes para permitir el soporte de varios idiomas.

Este enfoque altera el patrón RAG base de la siguiente manera (dejando a un lado los pasos de generación de incrustación):

  1. Un usuario ingresa una consulta en un idioma que difiere del idioma dominante de la documentación preprocesada. Por ejemplo, una consulta en español y una base de documentación predominantemente inglesa.

  2. La aplicación de IA generativa da la instrucción a un modelo de lenguaje grande para traducir la consulta del usuario al lenguaje de la base de la documentación. En nuestro ejemplo, de español a inglés.

  3. La consulta traducida se utiliza para recuperar los K pasajes de información más relevantes para la consulta del usuario.

  4. La consulta traducida y el contexto recuperado se envían al LLM para generar una respuesta.

  5. La aplicación de IA generativa vuelve a utilizar un modelo de lenguaje de gran tamaño para traducir la respuesta generada al idioma de destino del usuario. En nuestro ejemplo, de inglés a español.

  6. La respuesta traducida, en español, se presenta al usuario final.

La experiencia sugiere que con este enfoque se puede lograr una precisión del 80 % o más, según el contexto y los tipos de consultas que se envíen, en resultados que no sean en el idioma base. Se espera que los modelos multilingües emergentes, entrenados con porcentajes más grandes de diferentes idiomas, logren una precisión aún mayor.

Casos de uso

La RAG es una solución candidata para cualquier escenario empresarial en el que haya una gran cantidad de documentación y business rules que un usuario debe consultar para proporcionar respuestas autorizadas. También es una solución sólida para infundir chatbots basados en LLM con conocimiento propietario o específico del dominio y prevenir alucinaciones.

Los usos candidatos incluyen:

  • Suscripción de seguros y liquidación de siniestros. La RAG tiene muchas aplicaciones potenciales en el sector de los seguros. Los suscriptores y corredores requieren un profundo conocimiento de miles de páginas de documentación que cubren los términos y condiciones de cientos de productos de seguros. Del mismo modo, a los adjudicadores de siniestros se les puede exigir un profundo conocimiento de la misma documentación, así como de los contratos con cláusulas adicionales específicas de cada cliente. El patrón de arquitectura RAG puede servir como "columna vertebral" de la arquitectura de soluciones que ayuden a suscriptores, corredores y peritos a consultar la documentación de productos y contratos para responder mejor a las consultas de los clientes y mejorar la productividad de los procesos.

  • Asistencia al agente del centro de llamadas. Los agentes del centro de llamadas requieren un conocimiento profundo de potencialmente cientos de productos y servicios, así como de los problemas de productos más comunes y su resolución. El patrón RAG es una base arquitectónica sólida sobre la cual crear soluciones para ayudar a los agentes a encontrar rápidamente respuestas a las solicitudes de los clientes.

  • Chatbots para clientes. La RAG es un potente habilitador para crear chatbots orientados al cliente que respondan a sus preguntas. La combinación de las capacidades de lenguaje natural de los modelos de lenguaje grandes y las respuestas específicas de la empresa de RAG puede ofrecer una experiencia de cliente convincente y conversacional. Tenga en cuenta que el GAR por sí solo sólo ofrece la posibilidad de preguntar y responder; no tiene capacidad para "realizar transacciones", es decir. interactuar con los sistemas empresariales para extraer información o actualizar registros. Se deben agregar componentes adicionales para detectar la intención del usuario e interactuar con los sistemas empresariales.

  • Soporte/servicio de asistencia. Al igual que los agentes de call center, el personal de operaciones y soporte de TI requiere un conocimiento profundo de la configuración de implementación de sistemas complejos junto con el conocimiento de los problemas comunes y vistos anteriormente y su resolución. El patrón RAG es una sólida base de arquitectura sobre la que crear soluciones para ayudar al personal de soporte a encontrar rápidamente respuestas relevantes a los problemas notificados y observados.

     

    Decisiones y consideraciones sobre la arquitectura

Son muchos los factores que intervienen en la elección de un modelo que funcione bien para su proyecto.

La licencia del modelo puede restringir la forma en que se puede utilizar. Por ejemplo, la licencia de una modelo puede impedir que se utilice como parte de una solicitud comercial.

El conjunto de datos utilizado para entrenar el modelo de formación tiene un impacto directo en lo bien que funciona el modelo para una aplicación específica y afecta significativamente al riesgo de que el modelo pueda generar respuestas no sensatas, ofensivas o simplemente no deseadas. Del mismo modo, los modelos entrenados con datos protegidos por derechos de autor o privados pueden exponer a sus usuarios a responsabilidades legales. IBM proporciona total transparencia de los datos de formación e indemnización por reclamaciones legales derivadas de sus modelos.

El tamaño del modelo, con cuántos parámetros se entrena y el tamaño de su ventana de contexto (cuánto tiempo de texto puede aceptar el modelo) afectan al rendimiento del modelo, a los requisitos de recursos y al rendimiento. Aunque es tentador seguir la filosofía de "cuanto más grande, mejor" y elegir un modelo de 20 000 millones de parámetros, es posible que los recursos necesarios y la mejora (si la hay) de la precisión no lo justifiquen. Estudios recientes han demostrado que los modelos más pequeños pueden superar significativamente a los más grandes para algunas soluciones.

Cualquier ajuste aplicado a un modelo puede afectar a su idoneidad para una tarea. Por ejemplo, IBM ofrece dos versiones del modelo Granite: una ajustada para aplicaciones generales de chat y otra ajustada para seguir instrucciones.

Otras consideraciones a la hora de elegir un modelo son:

  • Selección de los parámetros del modelo, por ejemplo, la temperatura del modelo, para equilibrar la creación de respuestas textuales y fácticas similares a las humanas. Ajustar la temperatura del modelo a un valor alto generará respuestas coherentes pero potencialmente poco interesantes o demasiado escuetas, mientras que ajustar la temperatura a un valor bajo introducirá más variedad en las respuestas pero añadirá imprevisibilidad en la longitud y el contenido de las mismas.

  • Selección e implementación de barandillas modelo para protegerse contra resultados ineficaces u ofensivos.

La elección del modelo depende de la aplicación, el tipo de datos y los requisitos de soporte lingüístico. Es posible que los modelos de incrustación deban ampliarse para codificar y buscar con precisión términos o acrónimos específicos de sectores o del cliente.

Las bases de datos vectoriales son solo una opción para implementar el almacenar de datos de incrustación. Watsonx Discovery proporciona herramientas y funciones adicionales que pueden mejorar el rendimiento y la precisión de una solución RAG; y algunas bases de datos "tradicionales" proporcionan almacenamiento y búsqueda vectoriales y/o búsquedas por similitud que admiten una solución RAG.

También hay numerosas opciones para bases de datos vectoriales. Las bases de datos en memoria simples que se integran directamente en las aplicaciones de IA gen proporcionan un excelente rendimiento en tiempo de ejecución, pero es posible que no se escalen bien a grandes conjuntos de datos y que presenten importantes desafíos operativos para mantenerse al día o para escalar a configuraciones de varios servidores. Otras bases de datos que utilizan una arquitectura de servidor central son más fáciles de operar y escalar, pero es posible que no satisfagan las necesidades de rendimiento de la solución específica.

Existen varios métodos para integrar el modelo de recuperación y generación. Recuperar los K mejores pasajes y utilizarlos para aumentar la consulta del usuario es sencillo y rápido, pero puede carecer de los matices necesarios para responder a preguntas complejas. La simple búsqueda por palabra clave también puede dar resultados satisfactorios.

Las soluciones más complejas pueden utilizar un LLM para generar múltiples consultas a partir de la consulta original del usuario y utilizarlas para recuperar un conjunto mayor de pasajes. Se puede añadir lógica adicional para ordenar y seleccionar los pasajes recuperados con mayor relevancia.

El preprocesamiento de los datos antes de introducirlos en el sistema RAG es un paso importante para garantizar que los datos de entrada estén en un formato adecuado para el modelo. Los métodos más sencillos consisten en dividir los datos de entrada en trozos de tamaño fijo con solapamientos (por ejemplo, los diez últimos caracteres de un fragmento son los diez primeros caracteres del siguiente), pero esto puede hacer que se pierdan matices en los datos de entrada.

Un preprocesamiento más avanzado podría manipular el texto de entrada para eliminar las terminaciones de palabras comunes, por ejemplo: "stopper", "stopping" y "stopped" se convierten en "stop"); eliminar palabras "stop" no informativas como "the", "as", "is" y similares; y otras técnicas. Estos pueden mejorar sustancialmente la relevancia de la información recuperada, pero agregan complejidad tanto a las fases de incorporación de datos como a las de solicitud al usuario.

Incluso técnicas más avanzadas pueden funcionar con frases completas, para mantener la mayor cantidad posible del significado en el texto.

Evaluar el rendimiento de un sistema RAG puede resultar difícil debido a la complejidad de la tarea. Las métricas de evaluación comunes incluyen perplejidad, fluidez, relevancia y coherencia, así como las métricas BLU y ROUGE. Es importante elegir métricas que se alineen con los objetivos específicos de la tarea y los resultados deseados.

RAG requiere texto sin formato y la elección de los métodos de conversión tiene un gran impacto en la calidad de los datos. Por ejemplo, al convertir archivos PDF, cómo se gestionan las tablas, las imágenes y otros elementos de metadatos.

Generar una respuesta similar a la humana a partir de un LLM requiere importantes recursos informáticos y, a menudo, puede tardar varios segundos en función del tamaño del modelo, la complejidad de la consulta del usuario y la cantidad de información aumentada que se pasa al modelo. Las soluciones que necesitan atender a grandes grupos de usuarios o requieren tiempos de respuesta rápidos pueden necesitar implementar un mecanismo para almacenar en caché las respuestas del modelo a las consultas frecuentes.

Incrustar información patentada, potencialmente confidencial y potencialmente identificable personalmente en las instrucciones de LLM es fundamental y necesario para el patrón RAG. Las organizaciones que utilizan plataformas de modelos alojados deben conocer las políticas de los proveedores, como las políticas de retención y uso de datos de instrucción (p. ej. ¿El proveedor capta datos de instrucción y los utiliza para el reentrenamiento del modelo?), controles para evitar que los datos de las instrucciones se "filtren" a otros usuarios, etc.; y equilibrarlos con sus propias políticas y controles de seguridad de la información.

Aunque la transmisión de cierta información patentada es inevitable, las organizaciones pueden limitar su exposición incluyendo solo referencias de documentos o URL a la información más confidencial en los datos procesados. Por ejemplo, en lugar de incrustar una tabla de descuentos de precios en los datos RAG, incluya solo una descripción de la tabla y una referencia o enlace a un documento interno o sitio web en el contenido.

La simple seguridad a nivel de transporte (TLS) en las comunicaciones entre zonas puede ser suficiente para satisfacer los requisitos de seguridad de los datos, pero los arquitectos pueden tener que considerar la posibilidad de proporcionar una protección adicional mediante la adición de componentes para cifrar y descifrar las instrucciones y respuestas antes de pasarlas a través del límite de la zona.

El tipo de conexión entre las zonas de implementación tiene impactos en varios requisitos no funcionales. El uso de una conexión de red privada virtual (VPN) a través de la Internet pública es una opción de bajo coste, pero es posible que no alivie por completo los problemas de seguridad y que no pueda cumplir con los requisitos de tiempo de respuesta o rendimiento de la solución. Una conexión de red privada al entorno de alojamiento del modelo tiene un coste mucho mayor, pero ofrece una seguridad significativamente mejor y proporciona a los arquitectos la capacidad de controlar la latencia de la red y el ancho de banda.

Próximos pasos

Hable con nuestros expertos sobre la implementación de un patrón de implementación de nube híbrida.

Más opciones para profundizar Centro de arquitectura de nube híbrida de IBM Herramientas y plantillas de diagramas IBM Well-Architected Framework
Colaboradores

David MasseyManav GuptaMihai Criveti, Chris Kirby, Pete Nuwayser

Actualizado: 28 de noviembre de 2023