SageMaker MLOps 项目演练 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SageMaker MLOps 项目演练

本演练演示如何使用 MLOps 项目创建 CI/CD 系统来构建、训练和部署模型。

先决条件

要完成本演练,您需要:

步骤 1:创建项目

在此步骤中,您使用SageMaker提供的项目模板构建、训练和部署模型来创建 SageMaker MLOps 项目。

创建 SageMaker MLOps 项目

  1. 登录到 Studio。有关更多信息,请参阅注册 Amazon SageMaker Studio

  2. 选择 Components and registries (组件和注册表),然后在下拉列表中选择 Projects (项目)。

  3. 选择 Create project (创建项目)

    此时将显示 Create project (创建项目) 选项卡。

  4. 对于 SageMaker 项目模板),选择 Organization templates (组织模板),然后为模型构建、训练和部署选择 MLOps 模板。

  5. 对于 Project details (项目详细信息),输入项目的名称和描述。Create 项目

当项目显示在 Projects (项目) 列表中且 Status (状态) 为 Created (已创建) 时,请继续执行下一步。

步骤 2:克隆代码存储库

创建项目后,将在项目中创建两个CodeCommit存储库。其中一个存储库包含用于构建和训练模型的代码,另一个存储库包含用于部署模型的代码。在此步骤中,您将存储库克隆到SageMaker包含代码的本地 ,以生成模型并将其训练到本地 SageMaker Studio 环境,以便使用代码。

克隆代码存储库

  1. 选择 Components and registries (组件和注册表),然后在下拉列表中选择 Projects (项目)。

  2. 查找您在上一步中创建的项目的名称,并双击它以打开项目的项目选项卡。

  3. 在项目选项卡中,选择存储库,然后在以 modelbuild 结尾的存储库的 Local path (本地路径) 列中,选择 clone repo... (克隆存储库...)。

  4. 在显示的对话框中,接受默认值,然后选择 Clone repository (克隆存储库)。

    存储库克隆完成后,本地路径将显示在 Local path (本地路径) 列中。单击 路径以在 SageMaker Studio 中打开包含存储库代码的本地文件夹。

步骤 3:在代码中进行更改

现在,对构建模型的管道代码进行更改,并签入更改以触发新管道运行。管道运行注册新的模型版本。

进行代码更改

  1. 在 SageMaker Studio 中,选择文件浏览器图标 ( ),然后导航到 pipelines/abalone 文件夹。双击pipeline.py以打开代码文件。

  2. pipeline.py 文件中,找到设置训练实例类型的行。

    training_instance_type = ParameterString( name="TrainingInstanceType", default_value="ml.m5.xlarge"

    ml.m5.xlarge 更改为 ml.m5.large,然后键入 Ctrl+S 以保存更改。

  3. 选择 Git 图标 ( )。在 中暂存、提交和推送更改pipeline.py。有关在 SageMaker Studio 中使用 Git 的信息,请参阅在 SageMaker Studio 中克隆 Git 存储库

推送代码更改后MLOps 系统触发创建新模型版本的管道运行。在下一步中,您批准新模型版本以将其部署到生产环境中。

步骤 4:批准模型

现在,您批准在上一步中创建的新模型版本,以触发将模型版本部署到 SageMaker 终端节点。

批准模型版本

  1. 选择 Components and registries (组件和注册表),然后在下拉列表中选择 Projects (项目)。

  2. 查找您在第一步中创建的项目的名称,并双击它以打开项目的项目选项卡。

  3. 在项目选项卡中,选择 Model groups (模型组),然后双击显示的模型组的名称。

    此时将显示模型组选项卡。

  4. 在模型组选项卡中,双击版本 2。此时将打开 Version 2 (版本 2) 选项卡。选择 Update status (更新状态)。

  5. 在模型 Update model version status (更新模型版本状态) 对话框中的 Status (状态) 下拉列表中,选择 Approve (批准),然后选择 Update status (更新状态)。

    批准模型版本会导致 MLOps 系统将模型部署到暂存。要查看终端节点,请选择项目选项卡上的 Endpoints (终端节点) 选项卡。

(可选)步骤 5:将模型版本部署到生产环境

现在,您可以将模型版本部署到生产环境。

注意

要完成此步骤,您需要是 SageMaker Studio 域中的管理员。如果您不是管理员,请跳过此步骤。

将模型版本部署到生产环境

  1. 通过以下网址登录 CodePipeline 控制台: https://console.amazonaws.cn/codepipeline/

  2. 选择 Pipelines (管道),然后选择名为 sagemaker- 的管道projectname-projectid-modeldeploy,其中 projectname 是项目的名称,而 projectid 是项目的 ID。

  3. DeployStaging 阶段中,选择 Review (审核)。

  4. Review 对话框中,选择 Approve。

    批准 DeployStaging 阶段会导致 MLOps 系统将模型部署到生产环境中。要查看终端节点,请在 Studio 中的项目选项卡上选择 SageMaker Endpoints (终端节点) 选项卡。

步骤 6:清理资源

要停止产生费用,请清除本演练中创建的资源。为此,请完成以下步骤。

注意

要删除AWS CloudFormation堆栈和Amazon S3存储桶,您需要是 SageMaker Studio 中的管理员。如果您不是管理员,请要求管理员完成这些步骤。

  1. 从 SageMaker Studio 菜单中,选择 File (文件),选择 New (新建),然后选择 Notebook (笔记本)。

  2. Select Kernel 对话框中,选择 Python 3 (Data Science),然后选择 Select。

  3. 在笔记本中,在单元格中输入以下代码,然后运行单元格。将 MyProject 替换为您的项目的名称。

    import boto3 sm_client=boto3.client("sagemaker") sm_client.delete_project(ProjectName="MyProject")

    这将删除项目创建的 Service Catalog 预配置产品。这包括为项目创建的 CodeCommit、 CodePipeline和 CodeBuild 资源。

  4. 删除项目创建的AWS CloudFormation堆栈。有 2 个堆栈,一个用于暂存,另一个用于生产。堆栈的名称是 sagemaker-projectname-project-id-deploy-stagingsagemaker-projectname-project-id-deploy-prod,其中 projectname 是项目的名称,而 project-id 是项目的 ID。

    有关如何删除AWS CloudFormation堆栈的信息,请参阅 AWS CloudFormation 用户指南中的在 控制台AWS CloudFormation上删除堆栈。

  5. 删除项目创建的 Amazon S3 存储桶。存储桶的名称是 sagemaker-project-project-id其中,project-id 是项目的 ID。