翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Inference Recommender エラーのトラブルシューティング
このセクションでは、一般的なエラーを理解して防止する方法、それらが生成するエラーメッセージ、これらのエラーを解決する方法に関するガイダンスについて説明します。
トラブルシューティング方法
次の手順を実行することによって、エラーの解決を試みます。
-
Inference Recommender を使用するための前提条件をすべて満たしているかどうかを確認します。Inference Recommender の前提条件を参照してください。
-
モデルをモデルレジストリからエンドポイントにデプロイできること、およびペイロードをエラーなく処理できることを確認します。「Deploy a Model from the Registry」を参照してください。
-
Inference Recommender のジョブを開始すると、作成されるエンドポイントがコンソールに表示され、CloudWatch ログを確認できます。
一般的なエラー
Inference Recommender の一般的なエラーとその解決方法については、以下の表をご覧ください。
エラー | 解決策 |
---|---|
モデルパッケージのバージョン 1 で |
必ず機械学習ドメインを指定してください。不明な場合は、 |
指定したロール ARN が引き受けられず、 |
指定した実行ロールに、前提条件で指定された必要な許可が付与されていることを確認してください。 |
モデルパッケージのバージョン 1 で |
必ず機械学習フレームワークを指定してください。不明な場合は、 |
前フェーズの終了時のユーザー数が 0 で、現在のフェーズの初期ユーザー数は 1 です。 |
ここでいうユーザーとは、リクエストの送信に使用される仮想ユーザーまたはスレッドを指します。各フェーズは A ユーザーで始まり、B > A というように B ユーザーで終わります。連続するフェーズ x_1 と x_2 の間では、abs(x_2.A - x_1.B) <= 3 および >= 0 となる必要があります。 |
総トラフィック時間 (全体) はジョブ時間を超えてはいけません。 |
すべてのフェーズの合計期間がジョブ時間を超えることはできません。 |
バースト可能なインスタンスタイプ ml.t2.medium は使用できません。 |
バースト可能なインスタンスでは一貫したパフォーマンスが得られないため、Inference Recommender は t2 インスタンスファミリーでのロードテストをサポートしていません。 |
CreateEndpoint オペレーション呼び出し時の ResourceLimitExceeded |
SageMaker AI リソースの制限を超えました。たとえば、アカウントがエンドポイントのクォータに達した場合、Inference Recommender はベンチマーク用のエンドポイントをプロビジョニングできなくなる可能性があります。SageMaker AI の制限とクォータの詳細については、Amazon SageMaker AI エンドポイントとクォータ」を参照してください。 |
InvokeEndpoint オペレーション呼び出し時の ModelError |
モデルエラーは、次の理由で発生する可能性があります。
|
InvokeEndpoint オペレーション呼び出し時の PayloadError |
ペイロードエラーは、次の理由で発生する可能性があります。
|
CloudWatch をチェックする
Inference Recommender のジョブを開始すると、作成されるエンドポイントがコンソールに表示されます。いずれかのエンドポイントを選択し、CloudWatch ログを表示して 4xx/5xx エラーがないかを監視します。Inference Recommender ジョブが成功すると、結果の一部としてエンドポイント名が表示されます。Inference Recommender ジョブが失敗した場合でも、以下の手順に従って、削除されたエンドポイントの CloudWatch ログを確認できます。
-
https://console.aws.amazon.com/cloudwatch/
で Amazon CloudWatch コンソールを開きます。 -
右上の [リージョン] ドロップダウンリストから、Inference Recommender ジョブを作成したリージョンを選択します。
-
CloudWatch のナビゲーションペインで、[ログ]、[ロググループ] の順に選択します。
-
/aws/sagemaker/Endpoints/sm-epc-*
という名前のロググループを検索します。最新の Inference Recommender ジョブに基づいてロググループを選択します。
Inference Recommender CloudWatch ログを確認して、ジョブのトラブルシューティングを行うこともできます。/aws/sagemaker/InferenceRecommendationsJobs
CloudWatch ロググループで発行される Inference Recommender ログでは、
ログストリームでジョブの進行状況に関する概要が示されます。テスト中の各エンドポイント設定に関する詳細情報は、<jobName>
/execution
ログストリームで確認できます。<jobName>
/Endpoint/<endpointName>
Inference Recommender ログストリームの概要
-
には、ベンチマークが予定されているエンドポイント設定、コンパイルジョブのスキップ理由、検証失敗理由など、ジョブ全体の情報が含まれています。<jobName>
/execution -
には、リソース作成の進捗状況、テスト設定、ロードテストの停止理由、リソースのクリーンアップステータスなどの情報が含まれています。<jobName>
/Endpoint/<endpointName>
-
には、Inference Recommender によって作成されたコンパイルジョブに関する情報 (コンパイルジョブの構成やコンパイルジョブのステータスなど) が含まれています。<jobName>
/CompilationJob/<compilationJobName>
Inference Recommender のエラーメッセージのアラームを作成する
Inference Recommender は、トラブルシューティング時に役立つエラーのログステートメントを出力します。CloudWatch ロググループとメトリクスフィルターを使用すると、データが CloudWatch に送信された時に、このログデータの用語やパターンを検索することができます。次に、ロググループのメトリクスフィルターに基づいて CloudWatch アラームを作成します。詳細については、「ロググループのメトリクスフィルターに基づく CloudWatch アラームの作成」を参照してください。
ベンチマークをチェックする
Inference Recommender ジョブを開始すると、Inference Recommender によって複数のベンチマークが作成され、さまざまなインスタンスタイプのモデルのパフォーマンスが評価されます。ListInferenceRecommendationsJobSteps API を使用すると、すべてのベンチマークの詳細を表示できます。ベンチマークが失敗した場合は、結果の一部として失敗の理由を確認できます。
ListInferenceRecommendationsJobSteps API を使用するには、以下の値を指定します。
-
JobName
には、Inference Recommender ジョブの名前を指定します。 -
StepType
には、BENCHMARK
を使用して、ジョブのベンチマークに関する詳細情報を返します。 -
Status
には、FAILED
を使用して、失敗したベンチマークのみに関する詳細情報を返します。他のステータスタイプのリストについては、ListInferenceRecommendationsJobSteps API のStatus
フィールドを参照してください。
# Create a low-level SageMaker service client. import boto3 aws_region =
'<region>'
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide the job name for the SageMaker Inference Recommender job job_name ='<job-name>'
# Filter for benchmarks step_type = 'BENCHMARK' # Filter for benchmarks that have a FAILED status status = 'FAILED' response = sagemaker_client.list_inference_recommendations_job_steps( JobName = job_name, StepType = step_type, Status = status )
レスポンスオブジェクトは、印刷して結果を表示できます。前のコード例では、response
と呼ばれる変数にレスポンスが保存されています。
print(response)