

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

# 推論レコメンデーションジョブの結果を取得する
<a name="instance-recommendation-results"></a>

 AWS SDK for Python (Boto3)、、Studio Classic AWS CLI、または SageMaker AI コンソールを使用して、推論レコメンデーションジョブの結果をプログラムで収集します。

------
#### [ AWS SDK for Python (Boto3) ]

推論レコメンデーションが完了したら、`DescribeInferenceRecommendationsJob` を使用して、ジョブの詳細とレコメンデーションを取得します。推論レコメンデーションジョブを作成したときに使用したジョブ名を指定します。

```
job_name='<INSERT>'
response = sagemaker_client.describe_inference_recommendations_job(
                    JobName=job_name)
```

レスポンスオブジェクトを出力します。前のコードサンプルで、レスポンスを `response` という名前の変数に保存しました。

```
print(response['Status'])
```

ここでは、次の例のような JSON レスポンスが返されます。この例はリアルタイム推論に推奨されるインスタンスタイプを示していることに注意してください (サーバーレス推論レコメンデーションを示す例については、この後の例を参照してください)。

```
{
    'JobName': 'job-name', 
    'JobDescription': 'job-description', 
    'JobType': 'Default', 
    'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 
    'InputConfig': {
                'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 
                'JobDurationInSeconds': 0
                }, 
    'InferenceRecommendations': [{
            'Metrics': {
                'CostPerHour': 0.20399999618530273, 
                'CostPerInference': 5.246913588052848e-06, 
                'MaximumInvocations': 648, 
                'ModelLatency': 263596
                }, 
            'EndpointConfiguration': {
                'EndpointName': 'endpoint-name', 
                'VariantName': 'variant-name', 
                'InstanceType': 'ml.c5.xlarge', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
         }, 
         {
            'Metrics': {
                'CostPerHour': 0.11500000208616257, 
                'CostPerInference': 2.92620870823157e-06, 
                'MaximumInvocations': 655, 
                'ModelLatency': 826019
                }, 
            'EndpointConfiguration': {
                'EndpointName': 'endpoint-name', 
                'VariantName': 'variant-name', 
                'InstanceType': 'ml.c5d.large', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
            }, 
            {
                'Metrics': {
                    'CostPerHour': 0.11500000208616257, 
                    'CostPerInference': 3.3625731248321244e-06, 
                    'MaximumInvocations': 570, 
                    'ModelLatency': 1085446
                    }, 
                'EndpointConfiguration': {
                    'EndpointName': 'endpoint-name', 
                    'VariantName': 'variant-name', 
                    'InstanceType': 'ml.m5.large', 
                    'InitialInstanceCount': 1
                    }, 
                'ModelConfiguration': {
                    'Compiled': False, 
                    'EnvironmentParameters': []
                    }
            }], 
    'ResponseMetadata': {
        'RequestId': 'request-id', 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': 'x-amzn-requestid', 
            'content-type': 'content-type', 
            'content-length': '1685', 
            'date': 'Tue, 26 Oct 2021 20:31:10 GMT'
            }, 
        'RetryAttempts': 0
        }
}
```

最初の数行には、推論レコメンデーションジョブ自体に関する情報が示されています。これには、ジョブ名、ロール ARN、作成時間と削除時間が含まれます。

`InferenceRecommendations` ディクショナリには、Inference Recommender 推論レコメンデーションのリストが含まれています。

`EndpointConfiguration` ネストされたディクショナリには、レコメンデーションジョブ中に使用されたエンドポイントとバリアント名 (デプロイされた AWS 機械学習モデル`InstanceType`) とともに、インスタンスタイプ () レコメンデーションが含まれています。Amazon CloudWatch Events でのモニタリングには、エンドポイントとバリアント名を使用できます。詳細については「[Amazon CloudWatch における Amazon SageMaker AI メトリクス](monitoring-cloudwatch.md)」を参照してください。

