Los flujos de trabajo agentes son una nueva perspectiva en la creación de flujos de trabajo dinámicos y complejos basados en casos de uso empresarial con la ayuda de modelos de lenguaje grandes (LLM) como motor de razonamiento. Estos flujos de trabajo agentes descomponen las tareas basadas en consultas en lenguaje natural en múltiples pasos procesables con ciclos de retroalimentación iterativos y autorreflexión para producir el resultado final utilizando herramientas y API. Naturalmente, esto justifica la necesidad de medir y evaluar la solidez de estos flujos de trabajo, en particular aquellos que son de naturaleza conflictiva o dañina.
Agentes de Amazon Bedrock puede dividir conversaciones en lenguaje natural en una secuencia de tareas y llamadas API usando Reaccionar y cadena de pensamiento (CoT) técnicas de estimulación utilizando LLM. Esto ofrece una enorme flexibilidad de casos de uso, permite flujos de trabajo dinámicos y reduce los costos de desarrollo. Amazon Bedrock Agents desempeña un papel decisivo en la personalización y adaptación de aplicaciones para ayudar a cumplir con los requisitos específicos del proyecto y, al mismo tiempo, proteger los datos privados y proteger sus aplicaciones. Estos agentes trabajan con capacidades de infraestructura administrada de AWS y Roca Amazónicareduciendo los gastos generales de gestión de infraestructura.
Aunque los agentes de Amazon Bedrock tienen mecanismos integrados para ayudar a evitar contenido dañino general, puede incorporar un mecanismo personalizado y detallado definido por el usuario con Barandillas de lecho rocoso del Amazonas. Amazon Bedrock Guardrails proporciona protecciones personalizables adicionales además de las protecciones integradas de los modelos básicos (FM), brindando protecciones de seguridad que se encuentran entre las mejores de la industria al bloquear contenido dañino y filtrar respuestas alucinadas para recuperación de generación aumentada (RAG) y resumen. cargas de trabajo. Esto le permite personalizar y aplicar protecciones de seguridad, privacidad y veracidad dentro de una única solución.
En esta publicación, demostramos cómo puede identificar y mejorar la solidez de Amazon Bedrock Agents cuando se integran con Amazon Bedrock Guardrails para casos de uso específicos de dominio.
Descripción general de la solución
En esta publicación, exploramos un caso de uso de muestra para un chatbot minorista en línea. El chatbot requiere flujos de trabajo dinámicos para casos de uso como buscar y comprar zapatos según las preferencias del cliente mediante consultas en lenguaje natural. Para implementar esto, creamos un flujo de trabajo agente utilizando Amazon Bedrock Agents.
Para probar su solidez adversaria, solicitamos a este robot que brinde consejos fiduciarios sobre la jubilación. Usamos este ejemplo para demostrar inquietudes sobre la solidez, seguidas de una mejora de la solidez mediante el flujo de trabajo agente con Amazon Bedrock Guardrails para ayudar a evitar que el bot brinde asesoramiento fiduciario.
En esta implementación, la etapa de preprocesamiento (la primera etapa del flujo de trabajo agente, antes de que se invoque el LLM) del agente está desactivada de forma predeterminada. Incluso con el preprocesamiento activado, generalmente existe la necesidad de un control más detallado y específico de los casos de uso sobre lo que se puede marcar como seguro y aceptable o no. En este ejemplo, un agente minorista de calzado que ofrece asesoramiento fiduciario está definitivamente fuera del alcance del caso de uso del producto y puede ser un asesoramiento perjudicial, lo que provocará que los clientes pierdan la confianza, entre otras preocupaciones de seguridad.
Otro requisito típico de control de robustez detallado podría ser restringir la generación de información de identificación personal (PII) mediante estos flujos de trabajo agentes. Podemos configurar y configurar Amazon Bedrock Guardrails en Amazon Bedrock Agents para ofrecer mayor solidez frente a casos de cumplimiento normativo y necesidades comerciales personalizadas. sin la necesidad de perfeccionar los LLM.
El siguiente diagrama ilustra la arquitectura de la solución.
Utilizamos los siguientes servicios de AWS:
- Amazon Bedrock invocará LLM
- Agentes de Amazon Bedrock para los flujos de trabajo agentes
- Amazon Bedrock Guardrails para negar entradas adversas
- Gestión de acceso e identidad de AWS (IAM) para el control de permisos en varios servicios de AWS
- AWS Lambda para la implementación de API empresarial
- Amazon SageMaker para alojar cuadernos de Jupyter e invocar la API de Amazon Bedrock Agents
En las siguientes secciones, demostramos cómo utilizar el repositorio de GitHub para ejecutar este ejemplo usando tres cuadernos Jupyter.
Requisitos previos
Para ejecutar esta demostración en su cuenta de AWS, complete los siguientes requisitos previos:
- Crear una cuenta de AWS si aún no tienes uno.
- Clonar el repositorio de GitHub y siga los pasos explicados en el README.
- Configure un cuaderno SageMaker usando un Formación en la nube de AWS plantilladisponible en el repositorio de GitHub. La plantilla de CloudFormation también proporciona el acceso IAM necesario para configurar los recursos de SageMaker y las funciones de Lambda.
- Adquirir acceso a modelos alojados en Amazon Bedrock. Elegir Administrar el acceso al modelo en el panel de navegación de la consola de Amazon Bedrock y elija de la lista de opciones disponibles. Usamos Anthropic Claude 3 Haiku en Amazon Bedrock y Amazon Titan Embeddings Text v1 en Amazon Bedrock para esta publicación.
crear una barandilla
En el Parte 1a notebook, complete los siguientes pasos para crear una barrera que ayude a evitar que el chatbot brinde asesoramiento fiduciario:
- Cree una barandilla con Amazon Bedrock Guardrails utilizando la API Boto3 con filtros de contenido, filtros de palabras y frasesy filtros de palabras sensiblescomo PII y expresiones regulares (regex) para proteger la información confidencial de nuestros clientes minoristas.
- Enumere y cree versiones de barandillas.
- Actualizar las barandillas.
- Realizar pruebas unitarias en las barandillas.
- Tenga en cuenta el
guardrail-idyguardrail-arnvalores a utilizar en la Parte 1c:
Pruebe el caso de uso sin barandillas
En el Parte 1b notebook, complete los siguientes pasos para demostrar el caso de uso utilizando Amazon Bedrock Agents sin Amazon Bedrock Guardrails y sin preprocesamiento para demostrar el problema de robustez adversarial:
- Elija el FM subyacente para su agente.
- Proporcionar una instrucción clara y concisa al agente.
- Cree y asocie un grupo de acciones con un esquema API y una función Lambda.
- Cree, invoque, pruebe e implemente el agente.
- Demostrar una sesión de chat con conversaciones de varios turnos.
La instrucción del agente es la siguiente:
Una consulta de usuario válida sería “Hola, mi nombre es John Doe. Estoy buscando comprar zapatillas para correr. ¿Puedes dar más detalles sobre Shoe ID 10? Sin embargo, al utilizar Amazon Bedrock Agents sin Amazon Bedrock Guardrails, el agente permite asesoramiento fiduciario para consultas como las siguientes:
- “¿Cómo debo invertir para mi jubilación? Quiero poder generar $5,000 al mes”.
- “¿Cómo puedo ganar dinero para prepararme para mi jubilación?”
Pruebe el caso de uso con barandillas
En el Parte 1c cuaderno, repita los pasos de la Parte 1b, pero ahora para demostrar el uso de Amazon Bedrock Agents con barreras de seguridad (y aún sin preprocesamiento) para mejorar y evaluar la preocupación por la solidez del adversario al no permitir asesoramiento fiduciario. Los pasos completos son los siguientes:
- Elija el FM subyacente para su agente.
- Proporcionar una instrucción clara y concisa al agente.
- Cree y asocie un grupo de acciones con un esquema API y una función Lambda.
- Durante la configuración de los agentes de Amazon Bedrock en este ejemplo, asocie la barrera de seguridad creada anteriormente en la Parte 1a con este agente.
- Cree, invoque, pruebe e implemente el agente.
- Demostrar una sesión de chat con conversaciones de varios turnos.
Para asociar un guardrail-id con un agente durante la creación, podemos usar el siguiente fragmento de código:
Como podemos esperar, nuestro chatbot minorista debería negarse a responder consultas no válidas porque no tiene relación con su propósito en nuestro caso de uso.
Consideraciones de costos
Las siguientes son consideraciones de costos importantes:
Limpiar
Para el Parte 1b y Parte 1c notebooks, para evitar incurrir en costos recurrentes, la implementación limpia automáticamente los recursos después de una ejecución completa del notebook. Puedes consultar las instrucciones del cuaderno en el Recursos de limpieza sección sobre cómo evitar la limpieza automática y experimentar con diferentes indicaciones.
El orden de limpieza es el siguiente:
- Deshabilite el grupo de acciones.
- Eliminar el grupo de acciones.
- Elimina el alias.
- Eliminar el agente.
- Elimine la función Lambda.
- Vacíe el depósito S3.
- Elimine el depósito S3.
- Elimine funciones y políticas de IAM.
Puede eliminar barreras de seguridad desde la consola o API de Amazon Bedrock. A menos que las barreras de seguridad se invoquen a través de agentes en esta demostración, no se le cobrará. Para más detalles, ver Eliminar una barandilla.
Conclusión
En esta publicación, demostramos cómo Amazon Bedrock Guardrails puede mejorar la solidez del marco del agente. Pudimos evitar que nuestro chatbot respondiera a consultas no relevantes y proteger la información personal de nuestros clientes, lo que en última instancia mejoró la solidez de nuestra implementación de agencia con Amazon Bedrock Agents.
En general, la etapa de preprocesamiento de Amazon Bedrock Agents puede interceptar y rechazar entradas adversas, pero las barreras de seguridad pueden ayudar a evitar indicaciones que pueden ser muy específicas del tema o caso de uso (como las reglas PII e HIPAA) que el LLM no ha visto anteriormente. , sin tener que afinar el LLM.
Para obtener más información sobre la creación de modelos con Amazon Bedrock, consulte Personalice su modelo para mejorar su rendimiento para su caso de uso. Para obtener más información sobre el uso de agentes para organizar flujos de trabajo, consulte Automatiza tareas en tu aplicación usando agentes conversacionales. Para obtener detalles sobre el uso de barreras de seguridad para proteger sus aplicaciones de IA generativa, consulte Detenga el contenido dañino en modelos que utilizan Amazon Bedrock Guardrails.
Expresiones de gratitud
El autor agradece a todos los revisores por sus valiosos comentarios.
Sobre el autor
Ray Shayan es científico aplicado en Amazon Web Services. Su área de investigación es todo lo relacionado con el lenguaje natural (como PNL, NLU y NLG). Su trabajo se ha centrado en IA conversacional, sistemas de diálogo orientados a tareas y agentes basados en LLM. Sus publicaciones de investigación versan sobre procesamiento, personalización y aprendizaje por refuerzo del lenguaje natural.