diciembre 17, 2023

Generación Aumentada de Recuperación (RAG): IA generativa con tus propios datos

Exploramos cómo la generación aumentada por recuperación (RAG) revoluciona la IA en empresas, integrando Azure y Copilot Studio para innovación y eficiencia.

Generación Aumentada de Recuperación (RAG): IA generativa con tus propios datos

En la constante evolución de la inteligencia artificial (IA), la Generación Aumentada de Recuperación (RAG) se destaca como un avance revolucionario. Fusionando la capacidad generativa de los modelos de lenguaje con la precisión de datos actualizados, RAG redefine cómo las máquinas interactúan y responden a consultas complejas. Este artículo profundiza en su definición, origen, aplicaciones y cómo se implementa en plataformas como Azure y Copilot Studio.


Orígenes del Concepto RAG

Desarrollo Histórico

El origen de RAG se encuentra en la evolución de los modelos de lenguaje de gran escala (LLM). Estos modelos, aunque avanzados, tenían limitaciones en cuanto a relevancia y actualización de datos. Investigadores de Meta (anteriormente Facebook AI Research) idearon RAG como una solución a estas limitaciones. RAG nació del deseo de hacer que los modelos de IA fueran más dinámicos, precisos y actualizados, permitiéndoles acceder y utilizar datos de fuentes externas en tiempo real.

Innovación en IA

La propuesta de RAG representó una innovación significativa, ya que los modelos tradicionales de IA se basaban principalmente en conjuntos de datos estáticos y preentrenados. RAG introdujo la idea de que los modelos de IA podrían mejorar significativamente su rendimiento al incorporar información externa, actualizada y específica en sus respuestas.


Valor Aportado a las Empresas

Mejora del Soporte al Cliente

Las empresas que implementan RAG en sus sistemas de atención al cliente pueden ofrecer respuestas más precisas y personalizadas. Los chatbots y asistentes virtuales basados en RAG pueden acceder a información actualizada sobre productos, servicios y políticas de la empresa, proporcionando una experiencia de usuario mucho más rica y satisfactoria.

Toma de Decisiones Basada en Datos

RAG facilita la toma de decisiones informadas al proporcionar a los ejecutivos y analistas de datos acceso a información actualizada y relevante. Esto es particularmente útil en industrias donde las condiciones del mercado y las tendencias cambian rápidamente, como las finanzas, la salud y la tecnología.

Innovación en Productos y Servicios

RAG permite a las empresas comprender mejor las tendencias del mercado y las necesidades de los clientes. Al analizar datos en tiempo real, las empresas pueden desarrollar productos y servicios más alineados con las demandas actuales del mercado y anticipar futuras tendencias.


El Cambio que Supone la RAG y qué problemas soluciona

Superación de Limitaciones de Actualización

La RAG permite que los modelos de IA superen la limitación de depender de conjuntos de datos estáticos. Al integrar información en tiempo real, los modelos pueden ofrecer respuestas que reflejan las condiciones actuales y los desarrollos recientes.

Mejora de la Relevancia y Precisión de Respuestas

RAG mejora la relevancia y precisión de las respuestas generadas por IA. Al tener acceso a una amplia gama de fuentes de datos, los modelos pueden generar respuestas que son más específicas y adaptadas a las consultas de los usuarios.

Reducción de Sesgos

Al acceder a una diversidad de fuentes de datos, RAG ayuda a mitigar los sesgos presentes en los conjuntos de datos de entrenamiento. Esto conduce a respuestas más equilibradas y representativas de una gama más amplia de perspectivas y experiencias.


Elementos de una Arquitectura RAG

Modelos LLM

Los modelos LLM son el núcleo de la generación de respuestas en RAG. Estos modelos, como GPT-4 de OpenAI, generan respuestas basadas en un vasto conocimiento parametrizado. RAG amplía sus capacidades permitiéndoles acceder a datos externos para respuestas más precisas y actualizadas.

Bases de Datos Vectoriales

Las bases de datos vectoriales almacenan información en formatos numéricos (vectores) que los modelos de IA pueden procesar eficientemente. Estas bases de datos son esenciales para la rápida recuperación y comparación de información relevante.

Modelos de Incrustación

Los modelos de incrustación transforman consultas y datos en vectores, facilitando la comparación y búsqueda eficaces en las bases de datos vectoriales. Estos modelos son cruciales para identificar y recuperar la información más pertinente.

Componentes de Recuperación

Los componentes de recuperación buscan y refinan la información recuperada de las bases de datos vectoriales. Estos componentes aseguran que la información integrada en las respuestas sea relevante y precisa.

Interfaces de Usuario Intuitivas

Las interfaces de usuario en los sistemas RAG deben ser intuitivas y fáciles de usar, permitiendo a los usuarios interactuar eficientemente con el sistema y obtener la información que necesitan sin complicaciones.

