推論レコメンデーションジョブの結果を取得する - Amazon SageMaker AI

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

推論レコメンデーションジョブの結果を取得する

、、 AWS CLI Studio Classic AWS SDK for Python (Boto3)、または 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 ネストされたディクショナリには、インスタンスタイプ (InstanceType) のレコメンデーションと、レコメンデーションジョブ中に使用されたエンドポイントとバリアント名 (デプロイされた AWS 機械学習モデル) が含まれます。Amazon CloudWatch Events でのモニタリングには、エンドポイントとバリアント名を使用できます。詳細については、「Amazon で Amazon SageMaker AI をモニタリングするためのメトリクス CloudWatch」を参照してください。

Metrics ネストされたディクショナリには、リアルタイムエンドポイントの 1 時間あたりの推定コスト (CostPerHour)、リアルタイムエンドポイントの推論あたりの推定コスト (CostPerInference)、エンドポイントに送信される 1 分あたりの予想最大InvokeEndpointリクエスト数 (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 の値を直線的に増加します。たとえば、推論レコメンデーションによって MaxInvocations1000 として示されている場合、MaxConcurrency2 に増加すると、2000 MaxInvocations がサポートされます。これは特定の時点までしか当てはまらず、モデルやコードによって異なる可能性があることに注意してください。サーバーレスレコメンデーションではメトリクス ModelSetupTime も測定され、これにより、サーバーレスエンドポイントでコンピューターリソースを起動するのにかかる時間 (マイクロ秒単位) が測定されます。サーバーレスエンドポイントの設定について詳しくは、サーバーレス推論のドキュメントを参照してください。

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

Metrics ネストされたディクショナリには、リアルタイムエンドポイントの 1 時間あたりの推定コスト (CostPerHour)、リアルタイムエンドポイントの推論あたりの推定コスト (CostPerInference)、エンドポイントに送信される 1 分あたりの予想最大InvokeEndpointリクエスト数 (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 の値を直線的に増加します。たとえば、推論レコメンデーションによって MaxInvocations1000 として示されている場合、MaxConcurrency2 に増加すると、2000 MaxInvocations がサポートされます。これは特定の時点までしか当てはまらず、モデルやコードによって異なる可能性があることに注意してください。サーバーレスレコメンデーションではメトリクス ModelSetupTime も測定され、これにより、サーバーレスエンドポイントでコンピューターリソースを起動するのにかかる時間 (マイクロ秒単位) が測定されます。サーバーレスエンドポイントの設定について詳しくは、サーバーレス推論のドキュメントを参照してください。

Amazon SageMaker Studio Classic

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

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

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

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

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

SageMaker AI console

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

  1. の SageMaker AI コンソールに移動しますhttps://console.aws.amazon.com/sagemaker/

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

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

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

SageMaker AI コンソールのジョブの詳細ページの推論レコメンデーションリストのスクリーンショット。

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

このページでは、ジョブに指定した設定も表示できます。Monitor セクションでは、インスタンスタイプごとにログに記録された Amazon CloudWatch メトリクスを表示できます。これらのメトリクスの解釈について詳しくは、「結果の解釈」を参照してください。

レコメンデーションジョブの結果について詳しくは、「レコメンデーション結果」を参照してください。