Inicio

Architectures

Híbrido

Generación aumentada por recuperación

Generación aumentada por recuperación
Inicio rápido de watsonx SaaS Despliegue watsonx con Cloud Pak for Data
Un espacio principal recoloreado que utiliza como base el espacio principal watsonx para atención al cliente.
Descripción general

Los modelos de lenguaje grandes (LLM) a menudo tienen un conocimiento sorprendente sobre una amplia gama de temas, pero se limitan solo a los datos con los que fueron entrenados. Esto significa que los clientes que deseen emplear LLM con información empresarial privada o patentada no pueden emplear LLM "de buenas a primeras" para responder preguntas, generar correspondencia o similares.

La generación aumentada por recuperación (RAG) es un patrón arquitectónico que permite que los modelos fundacionales produzcan resultados objetivamente correctos para temas especializados o patentados que no formaban parte de los datos de entrenamiento del modelo. Al aumentar las preguntas y las 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

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

  1. Un ingeniero de AI prepara los datos del cliente (por ejemplo, manuales de procedimientos, documentación de productos o tickets de help desk, etc.) durante el preprocesamiento de datos. Los datos del cliente se transforman y/o enriquecen para hacerlos aptos para el aumento del modelo. Las transformaciones pueden incluir conversiones de formato sencillas, como convertir documentos PDF en texto, o transformaciones más complejas, como traducir estructuras de tablas complejas en sentencias del tipo si-entonces. El enriquecimiento puede incluir la ampliación de abreviaturas comunes, la adición de metadatos como información sobre divisas y otros añadidos 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 embedings generadas se almacenan en una base de datos vectorial. Cualquier fuente de datos que soporte consultas 'difusas' que devuelven resultados basados en su probable relevancia, por ejemplo watsonx Discovery, se puede usar 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 ser utilizado por los usuarios finales.
     

  4. Los usuarios finales interactúan con una aplicación habilitada para GenAI e ingresan una consulta.

     

  5. La aplicación GenAI 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 retiro diario en la cuenta MaxSavers?", la búsqueda puede devolver pasajes como "La cuenta MaxSavers es…", "Los límites de retiro diario son…". y "...límites de la cuenta...".

     

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

     

  7. El LLM devuelve una respuesta de tipo humano basada en la consulta del usuario, la instrucción y la información contextual que se presenta al usuario final.

Arquitectura de productos de IBM

En el diagrama anterior se muestra la asignación de la cartera de productos de watsonx al 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 asunto de consultas anteriores. Por ejemplo, si un usuario pregunta "Cuéntame sobre Toast-o-matic" y luego "¿Cuánto cuesta?" watsonx Assistant sabe que "it" en la última consulta se refiere a la tostadora en la primera.

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 y desplegar 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.

Despliegues on-premises/privados

Algunos clientes no tienen watsonx.ai disponible en su región local, o pueden tener problemas de seguridad o requisitos normativos que les impiden usar watsonx.ai Solución SaaS. Para estos clientes, ofrecemos watsonx.ai como un conjunto de servicios en contenedores que se pueden desplegar en Red Hat Openshift que se ejecutan 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.

Compatibilidad con varios idiomas

La mayoría de los LLM se imparten en textos dominantes en inglés que contienen un pequeño porcentaje de texto en otros idiomas, a menudo de Europa Occidental. Para las aplicaciones que requieren soporte multilingüe o de idiomas localizados, puede implementar un paso de traducción anterior y posterior a la consulta para traducir las entradas al 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 diagrama siguiente.

