

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

# MLflow を使用して推論の推奨事項とベンチマーク結果を追跡する
<a name="generative-ai-inference-recommendations-mlflow"></a>

Amazon SageMaker AI のフルマネージド MLflow を使用して、レコメンデーションジョブとベンチマークジョブの結果を追跡できます。MLflow 設定を指定すると、SageMaker AI はジョブが生成するパフォーマンスメトリクスとアーティファクトを MLflow アプリに記録します。その後、MLflow UI を使用して、個々の実行を表示したり、ジョブ間で設定を比較したり、結果をチームと共有したりできます。SageMaker AI での MLflow の詳細については、「」を参照してください[Amazon SageMaker AI でマネージド MLflow を使用して生成 AI 開発を加速する](mlflow.md)。

MLflow 追跡はオプションです。これを有効にするには、ジョブの作成時に MLflow アプリを参照する MLflow 設定を指定します。

## 前提条件
<a name="generative-ai-inference-recommendations-mlflow-prereqs"></a>

MLflow で結果を追跡する前に、レコメンデーションジョブまたはベンチマークジョブ[前提条件](generative-ai-inference-recommendations-get-started.md#generative-ai-inference-recommendations-get-started-prereqs)の に加えて、以下が必要です。
+ ジョブ AWS リージョン と同じオペレーション状態の MLflow アプリ。MLflow アプリの作成については、「」を参照してください[MLflow アプリのセットアップ](mlflow-app-setup.md)。
+ MLflow アプリを記述し、MLflow REST APIs を呼び出すアクセス許可を持つ IAM 実行ロール (ジョブに`RoleArn`渡す )。`sagemaker:DescribeMlflowApp` アクションと、ジョブが実行のログ記録に使用する`sagemaker-mlflow`アクションを追加します。MLflow アクセス許可の詳細については、「」を参照してください[MLflow アプリのセットアップ](mlflow-app-setup.md)。

## MLflow 設定パラメータ
<a name="generative-ai-inference-recommendations-mlflow-config"></a>

結果を追跡するには、 `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`の にエコーバックされます。

## レコメンデーションジョブを追跡する
<a name="generative-ai-inference-recommendations-mlflow-recommendation"></a>

レコメンデーションジョブを作成する`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
```

## ベンチマークジョブを追跡する
<a name="generative-ai-inference-recommendations-mlflow-benchmark"></a>

ベンチマークジョブを作成する`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 で結果を表示する
<a name="generative-ai-inference-recommendations-mlflow-view"></a>

ジョブが `Completed`ステータスになったら、MLflow アプリから MLflow UI を開いて、ログに記録された実行を検査します。MLflow UI の起動の詳細については、「」を参照してください[署名付き URL を使用して MLflow UI を起動する](mlflow-launch-ui.md)。

**Experiments** ページで、 で指定した実験を選択します`MlflowExperimentName`。

![MLflow UI Experiments ページには、名前と作成時刻を含む実験のリストが表示されます。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/mlflow/inference-recommendations-mlflow-experiments.png)


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

![MLflow UI Runs ビューには、ジョブごと、インスタンスタイプ、イメージタイプ、および同時実行レベルのネストされた子実行に拡張される最上位の実行が表示されます。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/mlflow/inference-recommendations-mlflow-runs.png)
