目 录CONTENT

文章目录

使用基于Amazon S3模板的Amazon SageMaker AI项目简化ModelOps

Administrator
2026-01-31 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/simplify-modelops-with-amazon-sagemaker-ai-projects-using-amazon-s3-based-templates/

原文作者:Christian Kamwangala, Paolo Di Francesco, and Sandeep Raveesh-Babu


管理ModelOps工作流可能既复杂又耗时。如果你曾为数据科学团队设置项目模板而苦恼,你就知道之前使用 AWS Service Catalog 的方法需要配置组合(portfolios)、产品,并管理复杂的权限,这在团队开始构建机器学习 (ML) 流水线之前就增加了显著的管理开销。

Amazon SageMaker AI Projects 现在提供了一条更简单的路径:基于 Amazon S3 的模板。借助此新功能,你可以将 AWS CloudFormation 模板 直接存储在 Amazon Simple Storage Service (Amazon S3) 中,并使用熟悉的 S3 功能(如 版本控制生命周期策略S3 跨区域复制)来管理其整个生命周期。这意味着你可以以显著更少的开销,为数据科学团队提供安全、版本控制的自动化项目模板。

本文将探讨如何使用基于 S3 的模板来简化 ModelOps 工作流,对比使用 Service Catalog 方法的关键优势,并演示如何创建一个与 GitHub 和 GitHub Actions 集成的自定义 ModelOps 解决方案,从而为团队提供一键式配置即可获得完全可用的 ML 环境。

什么是 Amazon SageMaker AI Projects?

团队可以使用 Amazon SageMaker AI Projects 来创建、共享和管理完全配置好的 ModelOps 项目。在此结构化环境中,你可以组织代码、数据和实验,从而促进协作和可再现性。

每个项目都可以包含持续集成和交付 (CI/CD) 流水线、模型注册表、部署配置以及其他 ModelOps 组件,所有这些都在 SageMaker AI 内部进行管理。可重用模板通过对数据处理、模型开发、训练、部署和监控的最佳实践进行编码,帮助标准化 ModelOps 实践。以下是可以使用 SageMaker AI Projects 进行编排的一些热门用例:

  • 自动化 ML 工作流:设置 CI/CD 工作流,自动构建、测试和部署 ML 模型。
  • 执行治理和合规性:帮助项目遵循组织在安全、网络和资源标记方面的标准。一致的标记实践有助于在团队和项目之间进行准确的成本分配,同时简化安全审计。
  • 加速价值实现时间:提供预配置的环境,让数据科学家专注于 ML 问题,而不是基础设施。
  • 改进协作:建立一致的项目结构,以便于代码共享和重用。

下图展示了 SageMaker AI Projects 如何为管理员以及 ML 工程师和数据科学家提供不同的工作流。管理员创建和管理 ML 用例模板,而 ML 工程师和数据科学家则以自助服务方式使用批准的模板。

新特性:Amazon SageMaker AI 基于 S3 的项目模板

SageMaker AI Projects 的最新更新引入了管理员可以直接在 Amazon S3 中存储和管理 ML 项目模板的能力。基于 S3 的模板是先前必需的 Service Catalog 更加简单且灵活的替代方案。通过此增强功能,AWS CloudFormation 模板可以进行版本控制、安全保护,并使用 S3 提供的丰富访问控制、生命周期管理和复制功能在团队间高效共享。现在,数据科学团队可以直接在 Amazon SageMaker Studio 中从这些基于 S3 的模板启动新的 ModelOps 项目。这有助于组织在规模上保持与其内部标准的*一致性*和*合规性*。

当您将模板存储在 Amazon S3 中时,它们在支持 SageMaker AI Projects 的所有 AWS 区域中都可用。要跨 AWS 账户共享模板,您可以使用 S3 存储桶策略和跨账户访问控制。启用 S3 中的版本控制功能,可以提供模板更改的完整历史记录,便于审计和回滚,同时也为项目模板的演变提供了*不可变*的记录。如果您的团队目前使用基于 Service Catalog 的模板,基于 S3 的方法提供了一条直接的迁移路径。在从 Service Catalog 迁移到 S3 时,主要考虑因素包括:配置新的 SageMaker 角色 以替换特定于 Service Catalog 的角色、相应地更新模板引用、以上传具有适当标记的模板到 S3,以及配置域级别标记以指向模板存储桶位置。对于使用集中式模板存储库的组织,必须建立跨账户 S3 存储桶策略,以允许来自使用者账户的模板发现,并且每个使用者账户的 SageMaker 域都需要标记,以引用中央存储桶。基于 S3 的模板和 Service Catalog 模板都显示在 SageMaker AI Projects 创建界面的单独选项卡中,因此组织可以在迁移过程中逐步引入 S3 模板,而不会中断现有工作流。

