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

SageMaker MLOps 项目演练

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

先决条件

要完成本演练,您需要:

步骤 1:创建项目

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

创建 SageMaker MLOps 项目
  1. 登录 Studio。有关更多信息,请参阅 加入 Amazon SageMaker 域

  2. 在 Studio 侧边栏中,选择主页图标 ( )。

  3. 从菜单中选择部署,然后选择项目

  4. 选择创建项目

    此时将显示创建项目选项卡。

  5. 如果尚未选择,请选择 SageMaker 模板,然后选择用于模型构建、训练和部署的 MLOps 模板

  6. 有关项目详细信息,请输入项目名称和描述。

当项目显示在项目列表中且状态创建已完成时,请继续下一步。

重要

自 2022 年 7 月 25 日起,我们需要其他角色才能使用项目模板。如果看到错误消息 CodePipeline is not authorized to perform AssumeRole on role arn:aws:iam::xxx:role/service-role/AmazonSageMakerServiceCatalogProductsCodePipelineRole,请参阅使用项目时所需的 SageMaker Studio 权限的步骤 5-6,获取所需角色的完整列表以及有关如何创建这些角色的说明。

步骤 2:克隆代码存储库

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

克隆代码存储库
  1. 在 Studio 侧边栏中,选择主页图标 ( )。

  2. 从菜单中选择部署,然后选择项目

  3. 选择您在上一步中创建的项目,打开项目的项目选项卡。

  4. 在项目选项卡中,选择存储库,然后在以 modelbuild 结尾的存储库的本地路径列中,选择克隆存储库...

  5. 在随后显示的对话框中,接受默认设置,然后选择克隆存储库

    克隆存储库完成后,本地路径将显示在本地路径列中。选择在 Studio 中打开包含存储库代码的本地文件夹的路径。

第 3 步:修改代码

现在,对构建模型的管道代码进行更改,并签入该更改以启动新的管道运行。管道运行注册了一个新的模型版本。

更改代码
  1. 在 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 中暂存、提交和推送更改。此外,在摘要字段中输入摘要,在描述字段中输入可选描述。有关在 Studio 中使用 Git 的信息,请参阅在 SageMaker Studio 中克隆 Git 存储库

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

步骤 4:批准模型

现在批准上一步创建的新模型版本,开始将模型版本部署到 SageMaker 端点。

批准模型版本
  1. 在 Studio 侧边栏中,选择主页图标 ( )。

  2. 从菜单中选择部署,然后选择项目

  3. 选择第一步创建的项目名称,打开项目的项目选项卡。

  4. 在项目选项卡中,选择模型组,然后双击出现的模型组的名称。

    随即显示模型组选项卡。

  5. 在模型组选项卡中,双击版本 1。随即打开版本 1 选项卡。选择更新状态

  6. 在模型更新模型版本状态对话框的状态下拉列表中,选择批准,然后选择更新状态

    批准模型版本会导致 MLOps 系统将模型部署到暂存阶段。要查看端点,请在项目选项卡上选择端点选项卡。

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

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

注意

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

将模型版本部署到生产环境
  1. https://console.aws.amazon.com/codepipeline/ 登录 CodePipeline 控制台

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

  3. DeployStaging 阶段,选择审核

  4. 审核对话框中,选择批准

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

步骤 6:清理资源

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

注意

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

  1. 在 Studio 侧边栏中,选择主页图标 ( )。

  2. 从菜单中选择部署,然后选择项目

  3. 从下拉列表中选择目标项目。如果未看到您的项目,请键入项目名称并应用筛选条件来查找项目。

  4. 您可以通过以下方式之一删除 Studio 项目:
    1. 您可以从项目列表中删除该项目。

      右键单击目标项目,然后从下拉列表中选择删除

      注意

      Studio 版本 3.17.1 或更高版本支持此功能。有关更多信息,请参阅 关闭并更新 SageMaker Studio

    2. 您可以从项目详细信息部分删除项目。
      1. 找到项目后,双击该项目即可在主面板中查看其详细信息。

      2. 操作菜单中选择删除

  5. 删除项目窗口中选择删除,确认您的选择。

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

  6. 删除项目创建的 Amazon CloudFormation 堆栈。有两个堆栈,一个用于暂存,一个用于生产。堆栈的名称分别为 sagemaker-projectname-project-id-deploy-stagingsagemaker-projectname-project-id-deploy-prod,其中 projectname 是项目名称,project-id 是项目 ID。

    有关如何删除 Amazon CloudFormation 堆栈的信息,请参阅《Amazon CloudFormation User Guide》中的在 Amazon CloudFormation 控制台上删除堆栈

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