概览

Machine Learning Operations(MLOps)工作负载编排工具简化了机器学习模型的部署,并实施了可扩展性、可靠性和效率方面的最佳实践。此 AWS 解决方案是一个可扩展的框架,为管理 AWS ML 和第三方服务的机器学习管道提供了一个标准接口。
该解决方案包括两个 AWS CloudFormation 模板。此模板支持模型训练、上传预训练模型(也称为自带模型或 BYOM)、管道编排配置和管道运行监控。团队可以通过实施此解决方案大规模重复成功流程,从而提高其敏捷性和效率。
优势

通过 API 调用或 Amazon S3 存储桶启动预配置的管道。
使用 Amazon SageMaker BYOM 自动监控模型,并提供具有偏差检测功能的无服务器推理端点。
使用 Amazon SageMaker 模型总览板查看、搜索和浏览所有 Amazon SageMaker 资源,包括模型、端点、模型卡和批量转换作业。
技术详情

您可以使用实施指南和随附的 AWS CloudFormation 模板自动部署该架构。为支持多种使用案例和业务需求,此解决方案提供了两种 AWS CloudFormation 模板:
- 使用单账户模板在同一个 AWS 账户中部署所有解决方案的管道。此选项适合实验、开发和/或小规模生产工作负载。
- 使用多账户模板在不同 AWS 账户中预置多个环境(例如,开发、暂存和生产),这样可以改善治理并增强机器学习管道部署的安全性和控制,产生安全的实验和更快地创新,使生产数据和工作负载安全且可帮助确保业务连续性。
-
选项 1 - 单账户部署
-
选项 2 - 多账户部署
-
选项 1 - 单账户部署
-
第 1 步
此编排工具可以是 DevOps 工程师或其他类型的用户,会在其 AWS 账户中启动此解决方案并选择他们的首选选项。例如,可以使用 Amazon SageMaker 模型注册表或现有的 Amazon Simple Storage Service(Amazon S3)存储桶。
步骤 2
此编排工具将所需的资产(例如,模型构件、培训数据或自定义算法 zip 文件)上传到 Amazon S3 资产存储桶中。如果使用 SageMaker 模型注册表,则编排工具(或自动化管道)必须通过模型注册表注册该模型。
第 3a 步
单账户 AWS CodePipeline 实例通过将 API 调用发送到 Amazon API Gateway 或将 mlops-config.json 文件上传到配置 Amazon S3 存储桶。
第 3b 步
根据管道类型,AWS Lambda 编排工具函数使用 API 调用或 mlops-config.json 文件的主体打包目标 CloudFormation 模板及其参数和配置。然后,该编排工具将此打包模板和配置用作 CodePipeline 实例的源阶段。
第 4 步
DeployPipeline 阶段获取打包的 CloudFormation 模板及其参数或配置,并将目标管道部署到相同账户中。
第 5 步
预置了目标管道之后,用户即可使用其功能。Amazon Simple Notification Service(Amazon SNS)通知发送到解决方案的启动参数中提供的电子邮件。 -
选项 2 - 多账户部署
-
第 1 步
编排工具(可以是拥有编排工具账户管理访问权限的 DevOps 工程师或其他用户)提供 AWS Organizations 信息(例如,开发、暂存和生产企业单元 ID 和账号)。
它们还指定所需的选项(可能包括使用 SageMaker 模型注册表,或提供现有的 Amazon S3 存储桶),然后在其 AWS 账户中启动解决方案。
步骤 2
编排工具将目标管道所需的资产(例如,模型构件、培训数据和/或自定义算法 zip 文件)上传到 编排工具 AWS 账户内的 Amazon S3 资产存储桶中。如果使用 SageMaker 模型注册表,则编排工具(或自动化管道)必须通过模型注册表注册该模型。
第 3a 步
多账户 CodePipeline 实例通过将 API 调用发送到 API Gateway 或将 mlops-config.json 文件上传到配置 Amazon S3 存储桶。第 3b 步
根据管道类型,Lambda 编排工具函数会打包目标
CloudFormation 模板及其参数和配置,使用的是 API 调用正文或 mlops-config.json 文件。然后,该编排工具将此打包模板和配置用作 CodePipeline 实例的源阶段。
第 4 步
DeployDev 阶段获取打包的 CloudFormation 模板及其参数或配置,并将目标管道部署到开发账户中。
第 5 步
在将目标管道预置到开发账户中之后,开发人员可以在该管道上迭代。第 6 步
完成开发后,编排工具(或另一个授权账户)手动批准 DeployStaging 操作移动到下一阶段,即 DeployStaging。
第 7 步
DeployStaging 阶段将目标管道使用暂存配置部署到暂存账户中。步骤 8
测试人员在部署的管道上执行不同的测试。步骤 9
管道通过了质量测试后,编排工具就可以批准 DeployProd 操作。步骤 10
DeployProd 阶段将目标管道(使用生产配置)部署到生产账户中。第 11 步
目标管道驻留在生产中。Amazon SNS 通知发送到解决方案的启动参数中提供的电子邮件。
相关内容

Cognizant 与 AWS 合作伙伴解决方案架构师和 AWS 解决方案库团队合作,在 MLOps 工作负载编排工具解决方案的基础上构建了其 MLOps 模型生命周期编排工具解决方案。