1 つのエンドポイントの背後に異なるコンテナを使用する複数のモデルをホストする - Amazon SageMaker

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

1 つのエンドポイントの背後に異なるコンテナを使用する複数のモデルをホストする

SageMaker マルチコンテナエンドポイントを使用すると、異なるモデルまたはフレームワークを使用する複数のコンテナを 1 つの SageMaker エンドポイントにデプロイできます。コンテナは、推論パイプラインとして順番に実行することも、エンドポイントの使用率を向上させ、コストを最適化するために直接呼び出しを使って各コンテナに個別にアクセスすることもできます。

マルチコンテナエンドポイントのコンテナを順番に呼び出す方法については、「ホストモデルと前処理ロジックを1つのエンドポイントの背後にあるシリアル推論パイプラインとして使用」を参照してください。

マルチコンテナエンドポイントの特定のコンテナを呼び出す方法については、「直接呼び出しが設定されたマルチコンテナエンドポイントを使う」を参照してください。

マルチコンテナエンドポイントを作成する (Boto3)

他のエンドポイントを作成する場合と同様にCreateModel、、CreateEndpointConfig、および CreateEndpoint APIs を呼び出してマルチコンテナエンドポイントを作成します。これらのコンテナは、推論パイプラインとして順番に実行することも、直接呼び出しを使ってコンテナを 1 つずつ実行することもできます。create_model を呼び出す場合、マルチコンテナエンドポイントは次の要件を満たす必要があります。

  • PrimaryContainer パラメータの代わりに Containers パラメータを使い、複数のコンテナを Containers パラメータに含めます。

  • 直接呼び出しを使う場合は、マルチコンテナエンドポイント内の各コンテナに ContainerHostname パラメータが必要です。

  • 各コンテナの直接呼び出しには InferenceExecutionConfig フィールドの Mode パラメータを Direct に設定するか、または Serial を設定してコンテナを推論パイプラインとして使います。デフォルトモードは Serial です。

注記

現在、マルチコンテナエンドポイントでサポートされるコンテナは最大 15 個に制限されています。

次の例では、直接呼び出し用のマルチコンテナモデルを作成します。

  1. コンテナの要素と直接呼び出しに設定した 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'}
  2. コンテナ要素を使ってモデルを作成し、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_configcreate_endpoint を呼び出します (他のエンドポイントを作成する場合と同様です)。

マルチコンテナエンドポイントを更新する

マルチコンテナエンドポイントを更新するには、次のステップを実行します。

  1. create_model を呼び出して、InferenceExecutionConfig フィールドの Mode パラメータに新しい値を持つ新しいモデルを作成します。

  2. create_endpoint_config を呼び出して、前のステップで作成した新しいモデルを使い、別の名前で新しいエンドポイント設定を作成します。

  3. update_endpoint を呼び出して、前のステップで作成した新しいエンドポイント設定を使い、エンドポイントを更新します。

マルチコンテナエンドポイントを削除する

エンドポイントを削除するには、delete_endpoint を呼び出し、EndpointName パラメータに削除するエンドポイントの名前を指定します。