本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
託管在單一端點後使用不同容器的多個模型
SageMaker 多容器端點可讓客戶在單一 SageMaker 端點上部署使用不同模型或架構的多個容器。容器可按順序作為推論管道執行,或者透過直接叫用個別存取每個容器,以提高端點使用率並最佳化成本。
如需有關如何依序調用多容器端點中容器的資訊,請參閱 主機模型以及預處理邏輯作為一個端點後面的序列推論管道。
如需有關調用多容器端點中特定容器的資訊,請參閱 使用具有直接叫用的多容器端點
建立多容器端點 (Boto 3)
透過呼叫CreateModel、和 CreateEndpointAPI 來建立多容器端點 CreateEndpointConfig,就像建立任何其他端點一樣。您可以循序執行這些容器作為推論管道,或使用直接叫用來執行每個個別的容器。多容器端點在您呼叫 create_model
時具有下列要求:
-
請改用
Containers
參數而非PrimaryContainer
,並在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
參數之端點名稱。