基于 S3 的 ModelOps 项目支持您为组织的 ML 用例创建的自定义 CloudFormation 模板。AWS 提供的模板(例如内置的 ModelOps 项目模板)仍然只能通过 Service Catalog 获得。您的自定义模板必须是有效的 YAML 格式的 CloudFormation 文件。要开始将基于 S3 的模板与 SageMaker AI Projects 结合使用,您的 SageMaker 域(ML 团队的协作工作区)必须包含标记 sagemaker:projectS3TemplatesLocation,其值为 s3://<bucket-name>/<prefix>/。上传到 S3 的每个模板文件都必须标记为 sagemaker:studio-visibility=true 才能出现在 SageMaker AI Studio Projects 控制台中。您需要向 SageMaker 执行角色授予对 S3 存储桶策略 的读取权限,并在 S3 存储桶上启用 CORS 配置,以允许 SageMaker AI Projects 访问 S3 模板。

下图说明了基于 S3 的模板如何与 SageMaker AI Projects 集成,以实现可扩展的 ModelOps 工作流。该设置在两个独立的工作流中运行——管理员进行一次性配置,以及 ML 工程师/数据科学家启动项目。当 ML 工程师/数据科学家在 SageMaker AI 中启动新的 ModelOps 项目时,SageMaker AI 会启动一个 AWS CloudFormation 堆栈来配置模板中定义的资源,流程完成后,您可以在项目中访问所有指定的资源和配置的 CI/CD 流水线。

可以通过 SageMaker Studio 控制台管理已启动项目的生命周期,用户可以在其中导航到 S3 模板,选择一个项目,并使用“操作”下拉菜单来更新或删除项目。项目更新可用于修改现有模板参数或模板 URL 本身,从而触发 CloudFormation 堆栈更新,这些更新在执行前会经过验证;而项目删除则会移除所有相关的 CloudFormation 资源和配置。这些生命周期操作也可以通过 SageMaker API 以编程方式执行。

为了展示基于 S3 模板的强大功能,让我们来看一个实际场景:管理员团队需要为数据科学家提供一个标准化的 ModelOps 工作流,该工作流与其现有的 GitHub 存储库集成。

用例:面向企业团队的 GitHub 集成 MLOps 模板

许多组织将 GitHub 作为其主要的源代码控制系统,并希望在 CI/CD 中使用 GitHub Actions,同时在 SageMaker 中用于 ML 工作负载。然而,设置此集成需要配置多个 AWS 服务、建立安全连接以及实施适当的批准工作流——如果手动完成,这是一个复杂且耗时的任务。我们的 S3 模板通过配置一个完整的 ModelOps 流水线来解决此挑战,该流水线包括 CI/CD 编排、SageMaker Pipelines 组件和事件驱动的自动化。下图说明了此 ModelOps 模板配置的端到端工作流。

此带 S3 模板的 ModelOps 示例项目实现了完全自动化和受治理的 ModelOps 工作流。每个 ModelOps 项目都包含一个预先配置了 Actions 工作流和安全 AWS CodeConnections 的 GitHub 存储库,以实现无缝集成。代码提交后,会触发 SageMaker 管道 来编排一个标准化的过程,涉及数据预处理、模型训练、评估和注册。对于部署,系统支持在模型批准后自动进入分阶段环境,具有强大的验证检查、提升模型到生产环境的手动批准关卡,以及使用 AWS LambdaAmazon EventBridge 的安全、事件驱动的架构。在整个工作流中,治理由用于跟踪模型版本和谱系的 SageMaker 模型注册表、明确定义的批准步骤、使用 AWS Secrets Manager 的安全凭证管理,以及所有资源的*一致标记和命名标准*提供支持。

当数据科学家从 SageMaker Studio 选择此模板时,他们通过一个简化的流程配置了一个完全可用的 ModelOps 环境。他们使用 Studio 集成开发环境 (IDE) 中的内置 Git 功能将 ML 代码推送到 GitHub,管道会自动处理模型的训练、评估和通过分阶段环境向生产环境的渐进式部署——所有这些都保持了企业安全和合规性要求。完整的设置说明以及此 ModelOps 模板的代码可在我们的 GitHub 存储库中找到。

遵循存储库中的说明后,您可以在 SageMaker AI Studio 控制台中 SageMaker AI Projects 部分找到 mlops-github-actions 模板,方法是选择导航窗格中的 Projects,选择 Organization templates 选项卡,然后选择 Next,如下面的图像所示。

