Amazon SageMaker AI 非同期エンドポイントを呼び出したり作成したりするときに発生する問題をトラブルシューティングしたいです。
簡単な説明
非同期エンドポイントを呼び出すときに発生するエラーを検出するには、エンドポイントの Amazon CloudWatch Logs を確認します。ロググループ名 /aws/sagemaker/Endpoints/example-endpoint-name および、ログストリーム名 example-production-variant-name/example-instance-id/data-log にある CloudWatch Logs を確認します。詳細については、「CloudWatch によるモニタリング」の「一般的なエンドポイントメトリクス」セクションと「非同期推論エンドポイントメトリクス」セクションを参照してください。
解決策
SageMaker AI 非同期エンドポイントを起動または作成するときに発生する問題を、次のエラーに応じてトラブルシューティングします。
ModelError: InvokeEndpoint 操作の呼び出し時にエラーが発生しました (ModelError): プライマリでクライアントエラー (413) が発生し、応答本文全体を読み込むことができませんでした。
ペイロードサイズが 1 GB 未満のときにこのエラーが発生した場合は、非同期エンドポイントの CloudWatch Logs を確認します。さらに、さまざまなサイズのイメージを使用してモデルをローカルでテストし、ペイロードサイズが 1 GB 未満の場合にエラーが発生するかどうかを確認します。
モデルをローカルでデバッグするには、さらにログ記録 (print ステートメント) を実行してから、エラーの原因となっているコードの部分を確認します。モデルをローカルでエラーなしで実行できた場合は、SageMaker AI でそのモデルをホストします。詳細については、GitHub のウェブサイトで「amazon-sagemaker-local-mode」を参照してください。
コード例
import logging
import syslogger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.info("Loading file.")print("Loading file. --> from print statement")
ワーカーのタイムアウト
このエラーは、モデルコンテナ内に ping リクエストと呼び出しリクエストを処理するのに十分な数のワーカーがない場合に発生します。このエラーを解決するには、ワーカーの数と model_server_timeout の値を増やします。
キューをクリアするまで、ApproximateAgeOfOldestRequest の値が頻繁に増加する
この問題は、キューリクエストが効率的にクリアされていない場合に発生します。SageMaker AI の非同期エンドポイントは、先入れ先出し (FIFO) アプローチを採用しています。ただし、モデルの推論時間、リソースの競合、ネットワークの遅延などが、FIFO アプローチに干渉する場合があります。
リクエストがタイムアウトする場合は、InvocationTimeoutSeconds パラメータの値を増やします。このパラメータで、エラーが返されるまでに SageMaker AI が推論の実行を待つ時間を指定します。設定できる最大値は 3600 秒 (1 時間) です。
ApproximateBacklogSizePerInstance を監視する自動スケーリングポリシーを追加することもベストプラクティスです。こうすることで、バックログのサイズに基づいてエンドポイントをスケールアップできるため、リクエストをより迅速に処理できます。
バックログのサイズが大きく、インスタンスの数が増えない
この問題をトラブルシューティングするには、AWS CLI コマンド describe-scalable-target、describe-scaling-policies、describe-scaling-activities を実行します。さらに、エンドポイントの状態が InService であるかどうかを確認します。
関連情報
トラブルシューティング
SageMaker PyTorch デプロイエンドポイントからログを取得したり、ステートメントを出力したりする方法を教えてください
Amazon SageMaker で自動スケーリング推論エンドポイントを設定する
スケーリングポリシーを定義する
amazon-sagemaker-examples(GitHub のウェブサイト)