Plataformas de Procesamiento de Datos

Las plataformas de procesamiento de datos manejan y procesan grandes volúmenes de datos. Estas plataformas son fundamentales para garantizar que los datos estén disponibles y sean accesibles para los modelos de IA.

Ejemplo de una Arquitectura RAG en Azure

El proyecto "Chat with Your Data Solution Accelerator" en GitHub proporciona un ejemplo práctico de cómo implementar una arquitectura RAG en Azure.  Este proyecto combina Azure AI Search y modelos de lenguaje grandes de Azure OpenAI para crear una experiencia de búsqueda conversacional. Utiliza un modelo GPT de Azure OpenAI y un índice de Azure AI Search generado a partir de tus datos, integrados en una aplicación web que proporciona una interfaz de lenguaje natural, incluyendo funcionalidad de voz a texto para consultas de búsqueda.

El repositorio ofrece una plantilla para configurar el acelerador de soluciones, con instrucciones detalladas para personalizarlo según necesidades específicas. Incluye características como la capacidad de chatear con un modelo Azure OpenAI usando datos propios, cargar y procesar documentos, indexar páginas web públicas, configuración fácil de prompts y múltiples estrategias de fragmentación de datos.

El acelerador proporciona opciones como:

  • Fundamentar un modelo usando tanto datos como páginas web públicas.
  • Capacidades avanzadas de ingeniería de prompts.
  • Un sitio de administración para ingerir/inspeccionar/configurar tu conjunto de datos al instante.
  • Ejecución de una solución RAG localmente, como un contenedor Docker.

Entre sus características clave, se incluyen:

  • Acceso privado a LLM en tus datos.
  • Acceso de aplicación única a tu conjunto completo de datos.
  • Interacción en lenguaje natural con tus datos no estructurados.
  • Acceso fácil a la documentación fuente al consultar.
  • Carga de datos por lotes.
  • Orquestación accesible: configuración de prompts y documentos.

El acelerador soporta varios tipos de archivos como PDF, JPEG, JPG, PNG, TXT, HTML, MD (Markdown) y DOCX. Está destinado a empleados y ejecutivos de empresas que buscan investigar datos internos no estructurados de la compañía.

El acelerador también es aplicable en diversos escenarios de la industria, como en el sector de servicios financieros.

La funcionalidad de voz a texto admite una forma más flexible de interactuar con los datos, combinando esta capacidad con capacidades de procesamiento de lenguaje natural (NLP) para extraer intención y contexto del lenguaje hablado.

Para implementar este acelerador en Teams, se utiliza la misma infraestructura de backend que para la aplicación web, permitiendo a los usuarios obtener respuestas dentro de su flujo de trabajo actual sin cambiar de plataforma.

Los requisitos previos para la implementación incluyen un recurso Azure OpenAI y una implementación para uno de los modelos de chat y un modelo de incrustación. Los productos utilizados en este acelerador abarcan Azure App Service, Azure Application Insights, Azure Bot, Azure OpenAI, Azure Document Intelligence, Azure Function App, Azure Search Service, Azure Storage Account, Azure Speech Service y Teams (opcional para la extensión de Teams).

Las licencias requeridas incluyen Microsoft 365 (opcional para la extensión de Teams). Las consideraciones de precios son importantes, ya que este acelerador despliega múltiples recursos, y cada componente tiene un coste asociado.

Las instrucciones de implementación proporcionan un proceso detallado para configurar los recursos necesarios directamente en tu suscripción de Azure.

El sitio de administración permite cargar documentos y agregar datos, que luego pueden ser utilizados por la aplicación web para iniciar conversaciones basadas en tus datos.

Para personalizar el acelerador o ejecutarlo localmente, se deben seguir las instrucciones de implementación local.

Las mejores prácticas incluyen:

  • Acceso a documentos: Solo subir datos accesibles por cualquier usuario de la aplicación.
  • Profundidad de respuestas: Considerar la amplitud de las preguntas en función de la limitación del conjunto de datos.
  • Consistencia en respuestas: Afinar la configuración de los prompts al nivel de precisión deseado.
  • Consultas numéricas: El acelerador está optimizado para resumir datos no estructurados, como PDFs o archivos de texto.

Azure AI Search, cuando se usa como recuperador en RAG, juega un papel clave en la recuperación de información relevante de un gran corpus de datos.

Azure AI Search permite ajustar la relevancia de los resultados de búsqueda mediante características como perfiles de puntuación, capacidades de búsqueda de texto completo de Lucene, búsqueda vectorial para búsqueda de similitud, búsqueda multimodal, recomendaciones, búsqueda híbrida y búsqueda semántica para reordenar los resultados de búsqueda con más relevancia semántica.

