首页/详情

Hugging Face smolagents 与 AWS:构建企业级多模型智能代理的实战指南

AWS Machine Learning Blog2026/02/23 23:47机翻/自动摘要/自动分类
4 阅读

内容评分

技术含量
8/10
营销水分
4/10

摘要

本文详细阐述了如何结合 Hugging Face smolagents 框架与 AWS 管理服务,构建企业级多模型智能代理解决方案。通过一个医疗保健AI代理实例,文章展示了如何集成 Amazon SageMaker AI、Amazon Bedrock 和容器化模型,以实现复杂推理、向量知识检索及临床决策支持。该方案强调多部署选项的灵活性、Hugging Face Messages API 的兼容性、smolagents 的代码生成能力,以及 AWS 提供的安全与可扩展性,为各行业提供领域特定智能和高可靠性。

正文

智能代理系统是对话式AI的演进,它们是能够进行复杂推理、使用工具并执行代码的自主实体。企业应用可根据特定需求,通过定制化的部署方法从中获益。这些需求包括:提供自动扩展能力的管理型端点、支持复杂推理的基础模型API,以及支持自定义集成要求的容器化部署选项。

Hugging Face smolagents 是一个开源的Python库,它通过几行代码就能轻松构建和运行代理。本文将展示如何将 Hugging Face smolagents 与 Amazon Web Services (AWS) 的管理型服务集成,以构建一个智能代理解决方案。您将学习如何部署一个医疗保健AI代理,该代理展示了多模型部署选项、基于向量的知识检索和临床决策支持功能。

尽管本文以医疗保健为例,但该架构同样适用于其他需要领域特定智能和高可靠性的行业。该解决方案利用 smolagents 的模型无关性、模式无关性和工具无关性设计,在 Amazon SageMaker AI 端点、Amazon Bedrock API 和容器化模型服务器之间进行协调。

解决方案概述: 许多AI系统在采用单一模型方法时存在局限性,难以适应多样化的企业需求。这些系统通常部署选项固定,不同AI服务间的API不一致,且缺乏多模型部署选项来优化模型选择。

本解决方案展示了组织如何构建能够解决这些限制的AI系统。它允许根据运营需求选择部署方式,并在不同AI后端和部署方法之间提供一致的请求与响应格式。它通过整合医疗知识生成上下文响应,并借助容器化架构支持从开发到生产环境的无缝部署。

这个医疗保健用例展示了AI代理如何处理关于六种药物的复杂医疗查询,并提供临床决策支持以及AWS的安全性和合规性功能。

架构: 该解决方案整合了以下服务和特性,以实现智能代理功能:

  • Amazon SageMaker AIBioM-ELECTRA-Large-SQuAD2 模型,用于处理专业医疗查询并支持自动扩展。
  • Amazon BedrockClaude 3.5 Sonnet V2,用于复杂推理及基础模型访问。
  • Amazon OpenSearch Service,用于基于向量的相似性匹配和带有医疗知识索引的上下文知识检索。
  • Amazon Elastic Container Service (ECS)AWS Fargate,用于无服务器容器编排及部署基于 smolagents 库的Python应用程序。
  • AWS Identity and Access Management (IAM),用于安全与访问控制。
  • 包含 BioM-ELECTRA-Large-SQuAD2 的容器化模型服务器,用于自托管模型部署。

以下架构图展示了该解决方案的构成。

该架构是 Hugging Face smolagents 框架与 AWS 服务的深度集成。客户端Web界面连接到医疗代理容器,该容器负责协调三个模型后端:使用 BioM-ELECTRA 的 Amazon SageMaker AI、使用 Claude 3.5 Sonnet V2 的 Amazon Bedrock,以及使用 BioM-ELECTRA 的容器化模型服务器。该解决方案包含由 OpenSearch Service 提供的向量存储,以及数据在存储和传输过程中的加密安全层。安全层还负责IAM访问控制、身份验证,以及任何符合法规要求的医疗免责声明。

