本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
調用多模型端點
若要叫用多模型端點,請從 invoke_endpoint
TargetModel
參數,指定要將目標鎖定於端點的哪些模型。SageMaker AI Runtime InvokeEndpoint
請求支援 X-Amzn-SageMaker-Target-Model
做為新標頭,該標頭採用指定用於調用之模型的相對路徑。SageMaker AI 系統會將 CreateModel
API 呼叫中提供的字首與模型的相對路徑結合,以建構模型的絕對路徑。
對於 CPU 與 GPU 支援的多模型端點,下列程序相同。
多模型端點會視需要動態載入目標模型。您可以在執行 MME 範例筆記本
注意
對於 GPU 支援的執行個體,若 GPU 容器含有 507 的 HTTP 回應碼,表示記憶體或其他資源不足。這會導致未使用的模型從容器卸載,以便載入更常用的模型。
針對 ModelNotReadyException 錯誤重試請求
當您第一次呼叫 invoke_endpoint
模型時,系統會從 Amazon Simple Storage Service 下載該模型,並載入推論容器。這會導致第一次呼叫需要更長時間才能返回。由於模型已載入,因此後續對相同模型的呼叫會較快完成。
SageMaker AI 會在 60 秒invoke_endpoint
內傳回呼叫 的回應。部分模型太大,無法在 60 秒內下載。如模型未在 60 秒逾時限制之前完成載入,則對 invoke_endpoint
提出的請求會傳回錯誤碼 ModelNotReadyException
,且模型會繼續下載並載入推論容器,最長可達 360 秒。如您收到 invoke_endpoint
請求的 ModelNotReadyException
錯誤碼,請重試請求。根據預設,Python (Boto 3) AWS SDKs (使用舊版重試模式invoke_endpoint
請求會導致ModelNotReadyException
錯誤。您可設定重試策略,以便繼續重試請求長達 360 秒。如您預估模型下載並載入容器需要超過 60 秒,請設定 SDK 插槽逾時為 70 秒。如需進一步資訊了解如何針對 AWS SDK for Python (Boto3)設定重試策略,請參閱設定重試模式invoke_endpoint
,最長可達 180 秒。
import boto3 from botocore.config import Config # This example retry strategy sets the retry attempts to 2. # With this setting, the request can attempt to download and/or load the model # for upto 180 seconds: 1 orginal request (60 seconds) + 2 retries (120 seconds) config = Config( read_timeout=70, retries={ 'max_attempts': 2 # This value can be adjusted to 5 to go up to the 360s max timeout } ) runtime_sagemaker_client = boto3.client('sagemaker-runtime', config=config)