翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マルチモデルエンドポイントを呼び出す
マルチモデルエンドポイントを呼び出すには、1 つのモデルエンドポイントを呼び出すのと同じように、1 invoke_endpoint
TargetModel
パラメータを渡します。 SageMaker Runtime InvokeEndpoint
リクエストは、X-Amzn-SageMaker-Target-Model
呼び出し用に指定されたモデルの相対パスをとる新しいヘッダーとしてサポートします。 SageMaker システムは、CreateModel
API 呼び出しの一部として提供されるプレフィックスとモデルの相対パスを組み合わせて、モデルの絶対パスを作成します。
以下の手順は、CPU と GPU ベースのマルチモデルエンドポイントのどちらでも同じです。
マルチモデルエンドポイントは、必要に応じてターゲットモデルを動的にロードします。この状態になるのは、MME サンプルノートブック
注記
GPU ベースのインスタンスの場合、GPU コンテナからの 507 HTTP レスポンスコードは、メモリやその他のリソースが不足していることを示しています。これにより、使用頻度の高いモデルを読み込むために、未使用のモデルがコンテナからアンロードされます。
エラー発生時にリクエストを再試行してください。 ModelNotReadyException
モデルに対して初めて invoke_endpoint
を呼び出す場合、モデルは Amazon Simple Storage Service からダウンロードされ、推論コンテナにロードされます。そのため、最初の呼び出しがレスポンスを返すまでには時間がかかります。モデルがすでにロードされているため、その後の同じモデルへの呼び出しはより早く完了します。
SageMaker 60 invoke_endpoint
秒以内に呼び出しに対する応答を返します。一部のモデルはサイズが大きく、60 秒以内にダウンロードできない場合があります。60 秒のタイムアウト制限より前にモデルのロードを完了できない場合、invoke_endpoint
のリクエストはエラーコード ModelNotReadyException
を返し、モデルは最大 360 秒間、推論コンテナへのダウンロードとロードを続けます。invoke_endpoint
リクエストからエラーコード ModelNotReadyException
を取得した場合は、リクエストを再試行してください。デフォルトでは、Python (Boto 3) の AWS SDK (レガシー再試行モードを使用invoke_endpoint
エラーの原因となるリクエストを再試行します。ModelNotReadyException
再試行の方法は、リクエストの再試行を最大 360 秒間継続するように設定できます。コンテナへのモデルのダウンロードとロードに 60 秒以上かかることが予想される場合は、SDK ソケットタイムアウトを 70 秒に設定します。のリトライストラテジーの設定について詳しくは AWS SDK for Python (Boto3)、「リトライモードの設定」を参照してください。invoke_endpoint
の呼び出しを最大 180 秒間再試行する再試行方法を設定する例を示しています。
import boto3 from botocore.config import Config # This example retry strategy sets the retry attempts to 2. # With this setting, the request can attempt to download and/or load the model # for upto 180 seconds: 1 orginal request (60 seconds) + 2 retries (120 seconds) config = Config( read_timeout=70, retries={ 'max_attempts': 2 # This value can be adjusted to 5 to go up to the 360s max timeout } ) runtime_sagemaker_client = boto3.client('sagemaker-runtime', config=config)