使用创建跟踪服务器 Amazon CLI - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用创建跟踪服务器 Amazon CLI

您可以使用创建跟踪服务器, Amazon CLI 以实现更精细的安全自定义。

先决条件

要使用创建跟踪服务器 Amazon CLI,必须具备以下条件:

  • 访问终端。这可能包括本地实例IDEs、Amazon EC2 实例或 Amazon CloudShell。

  • 访问开发环境。这可能包括 Studio IDEs 或 Studio Classic 中的本地或 Jupyter 笔记本环境。

  • 已配置的 Amazon CLI 安装。有关更多信息,请参阅配置 Amazon CLI

  • 具有适当权限的IAM角色。以下步骤要求您的环境具有iam:CreateRoleiam:CreatePolicyiam:AttachRolePolicy、和iam:ListPolicies权限。用于运行本用户指南中步骤的角色需要这些权限。本指南中的说明创建了一个用作MLflow跟踪服务器执行IAM角色的角色,以便它可以访问您的 Amazon S3 存储桶中的数据。此外,还会创建一项策略,为通过呼叫权限与跟踪服务器进行交互的用户MLflowSDK授予该IAM角色的权限MLflowAPIs。有关更多信息,请参阅修改角色权限策略(控制台)

    如果使用 SageMaker Studio 笔记本,请使用这些IAM权限更新您的 Studio 用户个人资料的服务角色。要更新服务角色,请导航到 SageMaker 控制台并选择您正在使用的域。然后,在域名下,选择您正在使用的用户配置文件。您将看到此处列出的服务角色。导航到IAM控制台,在 “角色” 下搜索服务角色,然后使用允许iam:CreateRoleiam:CreatePolicyiam:AttachRolePolicy、和iam:ListPolicies操作的策略更新您的角色。

设置 Amazon CLI 模型

在终端中按照以下命令行步骤设置 Amazon CLI 适用于 Amazon SageMaker 的MLflow。

  1. 安装更新版本的 Amazon CLI。有关更多信息,请参阅《Amazon CLI 用户指南》 Amazon CLI中的安装或更新到最新版本的。

  2. 使用以下命令验证 Amazon CLI 是否已安装:

    aws sagemaker help

    q退出提示音。

    有关问题排查帮助,请参阅解决常见的设置问题

设置MLflow基础架构

以下部分向您展示如何设置MLflow跟踪服务器以及跟踪服务器所需的 Amazon S3 存储桶和IAM角色。

创建 S3 存储桶

在您的终端中,使用以下命令创建通用的 Amazon S3 存储桶:

注意

用于您的项目存储的 Amazon S3 存储桶必须与您的跟踪服务器位于 Amazon Web Services 区域 同一个存储桶中。

bucket_name=bucket-name region=valid-region aws s3api create-bucket \ --bucket $bucket_name \ --region $region \ --create-bucket-configuration LocationConstraint=$region

该输出值应该类似于以下内容:

{ "Location": "/bucket-name" }

设置IAM信任策略

使用以下步骤创建IAM信任策略。有关角色和信任策略的更多信息,请参阅Amazon Identity and Access Management 用户指南中的角色术语和概念

  1. 在您的终端中,使用以下命令创建一个名为的文件mlflow-trust-policy.json

    cat <<EOF > /tmp/mlflow-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF
  2. 在您的终端中,使用以下命令创建一个名为的文件custom-policy.json

    cat <<EOF > /tmp/custom-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:UpdateModelPackage", "s3:List*" ], "Resource": "*" } ] } EOF
  3. 使用信任策略文件创建角色。然后,附加允许MLflow在您的账户中访问 Amazon S3 和 SageMaker 模型注册表的IAM角色策略。MLflow必须有权访问 Amazon S3 才能访问跟踪服务器的工件存储区,并有权访问 SageMaker 模型注册表才能自动注册模型。

    注意

    如果您要更新现有角色,请改用以下命令:aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json

    role_name=role-name aws iam create-role \ --role-name $role_name \ --assume-role-policy-document file:///tmp/mlflow-trust-policy.json aws iam put-role-policy \ --role-name $role_name \ --policy-name custom-policy \ --policy-document file:///tmp/custom-policy.json role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)

创建MLflow跟踪服务器

在您的终端中,使用创建您选择 Amazon Web Services 区域 的跟踪服务器。create-mlflow-tracking-server API此步骤最多可能需要 25 分钟。

您可以选择使用参数指定跟踪服务器的大小--tracking-server-config。在"Small""Medium"、和之间进行选择"Large"。MLflow跟踪服务器的默认配置大小为"Small"。您可以根据跟踪服务器的预计使用情况(例如记录的数据量、用户数量和使用频率)来选择大小。有关更多信息,请参阅 MLflow跟踪服务器大小

以下命令创建启用了自动模型注册的新跟踪服务器。要停用自动模型配准,请指定--no-automatic-model-registration

创建跟踪服务器后,您可以启动MLflow用户界面。有关更多信息,请参阅 使用预签名 URL 启动 mlFlow 用户界面

注意

最多可能需要 25 分钟才能完成跟踪服务器的创建。如果创建跟踪服务器的时间超过 25 分钟,请检查您是否具有必要的IAM权限。有关IAM权限的更多信息,请参阅为设置IAM权限 MLflow。成功创建跟踪服务器后,它会自动启动。

ts_name=tracking-server-name region=valid-region aws sagemaker create-mlflow-tracking-server \ --tracking-server-name $ts_name \ --artifact-store-uri s3://$bucket_name \ --role-arn $role_arn \ --automatic-model-registration \ --region $region

该输出应该类似于以下内容:

{ "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/tracking-server-name" }
重要

记下跟踪服务器ARN以备日后使用。您还需要执行清$bucket_name理步骤。