Esta publicación está coescrita por Jeff Boudier, Simon Pagezy y Florent Gbelidji de Hugging Face.
Los sistemas de IA agente representan una evolución de la IA conversacional a agentes autónomos capaces de realizar razonamientos complejos, uso de herramientas y ejecución de código. Las aplicaciones empresariales se benefician de enfoques de implementación estratégica adaptados a necesidades específicas. Estas necesidades incluyen puntos finales administrados, que ofrecen capacidades de escalamiento automático, API de modelo básico para admitir razonamientos complejos y opciones de implementación en contenedores que respaldan requisitos de integración personalizados.
Hugging Face smolagents es una biblioteca Python de código abierto diseñada para simplificar la creación y ejecución de agentes utilizando unas pocas líneas de código. Le mostraremos cómo crear una solución de IA agente integrando los smolagents de Hugging Face con los servicios administrados de Amazon Web Services (AWS). Aprenderá cómo implementar un agente de IA para el cuidado de la salud que demuestre opciones de implementación multimodelo, recuperación de conocimientos mejorada por vectores y capacidades de soporte a decisiones clínicas.
Si bien utilizamos la atención médica como ejemplo, esta arquitectura se aplica a múltiples industrias donde la inteligencia y la confiabilidad de dominios específicos son fundamentales. La solución utiliza el diseño de smolagents independiente del modelo, de la modalidad y de las herramientas para orquestar los puntos finales de IA de Amazon SageMaker, las API de Amazon Bedrock y los servidores de modelos en contenedores.
Descripción general de la solución
Muchos sistemas de IA enfrentan limitaciones con enfoques de modelo único que no pueden adaptarse a las diversas necesidades empresariales. Estos sistemas suelen tener opciones de implementación rígidas, API inconsistentes entre diferentes servicios de IA y carecen de opciones de implementación multimodelo para una selección óptima del modelo.
Esta solución demuestra cómo las organizaciones pueden crear sistemas de inteligencia artificial que aborden estas limitaciones. La solución permite la selección de implementación en función de las necesidades operativas y proporciona formatos de solicitud y respuesta consistentes en diferentes backends de IA y métodos de implementación. Genera respuestas contextuales a través de la integración del conocimiento médico y la búsqueda de vectores, respaldando la implementación desde entornos de desarrollo a producción a través de una arquitectura en contenedores.
Este caso de uso de atención médica ilustra cómo el agente de IA puede procesar consultas médicas complejas para seis medicamentos con soporte para decisiones clínicas y capacidades de cumplimiento y seguridad de AWS.
Arquitectura
La solución consta de los siguientes servicios y funciones para ofrecer capacidades de IA agente:
El siguiente diagrama ilustra la arquitectura de la solución.
La arquitectura es una integración completa del marco de smolagents de Hugging Face con los servicios de AWS. Una interfaz web del cliente se conecta a un contenedor de agentes de atención médica que se organiza en tres backends modelo: SageMaker AI con BioM-ELECTRA, Amazon Bedrock con Claude 3.5 Sonnet V2 y un servidor modelo en contenedores con BioM-ELECTRA. La solución incluye un almacén de vectores impulsado por OpenSearch Service y una capa de seguridad con cifrado de datos en reposo y en tránsito. La capa de seguridad también maneja el control de acceso y la autenticación de IAM, y cualquier exención de responsabilidad médica para el cumplimiento normativo.
Esta solución admite opciones de implementación a través de smolagents con cada backend optimizado para diferentes escenarios:
SageMaker AI para terminales administrados con cargas de trabajo de producción y escalamiento automático utilizando modelos de Hugging Face Hub. Amazon Bedrock para acceso sin servidor a modelos básicos y razonamiento complejo a través de las API de AWS. Un servidor de modelos en contenedores para la implementación de modelos autohospedados y la integración de herramientas desde Hugging Face Hub.
Los tres backends implementan la compatibilidad de la API Hugging Face Messages, confirmando formatos consistentes de solicitud y respuesta independientemente del modelo de servicio seleccionado. Los usuarios seleccionan el backend adecuado según sus requisitos: la solución proporciona opciones de implementación en lugar de enrutamiento automático.
La implementación completa está disponible en el repositorio de GitHub sample-healthcare-agent-with-smolagents-on-aws.
Beneficios clave
La integración de los agentes smolagents de Hugging Face con los servicios administrados de AWS ofrece ventajas significativas para las implementaciones de IA agente empresarial.
Elección de implementación
Las organizaciones pueden elegir la implementación óptima para cada caso de uso: Amazon Bedrock para acceso sin servidor a modelos básicos e implementación en contenedores autohospedados para integración de herramientas personalizadas o SageMaker AI para modelos de dominio especializados. Estas opciones ayudan a satisfacer los requisitos de cargas de trabajo específicas, en lugar de un enfoque único para todos.
Opciones de implementación multimodelo
Las organizaciones pueden optimizar sus opciones de infraestructura sin cambiar la lógica de sus agentes. Puede cambiar entre el servidor modelo en contenedores, SageMaker AI y Amazon Bedrock sin modificar el código de su aplicación. Esto proporciona opciones de implementación y, al mismo tiempo, mantiene un comportamiento coherente de los agentes.
Capacidades de generación de código
El enfoque CodeAgent de smolagents agiliza las operaciones de varios pasos mediante la generación y el procesamiento directo de código Python. La siguiente comparación ilustra las operaciones de varios pasos de los smolagents:
Enfoque basado en JSON de varios pasos:
Agente de código de smolagents:
CodeAgent de smolagents admite bloques de código único para manejar operaciones de varios pasos, lo que reduce las llamadas a modelos de lenguaje grandes (LLM) y agiliza el desarrollo de agentes. Proporciona control total de la lógica del agente en todas las implementaciones de servicios de AWS.
Arquitectura escalable
Al implementar la aplicación en AWS, obtiene acceso a funciones de seguridad y capacidades de escalamiento automático que lo ayudan a cumplir con los requisitos de seguridad de la organización y mantener el cumplimiento normativo. La ejecución de cargas de trabajo en contenedores con Amazon ECS y Fargate le ayuda a lograr operaciones confiables y optimizar costos mediante el escalado automatizado de recursos.
Veamos cómo implementar esta solución.
Requisitos previos
Antes de implementar la solución, necesita lo siguiente:
Ejecute el siguiente comando para instalar los paquetes de Python necesarios:
Configurar variables de entorno
Configure las variables de entorno requeridas para su región de AWS y los nombres de recursos antes de implementar la infraestructura.
Configure las siguientes variables de entorno en su terminal:
Verifique que las variables estén configuradas:
Estas variables de entorno se utilizan durante los procesos de implementación y prueba. Verifique que estén configurados antes de continuar con el siguiente paso.
Configurar la infraestructura de AWS
Comience creando los componentes fundamentales de la infraestructura de AWS utilizando la clase SampleAWSInfrastructureManager de la implementación Smolagents_SageMaker_Bedrock_Opensearch.py.
Implementar una infraestructura completa (enfoque automatizado)
Para la implementación automatizada de los componentes de la infraestructura de AWS, puede utilizar la función principal mejorada.
Inicie la función principal mejorada:
La implementación crea automáticamente un clúster de Amazon ECS, roles de IAM y un dominio de OpenSearch Service. Espere a que se complete la implementación (aproximadamente entre 15 y 20 minutos).
Crear componentes individuales de AWS (enfoque alternativo)
Si prefiere crear componentes individualmente, puede configurar un dominio de OpenSearch Service para la recuperación de conocimientos mejorada con vectores y un clúster de Amazon ECS para la implementación en contenedores.
Tanto el dominio de OpenSearch Service como el clúster de Amazon ECS se crean automáticamente como parte de la implementación completa de la infraestructura de AWS (Opción 1 en Enhanced_main). Si ya implementó la infraestructura completa, ambos componentes están listos y puede pasar a la sección Implementar el punto final de IA de Amazon SageMaker.
Implementar el punto final de IA de Amazon SageMaker
Implemente el modelo BioM-ELECTRA-Large-SQuAD2 en SageMaker AI para el procesamiento de consultas médicas especializadas. Se proporcionan un método automatizado (para la implementación a través del sistema principal mejorado) y un método manual (para la implementación a través del punto final de SageMaker AI).
Para implementar usando main mejorado (método automatizado)
Para implementar el punto final de SageMaker AI (método manual)
Verifique que las variables de entorno de SageMaker estén configuradas (en la sección Configurar variables de entorno):
Ejecute la función de implementación de Amazon SageMaker:
La implementación utiliza HuggingFaceModel con transformadores 4.28.1, PyTorch 2.0.0 y tipo de instancia ml.m5.xlarge. Espere a que se complete la implementación del endpoint (aproximadamente entre 5 y 10 minutos). Verifique la implementación del punto final:
El punto final está configurado para tareas de respuesta a preguntas con MAX_LENGTH=512 y TEMPERATURE=0.1.
Configurar los backends multimodelo
Configure las dos opciones de backend adicionales utilizando la clase SampleTripleHealthcareAgent para la selección del modelo según las necesidades operativas.
Opción 1: configurar el acceso a Amazon Bedrock
Configure el acceso a Amazon Bedrock para la integración del modelo básico con Claude 3.5 Sonnet V2.
Verifique que la configuración de su modelo de Amazon Bedrock esté establecida (en la sección Configurar variables de entorno): el acceso a Claude 3.5 Sonnet V2 está disponible automáticamente para su cuenta de AWS. Puede verificar la disponibilidad del modelo en la consola de Amazon Bedrock en Catálogo de modelos.
Inicializar la base de conocimientos médicos.
Configure la base de datos de conocimientos médicos con seis medicamentos e incrustaciones de vectores en OpenSearch Service. Puede usar la función Enhanced_main(), que proporciona un menú interactivo para tareas de implementación, o inicializar manualmente usando la clase SampleOpenSearchManager.
Para inicializar usando main mejorado (método automatizado)
Para inicializar la base de conocimientos médicos (método manual)
Inicialice SampleOpenSearchManager:
El sistema crea el índice de conocimientos médicos con asignaciones para los campos nombre_medicamento, contenido y tipo_contenido. El conocimiento médico sobre metformina, lisinopril, atorvastatina, amlodipino, omeprazol y simvastatina se indexa automáticamente. Cada medicamento incluye efectos secundarios, requisitos de seguimiento e información sobre la clase de medicamento. La tienda de vectores admite búsqueda por similitud con filtrado de tipo de contenido para consultas específicas. Verifique que la indexación se haya completado correctamente:
Opción 2: implementar el servidor modelo en contenedores
Después de configurar la infraestructura central, implemente un servidor modelo en contenedores que proporcione capacidades de implementación de modelos autohospedados.
Implemente el servidor de modelos en contenedores utilizando la clase LocalContainerizedModelServer con BioM-ELECTRA-Large-SQuAD2 para la implementación del modelo.
Para implementar contenedores en Amazon ECS (método automatizado)
Para una implementación automatizada, utilice la implementación en contenedores de Amazon ECS:
Para implementar el servidor modelo en contenedores (método manual)
Verifique que la configuración de su modelo en contenedores esté establecida (desde el paso Configurar variables de entorno):
Inicialice el servidor modelo en contenedor:
El servidor modelo en contenedores utiliza el espacio aislado de Docker para la ejecución segura del código.
Verifique que el servidor modelo en contenedor se esté ejecutando:
El servidor modelo en contenedores incluye mecanismos alternativos con integración de bases de datos de conocimientos médicos. El servidor modelo en contenedores admite la implementación con el descubrimiento de servicios de Amazon ECS.
Implementar el agente de atención médica.
Implemente el agente de atención médica principal utilizando la clase SampleTripleHealthcareAgent que demuestra la integración de smolagents con capacidades de implementación en los tres backends.
Inicializar el triple agente sanitario.
Configure el agente de atención médica principal que coordina SageMaker AI, Amazon Bedrock y el servidor modelo en contenedores con integración del marco de smolagents.
Cree la instancia de la tienda de vectores:
Inicialice el triple agente sanitario:
El agente inicializa tres backends del modelo: SampleSageMakerEndpointModel con integración BioM-ELECTRA SampleBedrockClaudeModel con Claude 3.5 Sonnet V2 API SampleContainerizedModel con mecanismos alternativos Cada backend está envuelto con SampleHealthcareCodeAgent para la integración de smolagents. Los agentes están configurados con max_steps=3 y la integración de DuckDuckGoSearchTool.
Configurar opciones de implementación
El sistema demuestra tres opciones de implementación basadas en las necesidades operativas.
Para comprender las opciones de implementación:
Implementación de SageMaker AI: consultas médicas especializadas sobre información de medicamentos, efectos secundarios y requisitos de seguimiento. Implementación de Amazon Bedrock: tareas de razonamiento complejas que requieren análisis médicos detallados y razonamiento de varios pasos. Implementación en contenedores: integración de modelos personalizados con herramientas especializadas y acceso a modelos autohospedados.
Cada backend incluye respaldo de base de datos con conocimiento médico para seis medicamentos y Amazon OpenSearch Service proporciona información contextual en todos los backends del modelo con coincidencias de similitud.
Pruebe el sistema interactivo
Utilice la función sample_interactive_healthcare_assistant para probar la implementación multimodelo.
Inicie el asistente sanitario interactivo:
El sistema proporciona comandos para cambiar de modelo: 1 para SageMaker Endpoint 2 para servidor de modelo en contenedores 3 para Amazon Bedrock Claude API compare para ver las tres respuestas Las consultas de prueba están limitadas a 100 caracteres para un rendimiento óptimo. Las respuestas incluyen contexto vectorial cuando esté disponible e información de respaldo de la base de datos.
Ejecute y pruebe la solución
Ahora puede ejecutar y probar el agente de atención médica multimodelo para observar las capacidades de implementación de múltiples backends de smolagents utilizando la base de datos de conocimiento médico real con seis medicamentos.
Ejecute la aplicación
La solución proporciona múltiples formas de interactuar con el agente de IA de atención médica según su entorno de desarrollo preferido.
Interfaz web optimizada
Para una experiencia interactiva basada en la web:
Cuaderno Jupyter
Para desarrollo y experimentación interactivos:
Python directo
Para ejecución de línea de comando:
Estos métodos brindan acceso a la misma funcionalidad de agente de atención médica multimodelo con diferentes interfaces de usuario.
Pruebe las opciones de implementación
Utilice la función Enhanced_main para acceder a las utilidades de prueba y validar la implementación multimodelo.
Demostración interactiva de atención médica
Experimente la interfaz conversacional del asistente de atención médica con capacidades de cambio de modelo casi en tiempo real.
Inicie la función principal mejorada:
Elija la opción 5 para la demostración interactiva de 3 modelos para iniciar la interfaz conversacional. El sistema proporciona comandos para cambiar de modelo: 1 para SageMaker Endpoint 2 para servidor de modelo en contenedores 3 para Amazon Bedrock Claude API compare para ver las tres respuestas Las consultas de prueba están limitadas a 100 caracteres para un rendimiento óptimo. Las respuestas incluyen contexto vectorial cuando esté disponible e información de respaldo de la base de datos.
Comparar las respuestas del modelo
Utilice la función Enhanced_main para comparar las tres opciones de implementación en diferentes
tipos de consulta.
Para ejecutar pruebas interactivas
Inicie la función principal mejorada:
Elija la opción 7 para comparar los 3 modelos para probar las opciones de implementación.
Pruebe una consulta médica con SageMaker AI:
Pruebe una consulta de razonamiento compleja con Amazon Bedrock:
Pruebe una consulta que utilice el servidor modelo en contenedores:
Las respuestas reales incluyen contexto vectorial del servicio OpenSearch cuando está disponible, y muestran resultados de coincidencia de similitud junto con las respuestas del modelo.
Verificar el estado de implementación
Utilice las utilidades de prueba integradas para verificar la implementación del agente de atención médica y el estado de los componentes.
Ejecute la prueba del componente (opción 6 en Enhanced_main):
Resultado esperado:
OpenSearch: Punto final de SageMaker conectado: Activo Bedrock: Disponible Servidor modelo en contenedores: Clúster ECS iniciado: Activo
Monitoree el estado del agente usando get_container_status():
Resultado esperado:
Contenedor de agentes sanitarios: Marco de agentes activos: Active Messages API: Compatible Base de datos de medicamentos: 6 medicamentos cargados Tienda de vectores: OpenSearch integrado
Pruebe la funcionalidad del servidor modelo en contenedores (opción 10) para validar el servidor modelo en contenedores de forma independiente:
Resultado esperado:
Servidor de modelo en contenedores: iniciado con éxito Modelo BioM-ELECTRA: cargado Conocimiento médico: disponible Mecanismos de respaldo: activo
Pruebe la similitud de vectores del servicio OpenSearch (opción 9) para observar cómo el sistema relaciona las consultas (como los efectos secundarios de la metformina y el monitoreo de lisinopril) con puntuaciones de similitud de vectores y coincidencia de contenido.
Limpiar recursos
Para evitar incurrir en cargos futuros, elimine los recursos que creó utilizando las utilidades de limpieza proporcionadas en la implementación.
Elimine el dominio de Amazon OpenSearch Service:
Elimine el clúster de Amazon ECS y el servicio de agente de atención médica:
Limpie el punto final de IA de Amazon SageMaker y el servidor de modelo en contenedores. Elija cualquiera de los siguientes métodos: Método 1: utilizar el menú principal_mejorado Ejecute la función principal mejorada:
Seleccione la opción 8 para la limpieza de SageMaker cuando se le solicite. Método 2: utilizar funciones de limpieza directa Utilice las funciones de limpieza directa:
Si el servidor en contenedor se está ejecutando, deténgalo:
Eliminar el rol de IAM:
Consideraciones adicionales
Para las implementaciones de producción, implementar la observabilidad es esencial para monitorear el desempeño del agente, rastrear los seguimientos de ejecución y verificar la confiabilidad. Amazon Bedrock AgentCore Runtime proporciona observabilidad con instrumentación automática. Captura métricas de sesión, datos de rendimiento, seguimiento de errores y seguimientos de ejecución completos (incluidas las invocaciones de herramientas). Obtenga más información sobre la implementación de la observabilidad en Cree agentes de IA confiables con la observabilidad de Amazon Bedrock AgentCore.
Casos de uso
Si bien demostramos una implementación de atención médica, esta solución se aplica a múltiples industrias que requieren inteligencia y confiabilidad de dominios específicos. Con la implementación de múltiples modelos, las organizaciones pueden elegir el backend óptimo para cada caso de uso. Esto incluye puntos finales administrados para cargas de trabajo de producción, modelos básicos para razonamiento complejo o implementación autohospedada para una integración personalizada.
Servicios financieros
Las instituciones financieras pueden implementar agentes para el cumplimiento normativo, la evaluación de riesgos y la detección de fraude, al tiempo que cumplen con estrictos requisitos de seguridad y auditoría. Este enfoque de implementación admite modelos especializados de detección de fraude, análisis regulatorios complejos e integración de herramientas financieras personalizadas.
Operaciones industriales y de fabricación.
Las organizaciones de fabricación pueden implementar agentes inteligentes para el mantenimiento predictivo, el control de calidad y la optimización de la cadena de suministro. La implementación de múltiples modelos permite el monitoreo de equipos, con modelos de dominio específico y un razonamiento complejo de la cadena de suministro con modelos básicos.
Energía y servicios públicos
Las empresas de energía pueden implementar agentes para las operaciones de la red, el cumplimiento normativo y la gestión de infraestructura. Este enfoque admite pronósticos de demanda casi en tiempo real con modelos especializados y análisis complejos de impacto ambiental con modelos básicos.
Conclusión
Mostramos cómo crear una solución de IA agente integrando los smolagents de Hugging Face con los servicios administrados de AWS. La solución demuestra opciones de implementación multimodelo, recuperación de conocimientos mejorada por vectores y capacidades de implementación para que las organizaciones puedan implementar agentes de IA de dominios específicos con funciones de seguridad y controles de cumplimiento de AWS.
El caso de uso de atención médica ilustra cómo el diseño independiente del modelo de smolagents respalda la orquestación de implementación en Amazon SageMaker AI, Amazon Bedrock y un servidor modelo en contenedores. Las innovaciones técnicas clave incluyen la compatibilidad de la API de mensajes en los backends, la integración del marco de trabajo de smolagents y la implementación en contenedores con AWS Fargate.
Esta arquitectura de solución es extensible a servicios financieros, manufactura, energía y otras industrias donde la inteligencia y la confiabilidad específicas de un dominio son fundamentales.
Analice un proyecto y los requisitos para encontrar la ayuda adecuada para las necesidades de su negocio con Hugging Face. O si tiene preguntas sobre cómo comenzar con AWS, hable con un especialista en IA generativa de AWS para saber cómo podemos ayudarlo a acelerar su negocio hoy.
Lectura adicional
Sobre los autores
Sanhita Sarkar, PhD, Soluciones globales para socios, IA/ML e IA generativa en AWS. Impulsa soluciones de socios de IA/ML e IA generativa en AWS, con una amplia experiencia de liderazgo en entornos de centro de datos, nube y borde. Posee varias patentes, ha publicado artículos de investigación y preside conferencias técnicas.
Jeff Boudier, director de productos de Hugging Face. Jeff también fue cofundador de Stupeflix, adquirida por GoPro, donde se desempeñó como director de gestión de productos, marketing de productos, desarrollo comercial y desarrollo corporativo.
Simon Pagezy, director de éxito de socios de Hugging Face. Lidera asociaciones en Hugging Face con importantes empresas de hardware y nube. Trabaja para que las ofertas de Hugging Face sean ampliamente accesibles en diversos entornos de implementación.
Florent Gbelidji, líder tecnológico de asociaciones en la nube para la cuenta de AWS, que impulsa las integraciones entre las ofertas de Hugging Face y los servicios de AWS. También ha sido ingeniero de ML en el Programa de Aceleración de Expertos, donde ayudó a las empresas a crear soluciones con IA de código abierto.