Inference Recommender エラーのトラブルシューティング - Amazon SageMaker

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

Inference Recommender エラーのトラブルシューティング

このセクションでは、一般的なエラーを理解して防止する方法、それらが生成するエラーメッセージ、これらのエラーを解決する方法に関するガイダンスについて説明します。

トラブルシューティング方法

次の手順を実行することによって、エラーの解決を試みます。

  • Inference Recommender を使用するための前提条件をすべて満たしているかどうかを確認します。Inference Recommender の前提条件を参照してください。

  • モデルをモデルレジストリからエンドポイントにデプロイできること、およびペイロードをエラーなく処理できることを確認します。「Deploy a Model from the Registry」を参照してください。

  • Inference Recommender ジョブを開始すると、コンソールにエンドポイントが作成され、 CloudWatch ログを確認できます。

一般的なエラー

Inference Recommender の一般的なエラーとその解決方法については、以下の表をご覧ください。

エラー 解決策

モデルパッケージのバージョン 1 で Domain を指定してください。Domain はジョブの必須パラメータです。

ML ドメインを指定するか、不明なOTHER場合は指定してください。

指定されたロールを引き受けるARNことができず、AWSSecurityTokenServiceExceptionエラーが発生しました。

指定した実行ロールに、前提条件で指定された必要な許可が付与されていることを確認してください。

モデルパッケージのバージョン 1 で Framework を指定します。Framework はジョブの必須パラメータです。

必ず機械学習フレームワークを指定してください。不明な場合は、OTHER を入力します。

前フェーズの終了時のユーザー数が 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 インスタンスファミリーでのロードテストをサポートしていません。

ResourceLimitExceeded オペレーションを呼び出す CreateEndpointとき

SageMaker リソースの制限を超えました。たとえば、アカウントがエンドポイントのクォータに達した場合、Inference Recommender はベンチマーク用のエンドポイントをプロビジョニングできなくなる可能性があります。 SageMaker 制限とクォータの詳細については、「Amazon SageMaker エンドポイントとクォータ」を参照してください。

ModelError InvokeEndpoint オペレーションを呼び出すとき

モデルエラーは、次の理由で発生する可能性があります。

  • モデルコンテナからのレスポンスを待っている間に呼び出しがタイムアウトした。

  • モデルが入力ペイロードを処理できなかった。

PayloadError InvokeEndpoint オペレーションを呼び出すとき

ペイロードエラーは、次の理由で発生する可能性があります。

  • ペイロードソースが Amazon S3 バケットにない。

  • ペイロードがファイル以外のオブジェクト形式である。

  • ペイロードのファイルタイプが無効である。たとえば、モデルでは画像タイプのペイロードを想定していたが、テキストファイルが渡された場合などです。

  • ペイロードが空である。

チェック CloudWatch

Inference Recommender のジョブを開始すると、作成されるエンドポイントがコンソールに表示されます。エンドポイントの 1 つを選択し、4xx/5xx エラーがないかモニタリングする CloudWatch ログを表示します。Inference Recommender ジョブが成功すると、結果の一部としてエンドポイント名が表示されます。Inference Recommender ジョブが失敗した場合でも、以下の手順に従って、削除されたエンドポイントの CloudWatch ログを確認できます。

  1. で Amazon CloudWatch コンソールを開きますhttps://console.aws.amazon.com/cloudwatch/

  2. 右上の [リージョン] ドロップダウンリストから、Inference Recommender ジョブを作成したリージョンを選択します。

  3. のナビゲーションペインで CloudWatch、ログ を選択し、ロググループ を選択します。

  4. /aws/sagemaker/Endpoints/sm-epc-* という名前のロググループを検索します。最新の Inference Recommender ジョブに基づいてロググループを選択します。

Inference Recommender CloudWatch ログを確認することで、ジョブのトラブルシューティングを行うこともできます。ロググループで公開される Inference Recommender /aws/sagemaker/InferenceRecommendationsJobs CloudWatch ログは、<jobName>/executionログストリーム内のジョブの進行状況の概要を表示します。テスト中の各エンドポイント設定に関する詳細情報は、<jobName>/Endpoint/<endpointName> ログストリームで確認できます。

Inference Recommender ログストリームの概要

  • <jobName>/execution には、ベンチマークが予定されているエンドポイント設定、コンパイルジョブのスキップ理由、検証失敗理由など、ジョブ全体の情報が含まれています。

  • <jobName>/Endpoint/<endpointName> には、リソース作成の進捗状況、テスト設定、ロードテストの停止理由、リソースのクリーンアップステータスなどの情報が含まれています。

  • <jobName>/CompilationJob/<compilationJobName> には、Inference Recommender によって作成されたコンパイルジョブに関する情報 (コンパイルジョブの構成やコンパイルジョブのステータスなど) が含まれています。

Inference Recommender のエラーメッセージのアラームを作成する

Inference Recommender は、トラブルシューティング時に役立つエラーのログステートメントを出力します。 CloudWatch ロググループとメトリクスフィルターを使用すると、データが に送信されるときに、このログデータの用語とパターンを検索できます CloudWatch。次に、ロググループのメトリクスフィルターに基づいて CloudWatch アラームを作成できます。詳細については、「ロググループメトリクスフィルター に基づいて CloudWatch アラームを作成する」を参照してください。

ベンチマークをチェックする

Inference Recommender ジョブを開始すると、Inference Recommender によって複数のベンチマークが作成され、さまざまなインスタンスタイプのモデルのパフォーマンスが評価されます。を使用してListInferenceRecommendationsJobStepsAPI、すべてのベンチマークの詳細を表示できます。ベンチマークが失敗した場合は、結果の一部として失敗の理由を確認できます。

を使用するにはListInferenceRecommendationsJobStepsAPI、次の値を指定します。

  • JobName には、Inference Recommender ジョブの名前を指定します。

  • StepType には、BENCHMARK を使用して、ジョブのベンチマークに関する詳細情報を返します。

  • Status には、FAILED を使用して、失敗したベンチマークのみに関する詳細情報を返します。その他のステータスタイプのリストについては、「」のStatus「」フィールドを参照してくださいListInferenceRecommendationsJobStepsAPI。

# 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)