`Metrics` のネストされたディクショナリには、リアルタイムエンドポイントの 1 時間あたりの推定コスト (`CostPerHour`) (USD)、リアルタイムエンドポイントの推論あたりの推定コスト (`CostPerInference`) (USD)、エンドポイントに送信される `InvokeEndpoint` リクエストの 1 分あたりの最大数 (`MaxInvocations`)、モデルが SageMaker AI に応答するのにかかった時間間隔 (マイクロ秒単位) である、モデルのレイテンシー (`ModelLatency`) に関する情報が含まれています。モデルのレイテンシーには、リクエストを送信し、モデルのコンテナからレスポンスを取得するのにかかるローカル通信時間と、コンテナ内で推論を完了するのにかかる時間が含まれます。

以下の例は、サーバーレス推論レコメンデーションを返すように設定された推論レコメンデーションジョブのレスポンスの `InferenceRecommendations` 部を示しています。

```
"InferenceRecommendations": [ 
      { 
         "EndpointConfiguration": { 
            "EndpointName": "value",
            "InitialInstanceCount": value,
            "InstanceType": "value",
            "VariantName": "value",
            "ServerlessConfig": {
                "MaxConcurrency": value,
                "MemorySizeInMb": value
            }
         },
         "InvocationEndTime": value,
         "InvocationStartTime": value,
         "Metrics": { 
            "CostPerHour": value,
            "CostPerInference": value,
            "CpuUtilization": value,
            "MaxInvocations": value,
            "MemoryUtilization": value,
            "ModelLatency": value,
            "ModelSetupTime": value
         },
         "ModelConfiguration": { 
            "Compiled": "False",
            "EnvironmentParameters": [],
            "InferenceSpecificationName": "value"
         },
         "RecommendationId": "value"
      }
   ]
```

サーバーレス推論のレコメンデーションは、リアルタイム推論の結果と同様に解釈できます。ただし、`ServerlessConfig` は例外で、`MemorySizeInMB` が指定され、`MaxConcurrency = 1` のときにサーバーレスエンドポイントに対して返されるメトリクスを示します。エンドポイントで可能なスループットを向上させるには、`MaxConcurrency` の値を直線的に増加します。たとえば、推論レコメンデーションによって `MaxInvocations` が `1000` として示されている場合、`MaxConcurrency` を `2` に増加すると、2000 `MaxInvocations` がサポートされます。これは特定の時点までしか当てはまらず、モデルやコードによって異なる可能性があることに注意してください。サーバーレスレコメンデーションではメトリクス `ModelSetupTime` も測定され、これにより、サーバーレスエンドポイントでコンピューターリソースを起動するのにかかる時間 (マイクロ秒単位) が測定されます。サーバーレスエンドポイントの設定について詳しくは、[サーバーレス推論のドキュメント](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)を参照してください。

------
#### [ AWS CLI ]

推論レコメンデーションが完了したら、`describe-inference-recommendations-job` を使用して、ジョブの詳細とレコメンデーションインスタンスタイプを取得します。推論レコメンデーションジョブを作成したときに使用したジョブ名を指定します。

```
aws sagemaker describe-inference-recommendations-job\
    --job-name <job-name>\
    --region <aws-region>
```

同様の JSON レスポンスは、次の例のようになります。この例はリアルタイム推論に推奨されるインスタンスタイプを示していることに注意してください (サーバーレス推論レコメンデーションを示す例については、この後の例を参照してください)。

