託管在單一端點後使用不同容器的多個模型 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

託管在單一端點後使用不同容器的多個模型

SageMaker 多容器端點可讓客戶在單一 SageMaker 端點上部署使用不同模型或架構的多個容器。容器可按順序作為推論管道執行,或者透過直接叫用個別存取每個容器,以提高端點使用率並最佳化成本。

如需有關如何依序調用多容器端點中容器的資訊,請參閱 主機模型以及預處理邏輯作為一個端點後面的序列推論管道

如需有關調用多容器端點中特定容器的資訊,請參閱 使用具有直接叫用的多容器端點

建立多容器端點 (Boto 3)

透過呼叫CreateModel、和 CreateEndpointAPI 來建立多容器端點 CreateEndpointConfig,就像建立任何其他端點一樣。您可以循序執行這些容器作為推論管道,或使用直接叫用來執行每個個別的容器。多容器端點在您呼叫 create_model時具有下列要求:

  • 請改用 Containers參數而非 PrimaryContainer,並在 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參數之端點名稱。