本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用多模型端点
要调用多模型端点,请使用 SageMaker 运行时invoke_endpoint
TargetModel
参数,该参数指定要定向到端点上的哪些模型。 SageMaker 运行时InvokeEndpoint
请求支持X-Amzn-SageMaker-Target-Model
作为新的标头,该标头采用为调用指定的模型的相对路径。 SageMaker 系统通过将CreateModel
API调用中提供的前缀与模型的相对路径相结合来构造模型的绝对路径。
两个CPUGPU支持的多模型端点的以下过程相同。
多模型端点会根据需要动态地加载目标模型。在运行 Samp MMEle Notebook
注意
对于GPU支持的实例,GPU容器中带有 507 的HTTP响应代码表示内存或其他资源不足。这会导致从容器中卸载未使用的模型,以便加载更常用的模型。
出错时重试请求 ModelNotReadyException
首次为模型调用 invoke_endpoint
时,会从 Amazon Simple Storage Service 下载模型并将其加载到推理容器中。因此需要更长的时间才能返回第一次调用。由于模型已加载完毕,因此对同一模型的后续调用会更快地完成。
SageMaker invoke_endpoint
在 60 秒内返回呼叫的响应。有些模型太大,无法在 60 秒内下载。如果模型未在 60 秒超时限制之前完成加载,则对 invoke_endpoint
的请求将返回错误代码 ModelNotReadyException
,会继续下载模型并将其加载到推理容器中,最长 360 秒。如果您收到 invoke_endpoint
请求的 ModelNotReadyException
错误代码,重试该请求。默认情况下,会导致错误 AWS SDKs的 Python(Boto 3)(使用旧版重试模式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)