```
{
    'JobName': 'job-name', 
    'JobDescription': 'job-description', 
    'JobType': 'Default', 
    'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 
    'InputConfig': {
                'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 
                'JobDurationInSeconds': 0
                }, 
    'InferenceRecommendations': [{
            'Metrics': {
                'CostPerHour': 0.20399999618530273, 
                'CostPerInference': 5.246913588052848e-06, 
                'MaximumInvocations': 648, 
                'ModelLatency': 263596
                }, 
            'EndpointConfiguration': {
                'EndpointName': 'endpoint-name', 
                'VariantName': 'variant-name', 
                'InstanceType': 'ml.c5.xlarge', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
         }, 
         {
            'Metrics': {
                'CostPerHour': 0.11500000208616257, 
                'CostPerInference': 2.92620870823157e-06, 
                'MaximumInvocations': 655, 
                'ModelLatency': 826019
                }, 
            'EndpointConfiguration': {
                'EndpointName': 'endpoint-name', 
                'VariantName': 'variant-name', 
                'InstanceType': 'ml.c5d.large', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
            }, 
            {
                'Metrics': {
                    'CostPerHour': 0.11500000208616257, 
                    'CostPerInference': 3.3625731248321244e-06, 
                    'MaximumInvocations': 570, 
                    'ModelLatency': 1085446
                    }, 
                'EndpointConfiguration': {
                    'EndpointName': 'endpoint-name', 
                    'VariantName': 'variant-name', 
                    'InstanceType': 'ml.m5.large', 
                    'InitialInstanceCount': 1
                    }, 
                'ModelConfiguration': {
                    'Compiled': False, 
                    'EnvironmentParameters': []
                    }
            }], 
    'ResponseMetadata': {
        'RequestId': 'request-id', 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': 'x-amzn-requestid', 
            'content-type': 'content-type', 
            'content-length': '1685', 
            'date': 'Tue, 26 Oct 2021 20:31:10 GMT'
            }, 
        'RetryAttempts': 0
        }
}
```

最初の数行には、推論レコメンデーションジョブ自体に関する情報が示されています。これには、ジョブ名、ロール ARN、作成、削除時間が含まれます。

`InferenceRecommendations` ディクショナリには、Inference Recommender 推論レコメンデーションのリストが含まれています。

`EndpointConfiguration` ネストされたディクショナリには、レコメンデーションジョブ中に使用されるエンドポイントとバリアント名 (デプロイされた AWS 機械学習モデル`InstanceType`) とともに、インスタンスタイプ () レコメンデーションが含まれています。Amazon CloudWatch Events でのモニタリングには、エンドポイントとバリアント名を使用できます。詳細については「[Amazon CloudWatch における Amazon SageMaker AI メトリクス](monitoring-cloudwatch.md)」を参照してください。

`Metrics` のネストされたディクショナリには、リアルタイムエンドポイントの 1 時間あたりの推定コスト (`CostPerHour`) (USD)、リアルタイムエンドポイントの推論あたりの推定コスト (`CostPerInference`) (USD)、エンドポイントに送信される `InvokeEndpoint` リクエストの 1 分あたりの最大数 (`MaxInvocations`)、モデルが SageMaker AI に応答するのにかかった時間間隔 (ミリ秒単位) である、モデルのレイテンシー (`ModelLatency`) に関する情報が含まれています。モデルのレイテンシーには、リクエストを送信し、モデルのコンテナからレスポンスを取得するのにかかるローカル通信時間と、コンテナ内で推論を完了するのにかかる時間が含まれます。

以下の例は、サーバーレス推論レコメンデーションを返すように設定された推論レコメンデーションジョブのレスポンスの `InferenceRecommendations` 部を示しています。

```
"InferenceRecommendations": [ 
      { 
         "EndpointConfiguration": { 
            "EndpointName": "value",
            "InitialInstanceCount": value,
            "InstanceType": "value",
            "VariantName": "value",
            "ServerlessConfig": {
                "MaxConcurrency": value,
                "MemorySizeInMb": value
            }
         },
         "InvocationEndTime": value,
         "InvocationStartTime": value,
         "Metrics": { 
            "CostPerHour": value,
            "CostPerInference": value,
            "CpuUtilization": value,
            "MaxInvocations": value,
            "MemoryUtilization": value,
            "ModelLatency": value,
            "ModelSetupTime": value
         },
         "ModelConfiguration": { 
            "Compiled": "False",
            "EnvironmentParameters": [],
            "InferenceSpecificationName": "value"
         },
         "RecommendationId": "value"
      }
   ]
```

