翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MLflow を使用して推論の推奨事項とベンチマーク結果を追跡する
Amazon SageMaker AI のフルマネージド MLflow を使用して、レコメンデーションジョブとベンチマークジョブの結果を追跡できます。MLflow 設定を指定すると、SageMaker AI はジョブが生成するパフォーマンスメトリクスとアーティファクトを MLflow アプリに記録します。その後、MLflow UI を使用して、個々の実行を表示したり、ジョブ間で設定を比較したり、結果をチームと共有したりできます。SageMaker AI での MLflow の詳細については、「」を参照してくださいAmazon SageMaker AI でマネージド MLflow を使用して生成 AI 開発を加速する。
MLflow 追跡はオプションです。これを有効にするには、ジョブの作成時に MLflow アプリを参照する MLflow 設定を指定します。
前提条件
MLflow で結果を追跡する前に、レコメンデーションジョブまたはベンチマークジョブ前提条件の に加えて、以下が必要です。
-
ジョブ AWS リージョン と同じオペレーション状態の MLflow アプリ。MLflow アプリの作成については、「」を参照してくださいMLflow アプリのセットアップ。
-
MLflow アプリを記述し、MLflow REST APIs を呼び出すアクセス許可を持つ IAM 実行ロール (ジョブに
RoleArn渡す )。sagemaker:DescribeMlflowAppアクションと、ジョブが実行のログ記録に使用するsagemaker-mlflowアクションを追加します。MLflow アクセス許可の詳細については、「」を参照してくださいMLflow アプリのセットアップ。
MLflow 設定パラメータ
結果を追跡するには、 CreateAIRecommendationJob または CreateAIBenchmarkJobリクエストOutputConfigの に MlflowConfig オブジェクトを追加します。 MlflowConfigには次のフィールドが含まれます。
MlflowResourceArn-
必須。結果をログに記録する MLflow アプリの Amazon リソースネーム (ARN)。形式は です
arn:aws:sagemaker:。region:account-id:mlflow-app/app-id MlflowExperimentName-
オプション。実行をログに記録する MLflow 実験の名前。実験が存在しない場合、SageMaker AI によって作成されます。すでに存在する場合、SageMaker AI によって再利用されるため、同じ名前を渡すことで、1 つの実験で複数のジョブの実行をグループ化できます。
MlflowRunName-
オプション。ジョブの結果がネストされている最上位の MLflow 実行の名前。複数のジョブの結果を 1 つの最上位実行にグループ化するには、同じ を各ジョブ
MlflowRunNameに渡します。
各ジョブは最上位の MLflow 実行を作成し、ネストされた子実行を使用して、ベンチマークターゲットまたはインスタンスタイプ、デプロイ設定、同時実行レベルなどのディメンション別に結果を分割します。この構造により、個々の測定値をドリルダウンし、MLflow UI の設定を比較できます。
作成リクエストでMlflowConfig指定した は、対応するDescribeレスポンスOutputConfigの にエコーバックされます。
レコメンデーションジョブを追跡する
レコメンデーションジョブを作成するOutputConfigときに、 MlflowConfig オブジェクトを に追加します。
Python (boto3)
response = client.create_ai_recommendation_job( AIRecommendationJobName="my-recommendation-job", ModelSource={ "S3": { "S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/", } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-recommendation-experiment", "MlflowRunName": "my-recommendation-job-run", }, }, PerformanceTarget={ "Constraints": [ {"Metric": "ttft-ms"} ] }, AIWorkloadConfigIdentifier="my-recommendation-workload", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) print(response["AIRecommendationJobArn"])
AWS CLI
aws sagemaker create-ai-recommendation-job \ --ai-recommendation-job-name "my-recommendation-job" \ --model-source '{"S3": {"S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/"}}' \ --output-config '{ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-recommendation-experiment", "MlflowRunName": "my-recommendation-job-run" } }' \ --performance-target '{"Constraints": [{"Metric": "ttft-ms"}]}' \ --ai-workload-config-identifier "my-recommendation-workload" \ --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \ --region us-west-2
ベンチマークジョブを追跡する
ベンチマークジョブを作成するOutputConfigときに、 MlflowConfig オブジェクトを に追加します。
Python (boto3)
response = client.create_ai_benchmark_job( AIBenchmarkJobName="my-benchmark-job", BenchmarkTarget={ "Endpoint": { "Identifier": "my-sagemaker-endpoint" } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-benchmark-experiment", "MlflowRunName": "my-benchmark-job-run", }, }, AIWorkloadConfigIdentifier="my-benchmark-config", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) print(response["AIBenchmarkJobArn"])
AWS CLI
aws sagemaker create-ai-benchmark-job \ --ai-benchmark-job-name "my-benchmark-job" \ --benchmark-target '{"Endpoint": {"Identifier": "my-sagemaker-endpoint"}}' \ --output-config '{ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE", "MlflowExperimentName": "my-benchmark-experiment", "MlflowRunName": "my-benchmark-job-run" } }' \ --ai-workload-config-identifier "my-benchmark-config" \ --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \ --region us-west-2
MLflow で結果を表示する
ジョブが Completedステータスになったら、MLflow アプリから MLflow UI を開いて、ログに記録された実行を検査します。MLflow UI の起動の詳細については、「」を参照してください署名付き URL を使用して MLflow UI を起動する。
Experiments ページで、 で指定した実験を選択しますMlflowExperimentName。
実験の Runs ビューには、ジョブごとの実行を含む最上位の実行が表示され、各インスタンスタイプ、デプロイ設定、同時実行レベルの子実行に展開されます。実行を選択して、そのパラメータ、メトリクス、アーティファクトを表示します。