を使用して追跡サーバーを作成する AWS CLI - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用して追跡サーバーを作成する AWS CLI

を使用して追跡サーバーを作成し、セキュリティをより詳細 AWS CLI にカスタマイズできます。

前提条件

を使用して追跡サーバーを作成するには AWS CLI、以下が必要です。

  • ターミナルへのアクセス。 これには、ローカル IDEsインスタンス、または が含まれます AWS CloudShell。 Amazon EC2

  • 開発環境へのアクセス。これには、Studio または Studio Classic 内のローカル IDEs または Jupyter Notebook 環境が含まれます。

  • 設定済みの AWS CLI インストール 。詳細については、「AWS CLIの設定」を参照してください。

  • 適切なアクセス許可を持つ IAM ロール。次の手順では、環境が iam:CreateRoleiam:CreatePolicy、、iam:AttachRolePolicyおよび アクセスiam:ListPolicies許可を持っている必要があります。これらのアクセス許可は、このユーザーガイドのステップの実行に使用されているロールに必要です。このガイドの手順では、MLflow Tracking Server の実行ロールとして使用される IAM ロールを作成して、Amazon S3 バケット内のデータにアクセスできるようにします。さらに、MLflow SDK を介して追跡サーバーとやり取りするユーザーの IAM ロールに、MLflow APIs を呼び出すアクセス許可を付与するポリシーが作成されます。詳細については、「ロールのアクセス許可ポリシーの変更 (コンソール)」を参照してください。

    SageMaker Studio ノートブックを使用している場合は、これらの IAM アクセス許可を使用して Studio ユーザープロファイルのサービスロールを更新します。サービスロールを更新するには、 SageMaker コンソールに移動し、使用しているドメインを選択します。次に、ドメインで、使用しているユーザープロファイルを選択します。サービスロールが一覧表示されます。IAM コンソールに移動し、ロール でサービスロールを検索し、iam:CreateRole、、、iam:CreatePolicyiam:AttachRolePolicyおよび iam:ListPoliciesアクションを許可するポリシーでロールを更新します。

AWS CLI モデルの設定

ターミナル内の以下のコマンドラインステップに従って、MLflow SageMaker で Amazon AWS CLI の を設定します。

  1. の更新バージョンをインストールします AWS CLI。詳細については、「 ユーザーガイド」の「 の最新バージョンのインストールまたは更新 AWS CLIAWS CLI 」を参照してください。

  2. 次のコマンドを使用して AWS CLI 、 がインストールされていることを確認します。

    aws sagemaker help

    q を押してプロンプトを終了します。

    トラブルシューティングヘルプについては、セットアップに関する一般的な問題のトラブルシューティング を参照してください。

MLflow インフラストラクチャをセットアップする

次のセクションでは、MLflow Tracking Server を、追跡サーバーに必要な Amazon S3 バケットと IAM ロールとともにセットアップする方法を示します。

S3 バケットを作成する

ターミナル内で、次のコマンドを使用して汎用 Amazon S3 バケットを作成します。

注記

アーティファクトストアに使用される Amazon S3 バケットは、追跡サーバー AWS リージョン と同じ にある必要があります。

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 信頼ポリシーを作成するには、次のステップに従います。ロールと信頼ポリシーの詳細については、「 AWS 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 と Model Registry にアクセスできるようにする IAM ロールポリシーをアタッチします。 SageMaker MLflow は、追跡サーバーのアーティファクトストアには Amazon S3 にアクセスし、自動モデル登録には SageMaker Model Registry にアクセスできる必要があります。

    注記

    既存のロールを更新する場合は、代わりに コマンドを使用します。 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 追跡サーバーを作成する

ターミナル内で API を使用してcreate-mlflow-tracking-server、 AWS リージョン 選択した に追跡サーバーを作成します。このステップには最大 25 分かかる場合があります。

オプションで、パラメータ を使用して追跡サーバーのサイズを指定できます--tracking-server-config"Small""Medium"、 のいずれかを選択します"Large"。デフォルトの MLflow Tracking Server 設定サイズは です"Small"。ログに記録されるデータ量、ユーザー数、使用頻度など、追跡サーバーの予測使用量に応じてサイズを選択できます。詳細については、「MLflow サーバーサイズの追跡」を参照してください。

次のコマンドは、自動モデル登録を有効にして新しい追跡サーバーを作成します。自動モデル登録を無効にするには、 を指定します--no-automatic-model-registration

追跡サーバーを作成したら、MLflow UI を起動できます。詳細については、「署名付き URL を使用して MLflow UI を起動する」を参照してください。

注記

サーバーの作成の追跡が完了するまでに最大 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 Tracking Server の説明

describe-mlflow-tracking-server API を使用して MLflow Tracking Server の作成のステータスを確認します。

aws sagemaker describe-mlflow-tracking-server \ --tracking-server-name $ts_name \ --region $region

MLflow Tracking Server の作成がまだ進行中の場合、 は 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 Tracking Server を一覧表示する

list-mlflow-tracking-servers API を使用して MLflow Tracking Server を一覧表示します。

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

オプションで、 "Creating"や など--tracking-server-status、リストされた追跡サーバーを でフィルタリングできます"Created"

--created-after フィルターを使用して、特定の日時以降に作成された追跡サーバーのみを一覧表示します。リストされた追跡サーバーは、 などの日付と時刻で表示されます"2024-03-16T01:46:56+00:00"--created-after パラメータは Unix タイムスタンプを受け取ります。日付と時刻を Unix タイムスタンプに変換するには、「」を参照してくださいEpochConverter

aws sagemaker list-mlflow-tracking-servers \ --region $region \ --sort-order Ascending \ --tracking-server-status Created \ --created-after 1712852168

同じ に複数の追跡サーバーがある場合は AWS リージョン、 --next-tokenパラメータを使用して追跡サーバーを反復処理できます。

# List one tracking server in a specified AWS リージョン 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-results 1 \ --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-results 1 \ --region $region \ --next-token $next_token

使用可能なすべてのリストオプションを表示するには、次のコマンドを実行します。

aws sagemaker list-mlflow-tracking-servers help

MLflow Tracking Server を停止または起動する

追跡サーバーを停止するには、次のコマンドを使用します。

aws sagemaker stop-mlflow-tracking-server \ --tracking-server-name $ts_name \ --region $region

追跡サーバーを起動するには、次のコマンドを使用します。

注記

追跡サーバーの起動には最大 25 分かかる場合があります。

aws sagemaker start-mlflow-tracking-server \ --tracking-server-name $ts_name \ --region $region

MLflow Tracking Server を更新する

アーティファクトストレージの Amazon S3 バケット、追跡サーバーサイズ、自動モデル登録設定、または毎週のメンテナンスウィンドウはいつでも更新できます。更新するには、追跡サーバーを停止する必要があります。

追跡サーバーを更新し、アーティファクトストア URI を変更するには、次のコマンドを使用します。

aws sagemaker update-mlflow-tracking-server \ --tracking-server-name $ts_name \ --artifact-store-uri $updated-artifact-store-uri \ --region $region