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

使用第三方 Git 存储库的 SageMaker MLOps 项目演练

本演练使用模板用于使用 CodePipeline 通过第三方 Git 存储库进行模型构建、训练和部署的 MLOps 模板演示如何使用 MLOps 项目创建 CI/CD 系统来构建、训练和部署模型。

先决条件

要完成本演练,您需要:

步骤 1:设置 GitHub 连接

在此步骤中,您将使用 AWS CodeStar 连接来连接到 GitHub 存储库。SageMaker 项目使用此连接来访问您的源代码存储库。

要设置 GitHub 连接,请执行以下操作:
  1. https://console.aws.amazon.com/codepipeline/ 登录 CodePipeline 控制台

  2. 在导航窗格的设置下,选择连接

  3. 选择创建连接

  4. 对于选择提供商,请选择 GitHub

  5. 对于名称,请输入一个名称。

  6. 选择连接到 GitHub

  7. 如果之前未安装 Amazon Connector for GitHub 应用程序,请选择安装新应用程序

    这将显示您有权访问的所有 GitHub 个人账户和组织的列表。

  8. 选择要在其中建立连接的账户,以便与 SageMaker 项目和 GitHub 存储库一起使用。

  9. 选择配置

  10. 您可以选择特定存储库,也可以选择所有存储库

  11. 选择保存。安装应用程序后,您将重定向到连接到 GitHub 页面,并且会自动填充安装 ID。

  12. 选择连接

  13. 向此 AWS CodeStar 连接添加一个键为 sagemaker 且值为 true 的标签。

  14. 复制连接 ARN 进行保存以备后用。在项目创建步骤中使用 ARN 作为参数。

步骤 2:创建项目

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

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

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

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

  4. 选择创建项目

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

  5. 对于 SageMaker 项目模板,请选择用于通过第三方 Git 存储库进行模型构建、训练和部署的 MLOps 模板

  6. 选择选择项目模板

  7. ModelBuild CodeRepository Info 下,提供以下参数:

    • 对于 URL,请以 https://git-url.git 格式输入模型构建代码的 Git 存储库 URL。

    • 对于分支,请输入 Git 存储库中要用于管道活动的分支。

    • 对于完整存储库名称,请以用户名/存储库名称组织/存储库名称的格式输入 Git 存储库名称。

    • 对于 CodeStar 连接 ARN,请输入您在步骤 1 中创建的 AWS CodeStar 连接的 ARN。

    • 通过示例代码切换开关,您可以选择是否在存储库中填充模型构建种子代码。在此演示中,我们可以将其保持打开状态。

  8. ModelDeploy CodeRepository Info 下,提供以下参数:

    • 对于 URL,请以 https://git-url.git 格式输入模型部署代码的 Git 存储库 URL。

    • 对于分支,请输入 Git 存储库中要用于管道活动的分支。

    • 对于完整存储库名称,请以用户名/存储库名称组织/存储库名称的格式输入 Git 存储库名称。

    • 对于 CodeStar 连接 ARN,请输入您在步骤 1 中创建的 AWS CodeStar 连接的 ARN。

    • 通过示例代码切换开关,您可以选择是否在存储库中填充模型部署种子代码。在此演示中,我们可以将其保持打开状态。

  9. 选择创建项目

该项目将显示在项目列表中,状态已创建

第 3 步:修改代码

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

更改代码
  1. 在您的模型构建 GitHub 存储库中,导航到 pipelines/abalone 文件夹。双击 pipeline.py 打开代码文件。

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

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

    打开文件进行编辑,将 ml.m5.xlarge 更改为 ml.m5.large,然后提交。

在您提交代码更改后,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. 选择项目以在主面板中查看其详细信息。

  5. 操作菜单中选择删除

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

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

  7. 删除项目创建的 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 控制台上删除堆栈

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