Blog de Amazon Web Services (AWS)
Asistente de normativa para sector financiero utilizando IA generativa en AWS
Introducción
La asesoría legal corporativa es compleja y en ella muchas veces confluyen interpretaciones de distintos cuerpos normativos. En el caso específico de la regulación financiera en Chile, la Recopilación Actualizada de Normas (RAN) es el cuerpo normativo rector de la industria. Esta contiene más de 100 capítulos destinados a abordar temas como gobierno corporativo, externalización de servicios, riesgo operacional, solvencia, inversiones, entre otros.
Con el fin de agilizar el trabajo de equipos legales y de cumplimiento normativo, creamos un asistente especializado, por medio de inteligencia artificial (IA) generativa, que pueda buscar entre múltiples capítulos de la RAN y responder preguntas de forma rápida y precisa. A modo de ejemplo, proporcionamos al asistente disposiciones de la RAN que consideramos se refieren a la adopción de servicios de tecnología de la información, para posteriormente preguntar sobre requisitos que deben ser considerados al externalizar este tipo de servicios. El control o la revisión humana de las respuestas generadas por el asistente comprobó que no hubo alucinaciones ni información inexacta.
El asistente fue construido con Amazon Bedrock, un servicio totalmente administrado que ofrece una selección de modelos fundacionales (FM) de alto rendimiento a través de una sola API. Además, brinda un conjunto de capacidades para crear aplicaciones de IA generativa con seguridad, privacidad y un uso de IA responsable. Los FM de Amazon Bedrock se pueden personalizar de manera privada, y al no tener servidores, no se requiere administrar ninguna infraestructura, y se integran de manera segura a los servicios de AWS.
En este blog vamos a proporcionar una guía detallada para el despliegue del asistente especializado en normativa para el sector financiero sobre AWS, implementación que no debiese tardar más de 1 hora. El caso de prueba está relacionado a la normativa chilena, pero el asistente puede ser adaptado a cualquier tipo de normativa de cualquier país, siempre y cuando se encuentre documentada de manera similar.
Resumen de la solución
El asistente se basa en una solución preconstruida totalmente funcional y configurable, que no requiere tener conocimiento previo en IA generativa ni en desarrollo de aplicaciones en la nube.
El despliegue del asistente consta de dos partes:
- Despliegue de la solución oficial de AWS: Generative AI Application Builder on AWS que facilita el desarrollo, la experimentación rápida y el despliegue de aplicaciones de IA generativa utilizando un efoque “No-Code”.
- Uso de la solución para generar la aplicación que contiene el asistente especializado en normativa del sector financiero abordado en este artículo.
Arquitectura de la aplicación generada.
A continuación, los servicios y tecnologías utilizadas en la aplicación, dispuestos en el orden en el que se utilizan.
1- Los usuarios acceden a la interfaz web generada por la solución mediante la URL de acceso que se crea como parte de los recursos del caso de uso.
2- La interfaz de usuario se encuentra alojada en un bucket de Amazon S3 como contenido estático y es entregado por Amazon CloudFront de forma segura.
3- La parte dinámica de la aplicación es provista por Amazon API Gateway y AWS Lambda. Esta capa va a cubrir los flujos de autenticación, de configuración y de uso regular de la aplicación.
4- Los usuarios se autentican usando Amazon Cognito.
5- La interacción con los modelos de IA generativa está orquestada por AWS Lambda que implementa su lógica utilizando LangChain y el SDK de AWS para la interacción con otros servicios nativos de la nube. Mediante la funcionalidad de WebSockets API de API Gateway la aplicación optimiza los tiempos de espera en las respuestas de los modelos de IA generativa
6- Los parámetros de configuración de los modelos y el historial de la conversación de los usuarios se almacenan en AWS System Manager Parameter Store y Amazon DynamoDB respectivamente. La solución utiliza el historial del chat almacenado en DynamoDB para enriquecer las siguientes interacciones con el asistente, o como se conoce en inglés, los siguientes “prompts” a realizar agregando contexto adicional.
7- Si la implementación tiene habilitada la base de conocimientos (conocida como base de datos vectorial), LangChain utiliza Amazon Kendra para realizar una búsqueda semántica y recuperar los fragmentos de los documentos relacionados con la pregunta del usuario.
8- Los Large Language Model (LLMs) a utilizar en la solución son accedidos mediante Amazon Bedrock. Se utiliza tanto un modelos para realizar embedding (Amazon Titan Embeddings) como para generación de texto (Anthropic Claude 2).
9- Si utiliza un LLM externo a AWS es necesario utilizar credenciales en forma de “API key“. Las keys se almacenan en AWS Secrets Manager.
10- Cuando la respuesta proviene del LLM, LangChain envía la respuesta como un stream a través de la funcionalidad de WebSocket de API Gateway. De este modo, la respuesta se visualiza en la interfaz de usuario de forma inmediata apenas el modelo comience a generar respuestas.
11- Amazon CloudWatch recopila métricas de los servicios utilizados para generar paneles personalizados que permiten supervisar el rendimiento y el estado operativo de la solución.
Guía de despliegue
Prerrequisitos
- Cuenta de AWS con permisos de creación de “stacks” de Amazon CloudFormation y permisos para desplegar los servicios utilizados en la solución, incluyendo suficientes cuotas disponibles para los mismos.
- Permisos para operar en una de las regiones soportadas por la solución.
- Acceso a los modelos de terceros en Amazon Bedrock. Para más información, consulte la documentación sobre cómo solicitar acceso a modelos de Amazon Bedrock.
- Dirección de correo electrónico a ser utilizada para la administración de la solución.
Despliegue
- Despliegue la última versión disponible de la solución siguiendo la guía de implementación. Solo necesita una dirección de correo para la cuenta de administración. La solución utiliza “nested stacks” totalizando 4 plantillas, desplegadas en 15 minutos o menos.
- Acceda al panel de administración de la aplicación mediante la URL de Cloudfront provista en la solapa “Outputs” del “stack” principal de CloudFormation como pueden ver en la siguiente imagen. Y utilice las credenciales que le fueron enviadas al correo de administración que introdujo en el paso anterior para autenticarse en el portal.
- Descargue los siguientes capítulos de la Recopilación Actualizada de Normas de Bancos (RAN) del sitio oficial de la Comisión para Mercados Financieros (CMF) de Chile. Para el caso de prueba, elegimos los siguientes capítulos que contienen la información necesaria para que el asistente de IA generativa pueda responder a las preguntas de ejemplo de forma precisa:
- RAN-1-13
- RAN-20-7
- RAN-20-8
- RAN-20-9
- RAN-20-10
- Suba los documentos descargados en el paso anterior a un bucket de Amazon S3.
- Cree un nuevo índice en Amazon Kendra siguiendo los pasos en la documentación oficial para utilizarlo como fuente de conocimiento (knowledge base) por el asistente de IA generativa. Asigne un nombre al índice, seleccione la opción de crear un nuevo rol de Amazon Identity and Access Management (Amazon IAM) y deje el resto los parámetros de creación por defecto como se muestra en la siguiente imagen.
- Agregue el bucket de Amazon S3 del paso 4 como fuente de datos (data source) del índice creado anteriormente como se muestra en la siguiente imagen.
Seleccione la opción de crear un nuevo rol de IAM para los permisos de ejecución de Kendra como se aprecia en la siguiente imagen.
Para el modo de sincronización, escoja “Full Sync”, y para el agendamiento de ejecución de sincronizaciones, seleccione “Run on demand”. En este artículo sólo se cargan los datos una vez a modo de ejemplo. Deje el resto de los valores por defecto y finalice el asistente de creación.
7. Como seleccionó “Run on demand”, al agregar la fuente de datos debemos indexarla mediante una sincronización, escogiendo “Sync now”. Los 5 documentos tardan aproximadamente 6 minutos en indexarse. Una vez terminado debería verse como en las siguientes imágenes:
- En el panel de navegación de Kendra escoja el nombre del índice de Kendra creado en el paso número 5. Luego, bajo “Index settings”, busque y anote el ID del índice señalizado en la siguiente imagen para su posterior uso.
- Regrese a la ventana del panel de administración de la solución que abrió en el paso 2 y cree un nuevo caso de uso introduciendo los valores correspondientes al tipo, nombre, descripción y correo de administración como se muestra en la siguiente imagen.
Para poder reproducir el comportamiento del asistente evidenciado en esta publicación, seleccione Anthropic Claude v2 como modelo base (foundation model) generador de texto y deje el resto de los parámetros por defecto. Si, en cambio, desea experimentar, puede seleccionar otro de los modelos disponibles y cambiar las configuraciones y parámetros adicionales del caso de uso como “temperatura”, “verbosidad” y “streaming”.
Active la utilización de RAG, seleccione Amazon Kendra como base de conocimiento e introduzca el id del índice que anotó en el paso 8, como se muestra en la próxima imagen. Finalmente revise y finalice la creación del caso de uso. El despliegue puede tardar unos 10 minutos.
- Una vez desplegado el caso de uso, recibirá las credenciales de autenticación en el correo introducido en el paso 9. Utilice estas credenciales para acceder a la interfaz del caso de uso. En el panel de despliegues (Deployments), identifique el caso de uso creado y escoja “Open Application” para acceder al portal de la aplicación.
- Utilice la interfaz del caso de uso para interactuar con el asistente. Puede dejar la plantilla de “prompt” por defecto escogiendo “Cancelar” y comenzar a hacer preguntas al asistente, como se muestra en las imágenes a continuación.
Pregunta 1: ¿Puedo procesar datos en el extranjero?
Pregunta 2: ¿Qué pasa con los servicios realizados en el extranjero?
Pregunta 3: ¿Y el requisito de tener un centro de procesamiento de datos en Chile?
Pregunta 4: ¿Puedo exceptuar del requisito de tener un centro de procesamiento de datos de contingencia?
Pregunta 5: ¿Cómo se mide la gestión de riesgo operacional?
Si lo desea, puede seguir interactuando con el asistente y seguir corroborar la exactitud de las respuestas entregadas.
Para un mejor funcionamiento del asistente, es importante incorporar la habilidad de hacer buenas preguntas, o sea, aplicar “prompt engineering”. En este sentido, recomendamos proveer contexto al asistente para que entregue respuestas más completas. También, realizar preguntas abiertas que le permitan elaborar respuestas amplias. Para que cumpla con los requisitos de lo que se está investigando también se le puede pedir una forma (como carta, en formato correo electrónico, por ejemplo) y extensión de las respuestas (un párrafo, dos líneas, etc.). Finalmente, vale la pena preguntar y pedir aclaraciones en aquello que no queda claro de sus respuestas.
- Una vez terminada la prueba, puede seguir el siguiente procedimiento para eliminar todos los recursos desplegados.
- Seleccione el caso de uso en la interfaz de administración de la solución y escoja Eliminar en las opciones superiores.
- En la consola de CloudFormation, escoger el stack principal desplegado en el paso 1, luego escoger Eliminar.
- Elimine el índice de Amazon Kendra creado en el paso 5
- Elimine los documentos de la CMF almacenados en el bucket de Amazon S3 en el paso 4.
Conclusiones
En esta publicación describimos cómo desplegar un asistente especializado en normativa para el sector financiero mediante una aplicación “non code” de IA generativa en AWS con Amazon Bedrock. Para los ejercicios de preguntas llevados a cabo durante las pruebas, el asistente entregó respuestas completas y que fueron capaces de integrar una gran cantidad de información proveniente de distintos capítulos de la RAN.
La calculadora transformó el trabajo de los matemáticos sin reemplazarlos. De la misma forma, creemos que este tipo de asistentes pueden proporcionar múltiples beneficios de interpretación y revisión de normativa. Esta nueva forma de trabajo, que necesita ser complementada con criterio humano para verificar la información, tiene el potencial de transformar la práctica legal como la conocemos hoy.
Finalmente, los invitamos a revisar los casos de usos de IA generativa, otros blogs similares y lo cursos de Machine Learning que tenemos disponibles para ustedes.
Autores
___
Carmina Hernández es Gerente de Políticas Públicas para AWS en Chile. También es miembro del directorio de la asociación gremial ACTI y de la fundación Data Observatory. El rol de Carmina se centra en desarrollar y ejecutar objetivos estratégicos para promover la transformación digital de los gobiernos y la adopción de servicios en la nube en instituciones públicas, sector privado, startups y múltiples industrias reguladas.
___
___
Rene Martínez es Arquitecto de Soluciones Principal en AWS, con 16 años de experiencia profesional en el rubro TI y más de 8 con tecnologías relacionadas a computación en la nube. En su rol actual, trabaja con clientes empresariales del sector financiero de Chile en pos de identificar, diseñar y construir las mejores soluciones para sus requerimientos de negocio.
___
Tags: Inteligencia Artificial Generativa, Servicios Financieros, AWS Solutions, Amazon Bedrock