翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マルチモデルエンドポイント用のカスタムコンテナの規約
複数のモデルを処理するには、Amazon SageMaker AI がコンテナと通信して、必要に応じてモデルのロード、一覧表示、取得、アンロードを可能にする一連の APIs をコンテナでサポートする必要があります。model_name
は、キー入力パラメータとして新しい API のセットで使用されます。カスタマーコンテナでは、マッピングキーとして model_name
を使用して、ロードされたモデルを追跡する必要があります。また、model_name
は不透明な識別子であり、必ずしも InvokeEndpoint
API に渡される TargetModel
パラメータの値ではありません。InvokeEndpoint
リクエストの元の TargetModel
値は、ログ記録の目的で使用できる X-Amzn-SageMaker-Target-Model
ヘッダーとして API のコンテナに渡されます。
注記
GPU ベースのインスタンスのマルチモデルエンドポイントは現在、SageMaker AI の NVIDIA Triton Inference Server コンテナでのみサポートされています。このコンテナには、以下に定義されている規約が既に実装されています。顧客は、追加作業なしで、このコンテナをマルチモデルの GPU エンドポイントで直接使用できます。
CPU ベースのマルチモデルエンドポイント用に、次の API をコンテナに設定できます。
Load Model API
本文の url
フィールドにある特定のモデルをカスタマーコンテナのメモリにロードし、割り当てられた model_name
で追跡するように、コンテナに指示します。モデルがロードされたら、コンテナでは、この model_name
を使用して推論リクエストを処理する準備ができています。
POST /models HTTP/1.1 Content-Type: application/json Accept: application/json { "model_name" : "{model_name}", "url" : "/opt/ml/models/{model_name}/model", }
注記
model_name
がすでにロードされている場合、この API は 409 を返します。メモリ不足や他のリソースのためにモデルをロードできない場合、この API は SageMaker AI に 507 HTTP ステータスコードを返し、未使用のモデルのアンロードを開始して再利用する必要があります。
List Model API
カスタマーコンテナのメモリにロードされたモデルのリストを返します。
GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }
この API はページ分割もサポートしています。
GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }
SageMaker AI は、最初に の値を指定せずにモデルのリスト API を呼び出すことができますnext_page_token
。nextPageToken
フィールドがレスポンスの一部として返された場合、後続の List Models コールで next_page_token
の値として渡されます。nextPageToken
が返されなかった場合、返されるモデルがこれ以上ないということです。
Get Model API
これは、model_name
エンティティの単純な読み取り API です。
GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
注記
model_name
がロードされていない場合、この API は 404 を返します。
Unload Model API
SageMaker AI プラットフォームに、モデルをメモリからアンロードするようにカスタマーコンテナに指示します。これにより、新しいモデルのロードプロセスが開始されると、プラットフォームによって候補とされたモデルの削除が開始されます。model_name
にプロビジョニングされたリソースは、この API がレスポンスを返すときにコンテナによって解放される必要があります。
DELETE /models/{model_name}
注記
model_name
がロードされていない場合、この API は 404 を返します。
Invoke Model API
指定された特定の model_name
への予測リクエストを作成します。SageMaker AI ランタイムInvokeEndpoint
リクエストは、呼び出し用に指定されたモデルの相対パスを取る新しいヘッダーX-Amzn-SageMaker-Target-Model
として をサポートします。SageMaker AI システムは、CreateModel
API コールの一部として提供されるプレフィックスをモデルの相対パスと組み合わせることで、モデルの絶対パスを構築します。
POST /models/{model_name}/invoke HTTP/1.1 Content-Type: ContentType Accept: Accept X-Amzn-SageMaker-Custom-Attributes: CustomAttributes X-Amzn-SageMaker-Target-Model: [relativePath]/{artifactName}.tar.gz
注記
model_name
がロードされていない場合、この API は 404 を返します。
さらに、GPU インスタンスでメモリやその他のリソースの不足が原因で がInvokeEndpoint
失敗した場合、この API は SageMaker AI に 507 HTTP ステータスコードを返し、未使用のモデルのアンロードを開始して再利用します。