要启动 ModelOps 项目,您必须输入项目特定的详细信息,包括 Role ARN 字段。此字段应包含设置过程中创建的 AmazonSageMakerProjectsLaunchRole ARN,如下面的图像所示。

作为安全最佳实践,请使用 AmazonSageMakerProjectsLaunchRole 的 Amazon 资源名称 (ARN),而不是您的 SageMaker 执行角色。

AmazonSageMakerProjectsLaunchRole 是一个配置角色,在 ModelOps 项目创建过程中充当中间人。此角色包含创建项目基础设施所需的所有权限,包括 AWS Identity and Access Management (IAM) 角色、S3 存储桶、AWS CodePipeline 以及其他 AWS 资源。通过使用此专用的启动角色,ML 工程师和数据科学家可以在没有其账户中广泛权限的情况下创建 ModelOps 项目。他们个人的 SageMaker 执行角色范围保持有限——他们只需要具有承担启动角色本身的权限。

这种职责分离对于维护安全性非常重要。如果没有启动角色,每位 ML 实践者都需要广泛的 IAM 权限才能直接创建代码管道、AWS CodeBuild 项目、S3 存储桶和其他 AWS 资源。有了启动角色,他们只需要具有承担预配置角色的权限即可代表他们处理配置,从而使他们的个人权限保持*最小化且安全*。

输入所需的项目配置详细信息,然后选择 Next。然后,模板将创建两个自动化的 ModelOps 工作流——一个用于模型构建,一个用于模型部署——它们协同工作,为您的 ML 模型提供 CI/CD。完整的 ModelOps 示例可以在 mlops-github-actions 存储库中找到。

清理

部署后,您将产生已部署资源的费用。如果您不打算继续使用该设置,请删除 ModelOps 项目资源以避免不必要的费用。

要销毁项目,请打开 SageMaker Studio,在导航窗格中选择 More,然后选择 Projects。选择要删除的项目,选择项目列表右上角上方的垂直省略号,然后选择 Delete。审查 Delete project 对话框中的信息,然后选择 Yes, delete the project 以确认。删除后,请验证您的项目不再出现在项目列表中。

除了删除项目(这将移除并解除配置 SageMaker AI 项目)之外,如果不再需要,您还需要手动删除以下组件:Git 存储库、管道、模型组和端点。

结论

Amazon SageMaker AI Projects 的 Amazon S3 模板配置正在改变组织标准化 ML 操作的方式。正如本文所示,单个 AWS CloudFormation 模板可以配置一个完整的 CI/CD 工作流,集成您的 Git 存储库(GitHub、Bitbucket 或 GitLab)、SageMaker Pipelines 和 SageMaker 模型注册表——为数据科学团队提供自动化工作流,同时保持企业治理和安全控制。有关 SageMaker AI Projects 和基于 S3 的模板的更多信息,请参阅 使用 SageMaker 项目进行 ModelOps 自动化

通过在 SageMaker AI Projects 中使用基于 S3 的模板,管理员可以定义和治理 ML 基础设施,而 ML 工程师和数据科学家可以通过自助服务配置获得预配置的 ML 环境。请浏览 GitHub 示例存储库,了解热门的 ModelOps 模板,并通过遵循提供的说明立即开始使用。您也可以创建自定义模板,以满足您组织的特定要求、安全策略和首选 ML 框架。


关于作者

Christian Kamwangala 是 AWS 的一位 AI/ML 和生成式 AI 专家解决方案架构师,位于法国巴黎。他与企业客户合作,利用全面的 AWS 机器学习技术栈架构、优化和部署生产级 AI 解决方案。Christian 专注于推理优化技术,这些技术旨在平衡大规模部署的性能、成本和延迟要求。在业余时间,Christian 喜欢探索大自然并与家人朋友共度时光。

Sandeep Raveesh 是 AWS 的生成式 AI 专家解决方案架构师。他通过模型训练、生成式 AI 应用(如智能体)以及扩展生成式 AI 用例,协助客户完成其 AIOps 之旅。他还专注于上市策略,帮助 AWS 构建和调整产品以解决生成式 AI 领域的行业挑战。您可以通过 LinkedIn 与 Sandeep 联系,了解生成式 AI 解决方案。

Paolo Di Francesco 是亚马逊云科技 (AWS) 的高级解决方案架构师。他拥有电信工程博士学位,并在软件工程方面拥有经验。他对机器学习充满热情,目前正专注于利用他的经验,在有关 MLOps 的讨论中帮助客户在 AWS 上实现目标。工作之余,他喜欢踢足球和阅读。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区