翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
1 つのエンドポイントの背後に異なるコンテナを使用する複数のモデルをホストする
SageMaker マルチコンテナエンドポイントを使用すると、異なるモデルまたはフレームワークを使用する複数のコンテナを 1 つの SageMaker エンドポイントにデプロイできます。コンテナは、推論パイプラインとして順番に実行することも、エンドポイントの使用率を向上させ、コストを最適化するために直接呼び出しを使って各コンテナに個別にアクセスすることもできます。
マルチコンテナエンドポイントのコンテナを順番に呼び出す方法については、「1 つのエンドポイントの背後にあるシリアル推論パイプラインとして前処理ロジックとともにモデルをホストする」を参照してください。
マルチコンテナエンドポイントの特定のコンテナを呼び出す方法については、「直接呼び出しが設定されたマルチコンテナエンドポイントを使う」を参照してください。
マルチコンテナエンドポイントを作成する (Boto3)
他のエンドポイントを作成する場合と同様にCreateModel、、CreateEndpointConfig、および CreateEndpoint APIs を呼び出してマルチコンテナエンドポイントを作成します。これらのコンテナは、推論パイプラインとして順番に実行することも、直接呼び出しを使ってコンテナを 1 つずつ実行することもできます。create_model
を呼び出す場合、マルチコンテナエンドポイントは次の要件を満たす必要があります。
-
PrimaryContainer
パラメータの代わりにContainers
パラメータを使い、複数のコンテナをContainers
パラメータに含めます。 -
直接呼び出しを使う場合は、マルチコンテナエンドポイント内の各コンテナに
ContainerHostname
パラメータが必要です。 -
各コンテナの直接呼び出しには
InferenceExecutionConfig
フィールドのMode
パラメータをDirect
に設定するか、またはSerial
を設定してコンテナを推論パイプラインとして使います。デフォルトモードはSerial
です。
注記
現在、マルチコンテナエンドポイントでサポートされるコンテナは最大 15 個に制限されています。
次の例では、直接呼び出し用のマルチコンテナモデルを作成します。
-
コンテナの要素と直接呼び出しに設定した
InferenceExecutionConfig
を作成します。container1 = { 'Image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myimage1:mytag', 'ContainerHostname': 'firstContainer' } container2 = { 'Image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myimage2:mytag', 'ContainerHostname': 'secondContainer' } inferenceExecutionConfig = {'Mode': 'Direct'}
-
コンテナ要素を使ってモデルを作成し、
InferenceExecutionConfig
フィールドを設定します。import boto3 sm_client = boto3.Session().client('sagemaker') response = sm_client.create_model( ModelName = 'my-direct-mode-model-name', InferenceExecutionConfig = inferenceExecutionConfig, ExecutionRoleArn = role, Containers = [container1, container2] )
エンドポイントを作成するには、次に create_endpoint_config
マルチコンテナエンドポイントを更新する
マルチコンテナエンドポイントを更新するには、次のステップを実行します。
-
create_model
を呼び出して、 InferenceExecutionConfig
フィールドのMode
パラメータに新しい値を持つ新しいモデルを作成します。 -
create_endpoint_config
を呼び出して、前のステップで作成した新しいモデルを使い、別の名前で新しいエンドポイント設定を作成します。 -
update_endpoint
を呼び出して、前のステップで作成した新しいエンドポイント設定を使い、エンドポイントを更新します。
マルチコンテナエンドポイントを削除する
エンドポイントを削除するには、delete_endpointEndpointName
パラメータに削除するエンドポイントの名前を指定します。