Antes de desplegar implementaciones de Azure RAG en producción, se recomienda seguir las mejores prácticas descritas en el Azure Well-Architected-Framework y experimentar con diferentes opciones para definir los prompts óptimos para tus necesidades.

La fragmentación de datos es esencial para gestionar grandes conjuntos de datos, optimizar la relevancia, preservar el contexto, integrar flujos de trabajo y mejorar la experiencia del usuario. Las opciones de estrategia de fragmentación incluyen enfoques de IA para determinar una buena estrategia de fragmentación, descomposición de documentos largos en páginas y definición de un tamaño fijo que permita cierta superposición para preservar el contexto semántico.


Ejemplo de una Arquitectura RAG en Copilot Studio

En Copilot Studio, un sistema RAG podría ser desarrollado utilizando su interfaz gráfica, la cual permite a los usuarios configurar flujos de trabajo de IA de manera sencilla y efectiva.

El Copilot Studio de Microsoft ofrece una arquitectura sofisticada y flexible para la creación y gestión de chatbots y asistentes basados en inteligencia artificial. Su enfoque se centra en la reutilización y la eficiencia, permitiendo a los usuarios crear soluciones robustas y personalizadas con facilidad. A continuación, se detalla la arquitectura y los elementos clave de Copilot Studio:

1. Plugins

Los plugins son componentes reutilizables que realizan tareas específicas o proporcionan funcionalidades particulares para un copiloto. Pueden ayudar a responder consultas en lenguaje natural, ejecutar flujos de trabajo, conectarse a sistemas externos o proporcionar orientación específica sobre temas. Se crean y editan en el Copilot Studio y se almacenan en un registro de plugins para su uso en múltiples copilotos.

Tipos de Plugins en Copilot Studio

  • Prompt Plugins: Responden a consultas en lenguaje natural utilizando técnicas de procesamiento y generación de lenguaje natural (NLP y NLG).
  • Flow Plugins: Ejecutan flujos de trabajo de múltiples pasos utilizando Microsoft Power Automate.
  • Connector Plugins: Conectan con sistemas externos o fuentes de datos mediante conectores de la plataforma Power de Microsoft.
  • Topic Plugins: Permiten conversaciones de un solo turno entre un usuario y un copiloto sobre un tema específico.

2. Registro de Plugins

El registro de plugins almacena y gestiona la metadata y la información de ejecución de los plugins. Funciona como una fuente única para descubrir plugins creados en Copilot Studio y ayuda a los usuarios a descubrir aplicaciones integradas disponibles en su nivel de inquilino.

3. Aplicaciones Integradas y Usos Diversos

Copilot Studio es utilizado por una variedad de copilotos, incluyendo copilotos de Microsoft para aplicaciones Dynamics 365 y Teams, así como copilotos personalizados creados en el estudio. Se espera que la lista de copilotos disponibles crezca a medida que se desarrollen más copilotos de primera y tercera parte.

4. Capa de Administración

En esta capa, los administradores pueden utilizar el Centro de Administración de Microsoft para elegir aplicaciones integradas disponibles para su inquilino. Pueden permitir, implementar o bloquear aplicaciones para usuarios específicos o para todos. Estas aplicaciones pueden tener múltiples plugins.

5. Descubrimiento y Ejecución de Plugins

Los plugins disponibles para un creador incluyen aquellos asignados a través de aplicaciones integradas implementadas y descubiertos a través del registro de plugins. Los creadores pueden personalizar aún más los plugins según sus necesidades.

6. Rutas de Ejecución en Tiempo de Ejecución

  • Plugins Basados en Dataverse: Acceden o modifican datos en Dataverse y soportan la autenticación de Microsoft Entra ID.
  • Plugins que Usan el Ecosistema de Conectores de Power Platform: Ejecutan conectores que proporcionan acceso a sistemas de registro internos y externos.

7. Capa de Datos/AI

Representa las diversas tiendas de datos y sistemas donde residen los datos y la lógica empresarial. Incluye productos de Dynamics 365, Microsoft Copilot Studio, Power Automate y sistemas externos como Salesforce y SAP.

8. Flujos de Configuración y Ejecución

Los administradores configuran las aplicaciones integradas correspondientes y las asignan a los usuarios. Los plugins aplicables para un usuario se recuperan del registro de plugins, y el usuario puede configurar los plugins que desea utilizar.

Ejemplos de Flujos de Ejecución de Plugins

  • Dynamics 365: El orquestador mapea la expresión de un usuario a un conjunto de plugins candidatos, ejecutando el plugin más adecuado y devolviendo los resultados al usuario.
  • Copilot Studio Prompt Plugins: El enunciado de un usuario se mapea a un plugin, que utiliza datos de la tabla de órdenes en Dataverse y llama a OpenAI para resumir y devolver los resultados.
  • Connector-Based Plugins: La configuración para conectores como Salesforce comienza con una experiencia de conexión en la interfaz, donde el usuario puede ingresar la información de conexión. Los plugins se ejecutan utilizando la infraestructura de conectores de Power Platform.

