部署多容器终端节点 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

部署多容器终端节点

SageMaker 多容器终端节点使客户能够部署多个容器以在SageMaker终端节点上部署不同的模型。容器可作为推理管道按顺序运行,或者每个容器可通过使用直接调用来单独访问,以提高终端节点利用率并优化成本。

有关按顺序调用多容器终端节点中的容器的信息,请参阅部署推理管道

有关在多容器终端节点中调用特定容器的信息,请参阅 将多容器终端节点与直接调用结合使用

创建多容器终端节点 (Boto 3)

通过调用 create_model、create_endpoint_config create_endpoint APIs 创建多容器终端节点,就像您创建任何其他终端节点一样。您可以按顺序将这些容器作为推理管道运行,或者使用直接调用来运行每个单独的容器。当您调用 时,多容器终端节点具有以下要求create_model

  • 使用 Containers 参数而不是 PrimaryContainer,并在 Containers 参数中包含多个容器。

  • 对于具有直接调用的多容器终端节点中的每个容器,都需要 ContainerHostname 参数。

  • Mode 字段的 InferenceExecutionConfig 参数设置为 Direct 以直接调用每个容器,或者设置为 Serial 以使用容器作为推理管道。默认模式为 Serial

注意

目前,多容器终端节点上最多支持 5 个容器。

以下示例为直接调用创建多容器模型。

  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])

要创建 Inteint,您可以像创建任何其他终端节点一样调用 create_endpoint_confighttps://docs.aws.amazon.com/https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint create_endpoint。

更新多容器终端节点

要更新多容器终端节点,请完成以下步骤。

  1. 调用 create_model 以使用 Mode 字段中的 InferenceExecutionConfig 参数的新值创建新模型。

  2. 调用 create_endpoint_config 以使用您在上一步中创建的新模型创建具有不同名称的新终端节点配置。

  3. 调用 update_endpoint 以使用您在上一步中创建的新终端节点配置更新终端节点。

删除多容器终端节点

要删除终端节点,请调用 delete_endpoint,并提供要删除的终端节点的名称作为 EndpointName 参数。