该解决方案支持通过 smolagents 的多种部署选项:

  • Amazon SageMaker AI 适用于具有自动扩展和生产工作负载的管理型端点,使用 Hugging Face Hub 模型。
  • Amazon Bedrock 适用于通过 AWS API 进行无服务器访问基础模型和复杂推理。
  • 容器化模型服务器适用于自托管模型部署和来自 Hugging Face Hub 的工具集成。

这三个后端均实现了 Hugging Face Messages API 的兼容性,无论选择哪种模型服务,都能确保请求和响应格式的一致性。用户可根据自身需求选择合适的后端——该解决方案提供部署选项,而非自动路由。

完整的实现可在以下 GitHub 仓库中找到: https://github.com/aws-samples/sample-healthcare-agent-with-smolagents-on-aws

主要优势: 将 Hugging Face smolagents 与 AWS 管理型服务集成,为企业智能代理部署带来了显著优势。

部署选择: 组织可根据每个用例选择最佳部署方式:

  • Amazon Bedrock 适用于无服务器访问基础模型及自托管的容器化部署;
  • Amazon SageMaker AI 则适用于专业领域模型。这些选项有助于满足特定的工作负载需求,避免采用一刀切的方法。

多模型部署选项: 组织可在不更改代理逻辑的前提下优化其基础设施选择。用户可在容器化模型服务器、Amazon SageMaker AI 和 Amazon Bedrock 之间切换,无需修改应用程序代码。这提供了灵活的部署选项,同时保持代理行为的一致性。

代码生成能力: smolagents 的 CodeAgent 方法通过直接生成和处理Python代码,简化了多步骤操作。以下比较展示了 smolagents 的多步骤操作:

多步骤 JSON 基础方法: (代码示例省略)

smolagents CodeAgent: (代码示例省略)

smolagents CodeAgent 支持单个代码块处理多步骤操作,减少了大型语言模型()的调用次数,同时简化了代理开发。它提供了对部署在AWS服务上的代理逻辑的完全控制。

可扩展架构: 通过在AWS上部署应用程序,可利用其安全特性和自动扩展功能,满足组织的安全要求并保持合规性。使用 Amazon ECS 和 Fargate 运行容器化工作负载,有助于实现可靠运营并通过自动化资源扩展来优化成本。

接下来,我们将探讨如何实现这一解决方案。

先决条件: 在部署此解决方案之前,您需要满足以下条件:

  • 具有适当权限的AWS账户,以便创建IAM角色、Amazon ECS集群和Amazon OpenSearch Service域名。
  • 已安装并配置AWS CLI 2.0或更高版本。
  • 需要Python 3.10或更高版本来运行部署脚本。
  • 已安装并运行Docker(生产环境所需,以提供安全的代码执行沙箱)。
  • 您的AWS区域中可访问Amazon Bedrock、Amazon SageMaker AI和Amazon OpenSearch Service,并具有适当的IAM权限来创建和管理相关资源。

运行以下命令安装所需的Python包: (命令示例省略)

配置环境变量: 在部署基础设施之前,请为您的AWS区域和资源名称设置所需的环境变量。

验证变量是否已正确设置: (验证命令省略)

设置AWS基础设施: 首先使用 Smolagents_SageMaker_Bedrock_Opensearch.py 中的 SampleAWSInfrastructureManager 类创建基本的AWS基础设施组件。

自动部署完整基础设施: 对于AWS基础设施组件的自动部署,可使用增强的 main 函数。

创建单独的AWS组件(替代方法): 如果您倾向于逐个创建组件,可以设置OpenSearch Service域名进行基于向量的知识检索,并设置Amazon ECS集群进行容器化部署。

两种方法都会在完整的AWS基础设施部署(enhanced_main 中的选项1)中自动创建OpenSearch Service域名和Amazon ECS集群。如果您已部署完整基础设施,则可直接跳至“部署 Amazon SageMaker AI 端点”部分。

部署 Amazon SageMaker AI 端点: 将 BioM-ELECTRA-Large-SQuAD2 模型部署到Amazon SageMaker AI,以处理专业医疗查询。提供了自动方法(通过增强的 main 函数)和手动方法(通过Amazon SageMaker AI端点)进行部署。

使用增强版 main(自动方法)进行部署: (代码示例省略)

使用手动方法部署 SageMaker AI 端点: (代码示例省略)

标签