本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 AWS Step Functions 创建自定义 Docker 容器镜像并将其用于模型训练 SageMaker
由 Julia Bluszcz (AWS)、Neha Sharma ()、Aubrey Oosthuizen (AWS)、Mohan Gowda Purushothama () 和 Mateusz Zaremba (AWS) 创作 AWS AWS
环境:生产 | 技术:机器学习和人工智能; DevOps | AWS服务:亚马逊ECR;亚马逊;Ste AWS p F SageMaker unctions |
Summary
此模式展示了如何在 Step Functions 中为亚马逊创建 Docker 容器镜像 SageMaker并将其用于 AWSStep Fun ctions 中的训练模型。通过将自定义算法打包到容器中,您几乎可以在 SageMaker 环境中运行任何代码,无论编程语言、框架或依赖关系如何。
在提供的示例SageMaker 笔记本中,自定义 Docker 容器镜像存储在亚马逊弹性容器注册表 (AmazonECR) 中。然后,Step Functions 使用存储在亚马逊中的容器为ECR其运行 Python 处理脚本 SageMaker。然后,容器将模型导出到亚马逊简单存储服务 (Amazon S3) Semp le S3。
先决条件和限制
先决条件
一个活跃的AWS账户
SageMaker具有 Amazon S3 权限的AWS身份和访问管理 (IAM) 角色
基本熟悉 Python
熟悉亚马逊 Python SageMaker SDK
熟悉AWS命令行界面 () AWS CLI
熟悉 Python (Boto3) AWS SDK
熟悉亚马逊 ECR
熟悉 Docker
产品版本
AWSStep Functions 数据科学SDK版本 2.3.0
亚马逊 SageMaker Python SDK 版本 2.78.0
架构
下图显示了在 Step Functions 中为其创建 Docker 容器镜像 SageMaker,然后将其用于训练模型的示例工作流程:
![创建 Docker 容器镜像 SageMaker 以用作 Step Functions 训练模型的工作流程。](images/pattern-img/7857d57f-3077-4b06-8971-fb5846387693/images/37755e38-0bc4-4dd0-90c7-135d95b00053.png)
图表显示了以下工作流:
数据科学家或 DevOps 工程师使用 Amazon SageMaker 笔记本创建自定义 Docker 容器镜像。
数据科学家或 DevOps 工程师将 Docker 容器映像存储在ECR私有注册表中的 Amazon 私有存储库中。
数据科学家或 DevOps 工程师使用 Docker 容器在 Step Functions 工作流程中运行 Python SageMaker 处理作业。
自动化和扩缩
此模式中的示例 SageMaker 笔记本使用ml.m5.xlarge
笔记本实例类型。您可以更改实例类型,以适合您的用例。有关 SageMaker 笔记本实例类型的更多信息,请参阅 Amazon SageMaker 定价
工具
Amazon Elastic Container Registry (AmazonECR) 是一项安全、可扩展且可靠的托管容器镜像注册服务。
Amazon SageMaker 是一项托管机器学习 (ML) 服务,可帮助您构建和训练机器学习模型,然后将其部署到生产就绪的托管环境中。
Amaz SageMaker on Python SDK
是一个开源库,用于在上 SageMaker训练和部署机器学习模型。 AWSSt ep Functions 是一项无服务器编排服务,可帮助您组合 Lam AWS bda 函数和其他AWS服务来构建业务关键型应用程序。
AWSStep Functions 数据科学 Python SDK
是一个开源库,可帮助您创建处理和发布机器学习模型的 Step Functions 工作流程。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
设置 Amazon ECR 并创建新的私有注册表。 | 如果您还没有,请ECR按照《亚马逊ECR用户指南》中的 “使用亚马逊进行设置” ECR 中的说明设置亚马逊。每个AWS账户都有一个默认的私人 Amazon ECR 注册表。 | DevOps 工程师 |
创建 Amazon ECR 私有存储库。 | 按照《Amazon ECR 用户指南》中创建私有存储库中的说明进行操作。 注意:您创建的存储库是存储自定义 Docker 容器映像的位置。 | DevOps 工程师 |
创建一个 Dockerfile,其中包含运行 SageMaker 处理作业所需的规范。 | 通过配置 Dockerfile 来创建包含运行 SageMaker 处理作业所需的规格的 Dockerfile。有关说明,请参阅《Amazon SageMaker 开发者指南》中的调整自己的训练容器。 有关 Dockerfiles 的更多信息,请参阅 Doc ker 文档中的 DockerFile 参考 用于创建 DockerFile 的 Jupyter 笔记本代码单元格示例 单元格 1
单元格 2
| DevOps 工程师 |
构建 Docker 容器镜像并将其推送到亚马逊ECR。 |
有关更多信息,请参阅 “在上构建自己的算法容器” 中的 “构建和注册 用于构建和注册 Docker 映像的 Jupyter 笔记本代码单元格示例 重要提示:运行以下单元格之前,请确保已创建一个 Dockerfile 并将其存储在名为 单元格 1
单元格 2
单元格 3
单元格 4
注意:您必须对私有注册表的 Docker 客户端进行身份验证,这样才能使用 | DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
创建包含自定义处理和模型训练逻辑的 Python 脚本。 | 编写将在数据处理脚本中运行的自定义处理逻辑。然后,将其另存为名为 有关更多信息,请参阅在开启 SageMaker 脚本模式的情况下自带模型 含自定义处理和模型训练逻辑的 Python 脚本示例
| 数据科学家 |
创建一个 Step Functions 工作流程,其中包含您的 SageMaker 处理作业。 | 安装并导入 AWSStep Functions 数据科学 重要:请确保您已在AWS账户中为 St ep Functions 创建了IAM执行角色 要上传至 Amazon S3 的环境设置和自定义训练脚本示例
使用自定义 Amazon ECR 图片和 Python 脚本的 SageMaker 处理步骤定义示例 注意:请务必使用
运行处理作业的 Step Functions 工作 SageMaker 流程示例 注意:此示例工作流仅包括 SageMaker 处理作业步骤,不包括完整的 Step Functions 工作流程。有关完整的工作流程示例,请参阅 AWS Step Functions 数据科学SDK文档 SageMaker中的示例笔记本
| 数据科学家 |