View a markdown version of this page

MLflow を使用して推論の推奨事項とベンチマーク結果を追跡する - Amazon SageMaker AI

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

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

MLflow UI Experiments ページには、名前と作成時刻を含む実験のリストが表示されます。

実験の Runs ビューには、ジョブごとの実行を含む最上位の実行が表示され、各インスタンスタイプ、デプロイ設定、同時実行レベルの子実行に展開されます。実行を選択して、そのパラメータ、メトリクス、アーティファクトを表示します。

MLflow UI Runs ビューには、ジョブごと、インスタンスタイプ、イメージタイプ、および同時実行レベルのネストされた子実行に拡張される最上位の実行が表示されます。