本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用创建跟踪服务器 Amazon CLI
您可以使用创建跟踪服务器, Amazon CLI 以实现更精细的安全自定义。
先决条件
要使用创建跟踪服务器 Amazon CLI,必须具备以下条件:
-
访问终端。这可能包括本地 IDE、Amazon EC2 实例或 Amazon CloudShell。
-
访问开发环境。这可能包括本地 IDE 或 Studio Classic 中的 Jupyter 笔记本环境。
-
已配置的 Amazon CLI 安装。有关更多信息,请参阅配置 Amazon CLI。
-
具有适当权限的 IAM 角色。以下步骤要求您的环境具有
iam:CreateRole
、iam:CreatePolicy
iam:AttachRolePolicy
、和iam:ListPolicies
权限。用于运行本用户指南中步骤的角色需要这些权限。本指南中的说明创建了一个用作 mlFlow 跟踪服务器执行角色的 IAM 角色,以便它可以访问您的 Amazon S3 存储桶中的数据。此外,还会创建一项策略,为通过 mlFlow SDK 与跟踪服务器进行交互的用户的 IAM 角色授予调用 mlFlow API 的权限。有关更多信息,请参阅修改角色权限策略(控制台)。如果使用 SageMaker Studio 笔记本,请使用这些 IAM 权限更新您的 Studio 用户个人资料的服务角色。要更新服务角色,请导航到 SageMaker 控制台并选择您正在使用的域。然后,在域名下,选择您正在使用的用户配置文件。您将看到此处列出的服务角色。导航到 IAM 控制台,在 “角色” 下搜索服务角色,然后使用允许
iam:CreateRole
、iam:CreatePolicy
iam:AttachRolePolicy
、和iam:ListPolicies
操作的策略更新您的角色。
设置 Amazon CLI 模型
在终端中按照以下命令行步骤 Amazon CLI 为亚马逊设置 SageMaker 带有 mlFlow 的。
-
安装更新版本的 Amazon CLI。有关更多信息,请参阅Amazon CLI 用户指南 Amazon CLI中的安装或更新到最新版本的。
-
使用以下命令验证 Amazon CLI 是否已安装:
aws sagemaker help
按
q
退出提示音。有关问题排查帮助,请参阅解决常见的设置问题。
设置 mlFlow 基础架构
以下部分向您展示如何设置 mlFlow 跟踪服务器以及跟踪服务器所需的 Amazon S3 存储桶和 IAM 角色。
创建 S3 存储桶
在您的终端中,使用以下命令创建通用的 Amazon S3 存储桶:
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 用户指南中的角色术语和概念。
-
在您的终端中,使用以下命令创建一个名为的文件
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 -
在您的终端中,使用以下命令创建一个名为的文件
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
-
使用信任策略文件创建角色。然后,附上允许 mlFlow 在您的账户中访问亚马逊 S3 和 SageMaker 模型注册表的 IAM 角色策略。mlFlow 必须有权访问 Amazon S3 以访问您的跟踪服务器的工件存储,并有权访问 SageMaker 模型注册表才能自动注册模型。
注意
如果您要更新现有角色,请改用以下命令:
aws iam update-assume-role-policy --role-name
。$role_name
--policy-documentfile:///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-namecustom-policy
\ --policy-document file:///tmp/custom-policy.json
role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)
创建 mlFlow 跟踪服务器
在您的终端中,使用 create-mlflow-tracking-server
API 在您选择的区域创建跟踪服务器。此步骤最多可能需要 25 分钟。
您可以选择使用参数指定跟踪服务器的大小--tracking-server-config
。在"Small"
"Medium"
、和之间进行选择"Large"
。mlFlow 跟踪服务器的默认配置大小为"Small"
。您可以根据跟踪服务器的预计使用情况(例如记录的数据量、用户数量和使用频率)来选择大小。有关更多信息,请参阅 mlFlow 跟踪服务器的大小。
以下命令创建启用了自动模型注册的新跟踪服务器。要停用自动模型配准,请指定--no-automatic-model-registration
。
注意
最多可能需要 25 分钟才能完成跟踪服务器的创建。如果创建跟踪服务器的时间超过 25 分钟,请检查您是否拥有必要的 IAM 权限。有关 IAM 权限的更多信息,请参阅为 mlFlow 设置 IAM 权限。成功创建跟踪服务器后,它会自动启动。
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
理步骤。
描述 mlFlow 跟踪服务器
使用 describe-mlflow-tracking-server
API 检查 mlFlow 跟踪服务器的创建状态。
aws sagemaker describe-mlflow-tracking-server \ --mlflow-tracking-server-name
$ts_name
\ --region$region
当 mlFlow 跟踪服务器的创建仍在进行中时,TrackingServerStatus
是"Creating"
。当 mlFlow 跟踪服务器创建完成后,TrackingServerStatus
为"Created"
。该输出应该类似于以下内容:
{ "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/
tracking-server-name
", "MlflowTrackingServerName": "tracking-server-name
", "CreationTime": "2024-03-15T19:41:43+00:00", "LastModifiedTime": "2024-03-15T19:41:43+00:00", "CreatedBy": {}, "LastModifiedBy": {}, "ArtifactStoreUri": "s3://bucket-name
", "TrackingServerConfig": "Small
", "MlflowVersion": "v2.11.3", "TrackingServerStatus": "Created" }
列出 mlFlow 跟踪服务器
使用 list-mlflow-tracking-servers
API 列出 mlFlow 跟踪服务器。
aws sagemaker list-mlflow-tracking-servers \ --region
$region
您的输出应类似于以下内容:
{ "TrackingServerSummaries": [ { "TrackingServerArn": "arn:aws:sagemaker:
region
:123456789012
:mlflow-tracking-server/tracking-server-name
", "MlflowTrackingServerName": "tracking-server-name
", "CreationTime": "2024-04-11T16:58:27+00:00", "LastModifiedTime": "2024-04-11T16:58:27+00:00", "TrackingServerStatus": "CreatePending", "MlflowVersion": "v2.11.3" } ] }
默认情况下,跟踪服务器按创建时间降序列出。要更改列表顺序,您可以选择指定--sort-order
为Ascending
。
您可以选择按以下方式筛选列出的跟踪服务器--tracking-server-status
,例如"Creating"
或"Created"
。
使用--created-after
筛选器仅列出在特定日期和时间之后创建的跟踪服务器。列出的跟踪服务器显示日期和时间,例如"2024-03-16T01:46:56+00:00"
。该--created-after
参数采用 Unix 时间戳。要将日期和时间转换为 Unix 时间戳,请参见EpochConverter
aws sagemaker list-mlflow-tracking-servers \ --region
$region
\ --sort-orderAscending
\ --tracking-server-statusCreated
\ --created-after1712852168
如果您在同一个区域中有多个跟踪服务器,则可以使用--next-token
参数在跟踪服务器中进行迭代。
# List one tracking server in a specified Region to get a NextToken aws sagemaker list-mlflow-tracking-servers \ --max-results
1
\ --region$region
# Save the NextToken for this listed tracking server in a variable next_token=$(aws experiments-beta list-mlflow-tracking-servers \ --max-results1
\ --region$region
| jq -r .NextToken) # Use the NextToken to list the next tracking server and get a new NextToken aws sagemaker list-mlflow-tracking-servers \ --max-results1
\ --region$region
\ --next-token$next_token
要查看所有可能的列表选项,请运行以下命令:
aws sagemaker list-mlflow-tracking-servers help
停止或启动 mlFlow 跟踪服务器
要停止跟踪服务器,请使用以下命令:
aws sagemaker stop-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
要启动跟踪服务器,请使用以下命令:
aws sagemaker start-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --region$region
更新 mlFlow 跟踪服务器
您可以随时更新对象存储 Amazon S3 存储桶、跟踪服务器大小、自动模型注册配置或每周维护时段。必须停止跟踪服务器才能更新。
要更新跟踪服务器并更改工件存储库 URI,请使用以下命令:
aws sagemaker update-mlflow-tracking-server \ --tracking-server-name
$ts_name
\ --artifact-store-uri$updated-artifact-store-uri
\ --region$region