サーバーレス推論のレコメンデーションは、リアルタイム推論の結果と同様に解釈できます。ただし、`ServerlessConfig` は例外で、`MemorySizeInMB` が指定され、`MaxConcurrency = 1` のときにサーバーレスエンドポイントに対して返されるメトリクスを示します。エンドポイントで可能なスループットを向上させるには、`MaxConcurrency` の値を直線的に増加します。たとえば、推論レコメンデーションによって `MaxInvocations` が `1000` として示されている場合、`MaxConcurrency` を `2` に増加すると、2000 `MaxInvocations` がサポートされます。これは特定の時点までしか当てはまらず、モデルやコードによって異なる可能性があることに注意してください。サーバーレスレコメンデーションではメトリクス `ModelSetupTime` も測定され、これにより、サーバーレスエンドポイントでコンピューターリソースを起動するのにかかる時間 (マイクロ秒単位) が測定されます。サーバーレスエンドポイントの設定について詳しくは、[サーバーレス推論のドキュメント](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)を参照してください。

------
#### [ Amazon SageMaker Studio Classic ]

推論レコメンデーションは、Studio Classic 内の新しい **[推論レコメンデーション]** タブに表示されます。結果が表示されるまでに最大 45 分かかることがあります。このタブには、**[結果]** と **[詳細]** 列見出しが含まれています。

**[詳細]** 列には、推論レコメンデーションの名前や、ジョブの作成日時 ([**作成日時**]) といった、推論レコメンデーションジョブに関する情報が表示されます。また、1 分あたりに発生した最大呼び出し数や、使用された Amazon リソースネーム (ARN) といった、**[設定]** 情報も表示されます。

**[結果]** 列には、**[デプロイの目標]** と **[SageMaker AI レコメンデーション]** ウィンドウが表示され、デプロイの重要度に基づいて結果が表示される順序を調整できます。ユースケースの **[Cost]** (コスト)、**[Latency]** (レイテンシー)、**[Throughput]** (スループット) の重要レベルを指定できる 3 つのドロップダウンメニューがあります。目標（コスト、レイテンシー、スループット）ごとに、**最小重要度**、**低重要度**、**中重要度**、**高重要度**、または**最高重要度**の重要度のレベルを設定できます。

各目標の重要度の選択に基づいて、Inference Recommender はその最上位レコメンデーションを、パネル右側の **[SageMaker recommendation]** (SageMaker レコメンデーション)フィールドに、時間あたりの推定コストと推論リクエストとともに表示します。また、予想されるモデルのレイテンシー、最大呼び出し数、インスタンス数に関する情報も表示されます。サーバーレスレコメンデーションについては、最大同時実行数とエンドポイントのメモリサイズの理想的な値をご覧ください。

表示される上位のレコメンデーションに加えて、Inference Recommender がテストしたすべてのインスタンスについての同じ情報が**[All runs]** (すべての実行) セクションに表示されます。

------
#### [ SageMaker AI console ]

次の手順を実行して、SageMaker AI コンソールでインスタンスレコメンデーションジョブを表示します。

1. SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) に移動します。

1. 左側のナビゲーションペインで、**[推論]** を選択し、次に **[推論レコメンダー]** を選択します。

1. **[推論レコメンダージョブ]** ページで、推論レコメンデーションジョブの名前を選択します。

ジョブの詳細ページでは、以下のスクリーンショットに示すように、SageMaker AI がモデルに推奨するインスタンスタイプである **[推論のレコメンデーション]** を表示できます。

![\[SageMaker AI コンソールのジョブ詳細ページにある推論レコメンデーションリストのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inf-rec-instant-recs.png)


このセクションでは、**[モデルレイテンシー]**、**[1 時間あたりのコスト]**、**[推論あたりのコスト]**、**[1 分あたりの呼び出し]** などのさまざまな要因でインスタンスタイプを比較できます。

このページでは、ジョブに指定した設定も表示できます。**[モニター]** セクションでは、インスタンスタイプごとに記録された Amazon CloudWatch メトリクスを表示できます。これらのメトリクスの解釈について詳しくは、「[結果の解釈](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-interpret-results.html)」を参照してください。

------

レコメンデーションジョブの結果について詳しくは、「[レコメンデーション結果](inference-recommender-interpret-results.md)」を参照してください。