翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用して追跡サーバーを作成する AWS CLI
を使用して追跡サーバーを作成し、セキュリティをより詳細 AWS CLI にカスタマイズできます。
前提条件
を使用して追跡サーバーを作成するには AWS CLI、以下が必要です。
-
ターミナルへのアクセス。 これには、ローカル IDEsインスタンス、または が含まれます AWS CloudShell。 Amazon EC2
-
開発環境へのアクセス。これには、Studio または Studio Classic 内のローカル IDEs または Jupyter Notebook 環境が含まれます。
-
設定済みの AWS CLI インストール 。詳細については、「AWS CLIの設定」を参照してください。
-
適切なアクセス許可を持つ IAM ロール。次の手順では、環境が
iam:CreateRole
、iam: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:CreatePolicy
iam:AttachRolePolicy
およびiam:ListPolicies
アクションを許可するポリシーでロールを更新します。
AWS CLI モデルの設定
ターミナル内の以下のコマンドラインステップに従って、MLflow SageMaker で Amazon AWS CLI の を設定します。
-
の更新バージョンをインストールします AWS CLI。詳細については、「 ユーザーガイド」の「 の最新バージョンのインストールまたは更新 AWS CLIAWS CLI 」を参照してください。
-
次のコマンドを使用して 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 ユーザーガイド」の「ロールの用語と概念」を参照してください。
-
ターミナル内で、次のコマンドを使用して というファイルを作成します
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 がアカウント内の Amazon S3 と Model Registry にアクセスできるようにする IAM ロールポリシーをアタッチします。 SageMaker MLflow は、追跡サーバーのアーティファクトストアには Amazon S3 にアクセスし、自動モデル登録には SageMaker Model Registry にアクセスできる必要があります。
注記
既存のロールを更新する場合は、代わりに コマンドを使用します。
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 追跡サーバーを作成する
ターミナル内で 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-orderAscending
\ --tracking-server-statusCreated
\ --created-after1712852168
同じ に複数の追跡サーバーがある場合は 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-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 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