Copilot Studio no solo facilita la creación de plugins sino también de copilots, ampliando el alcance de los plugins a través de múltiples copilots en Dynamics 365, Copilot para Teams y otros copilots de terceros. Esta flexibilidad permite crear una vez y desplegar en múltiples copilots.


Cuando Utilizar Copilot Studio y Cuándo un Sistema RAG a Medida

La elección entre utilizar Copilot Studio y desarrollar un sistema RAG a medida depende de varios factores, incluyendo las necesidades específicas del proyecto, la complejidad, los recursos disponibles y los objetivos a largo plazo. A continuación, se amplía en detalle cada opción y se presenta una tabla comparativa.

Copilot Studio

Copilot Studio es ideal para organizaciones que buscan una solución rápida y eficiente para implementar chatbots y asistentes de IA sin necesidad de una personalización profunda. Es especialmente adecuado para proyectos que requieren una implementación ágil con recursos limitados.

Ventajas:

  • Implementación Rápida y Sencilla: Con una interfaz de usuario intuitiva, permite una rápida configuración y despliegue.
  • Menor Necesidad de Recursos Técnicos: No requiere habilidades avanzadas de programación o conocimientos de IA para crear soluciones efectivas.
  • Integración con Productos de Microsoft: Se integra de forma nativa con otros productos de Microsoft, como Dynamics 365 y Microsoft Teams.
  • Actualizaciones y Mantenimiento por Parte de Microsoft: Las actualizaciones y el mantenimiento están a cargo de Microsoft, reduciendo la carga sobre los equipos internos.

Desventajas:

  • Menos Personalización: Ofrece menos flexibilidad en términos de personalización y adaptación a necesidades específicas.
  • Dependencia de la Plataforma: Puede limitar a las organizaciones a las capacidades y límites de la plataforma.

Sistema RAG a Medida

Un sistema RAG a medida es más adecuado para organizaciones que requieren soluciones altamente personalizadas y tienen recursos técnicos disponibles para desarrollar y mantener estos sistemas.

Ventajas:

  • Alta Personalización: Permite una personalización profunda para adaptarse a necesidades específicas y complejas.
  • Control Total sobre la Solución: Ofrece un control completo sobre la arquitectura y la funcionalidad de la solución.
  • Integración con Sistemas Existentes: Puede diseñarse para integrarse sin problemas con sistemas y procesos empresariales existentes.

Desventajas:

  • Mayor Tiempo y Recursos para el Desarrollo: Requiere más tiempo y recursos para el desarrollo y la implementación.
  • Necesidad de Expertise Técnico: Requiere habilidades técnicas avanzadas en IA, programación y arquitectura de sistemas.
  • Responsabilidad de Mantenimiento: La organización es responsable del mantenimiento y actualización del sistema.

Tabla Comparativa

Característica Copilot Studio Sistema RAG a Medida
Implementación Rápida y con menor esfuerzo técnico Lenta y requiere más esfuerzo técnico
Personalización Básica, limitada por la plataforma Alta, con control total sobre la solución
Integración Integración nativa con productos de Microsoft Flexible, puede integrarse con una variedad de sistemas
Mantenimiento A cargo de Microsoft Responsabilidad de la organización
Coste Menor coste inicial, dependiente de la suscripción Potencialmente alto debido al desarrollo y mantenimiento
Recurso Humano No requiere expertos en IA Necesita un equipo técnico especializado
Flexibilidad Limitada por las capacidades de la plataforma Alta, adaptable a cambios y requerimientos específicos
Escalabilidad Depende de las limitaciones de la plataforma Diseñada según las necesidades específicas de escalabilidad
Seguridad y Privacidad Determinada por las políticas de Microsoft Personalizable según los estándares de la organización

Copilot Studio es una solución eficaz para proyectos que requieren una implementación rápida y tienen requisitos de personalización menos complejos. Por otro lado, un sistema RAG a medida es más adecuado para proyectos que necesitan una solución altamente personalizada y tienen los recursos para soportar su desarrollo y mantenimiento. La elección entre las dos opciones dependerá de los objetivos específicos del proyecto, los recursos disponibles y las capacidades técnicas del equipo.


Conclusiones

La Generación Aumentada de Recuperación es un avance crucial en la evolución de la IA, ofreciendo soluciones más precisas y relevantes para una variedad de aplicaciones empresariales. La elección entre un enfoque low code como Copilot Studio y un sistema RAG personalizado dependerá de las necesidades específicas, recursos y objetivos de cada proyecto. Con su capacidad para integrar información actualizada y específica, RAG está configurada para ser una herramienta esencial en el arsenal de cualquier empresa que busque aprovechar al máximo las capacidades de la IA moderna.