Este enfoque altera el patrón RAG base de la siguiente manera (dejando de 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 dominante en inglés.

  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 principales de información que son 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 AI generativa nuevamente utiliza un modelo de lenguaje grande 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 en porcentajes más grandes de diferentes idiomas, logren una precisión aún mayor.

Casos de uso

RAG es una solución candidata para cualquier escenario empresarial en el que exista 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 a los chatbots basados en LLM conocimientos patentados o específicos del dominio y prevenir las alucinaciones.

Los usos candidatos incluyen:

  • Subscripción de seguros y liquidación de siniestros. La RAG tiene muchas aplicaciones potenciales en la industria de los seguros. Los suscriptores y corredores deben conocer a fondo miles de páginas de documentación sobre las 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 para ayudar 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.

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

  • Chatbots para clientes. RAG es un fuerte habilitador para crear chatbots orientados al cliente para responder 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 del cliente convincente y conversacional. Tenga en cuenta que RAG por sí solo solo ofrece capacidades de Question and Answer; no tiene la capacidad de 'transaccionar', 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.

  • Asistencia/mesa de ayuda. Al igual que los agentes de los centros de atención telefónica, el personal de Operaciones y soporte de TI requiere un profundo conocimiento de la configuración de despliegue de sistemas complejos, así como de los problemas comunes y vistos con anterioridad y de su resolución. El patrón RAG constituye una estable base arquitectónica sobre la que crear soluciones que ayuden al personal de soporte a encontrar rápidamente las respuestas pertinentes a los problemas notificados y las incidencias observadas.

     

    Decisiones y consideraciones arquitectónicas

Son muchos los factores que intervienen a la hora de elegir un modelo que se adapte bien a su proyecto.

La licencia del modelo puede restringir cómo se puede usar. Por ejemplo, la licencia de un modelo puede impedir que se utilice como parte de una aplicación comercial.

El conjunto de datos que se emplea para capacitar el modelo tiene un impacto directo en el funcionamiento del modelo para una aplicación específica y afecta significativamente el riesgo de que el modelo pueda generar respuestas sin sentido, ofensivas o simplemente no deseadas. De manera similar, los modelos capacitados con datos privados o sujetos a derechos de autor pueden exponer a sus usuarios a responsabilidad legal. IBM ofrece total transparencia en los datos de entrenamiento y protección frente a demandas 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 un pasaje de texto puede aceptar el modelo) afectan el rendimiento del modelo, los requisitos de recursos y el rendimiento. Si bien es tentador optar por una filosofía de "cuanto más grande, mejor" y elegir un modelo de 20 000 millones de parámetros, es posible que los requisitos de recursos y la mejora (si la hay) en 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 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 al elegir un modelo incluyen:

  • Selección de los parámetros del modelo, p. ej. la temperatura del modelo, para equilibrar la creación de texto similar al humano y las respuestas fácticas. Establecer la temperatura del modelo en un valor alto generará respuestas consistentes pero potencialmente poco interesantes o demasiado concisas, mientras que establecer la temperatura en un valor bajo introducirá más variedad en las respuestas, pero agregará imprevisibilidad en la longitud y el contenido de la respuesta.

  • Selección e implementación de medidas de protección 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 del idioma. 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 la industria 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 operar en oraciones completas, para mantener la mayor cantidad posible de 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 de identificación personal 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.

Si bien la transmisión de cierta información confidencial 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 incorporar una tabla de descuentos de precios en los datos de RAG, incluya solo una descripción de la tabla y una referencia o enlace a un documento o sitio web interno en el contenido.

La seguridad a nivel de transporte (TLS) simple en las comunicaciones entre zonas puede ser suficiente para satisfacer los requisitos de seguridad de los datos, pero es posible que los arquitectos deban considerar proporcionar protección adicional agregando componentes para cifrar y descifrar las instrucciones y respuestas antes de pasarlas a través de los límites de la zona.

El tipo de conexión entre las zonas de despliegue tiene impacto 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 costo, pero es posible que no elimine por completo las preocupaciones de seguridad y es posible 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 costo 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.

Recursos Inicio rápido: Instrucción un modelo fundacional con el patrón de generación aumentada por recuperación

Puede usar modelos fundacionales en IBM watsonx.ai para generar salidas precisas basadas en información de una base de conocimientos aplicando el patrón de generación aumentada por recuperación.

Arquitectura de IA generativa de IBM

La arquitectura de IA generativa de IBM es la arquitectura de IA generativa completa de IBM en IBM IT Architect Assistant (IIAA), una herramienta de desarrollo y gestión de arquitecturas. Al utilizar IIAA, los arquitectos pueden elaborar y personalizar la arquitectura para crear sus propias soluciones de IA generativa.

Próximos pasos

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

Más formas de explorar Hybrid Cloud Architecture Center Herramientas y plantillas de diagramas IBM Well-Architected Framework
Colaboradores

David MasseyManav GuptaMihai Criveti, Chris Kirby y Pete Nuwayser

Actualizado: 28 de noviembre de 2023