Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Invocar un punto de conexión multimodelo
Para invocar un punto final multimodelo, utilice el comando from the SageMaker Runtime invoke_endpoint
TargetModel
que especifique cuál de los modelos en el punto de conexión establecer como destino. La InvokeEndpoint
solicitud SageMaker Runtime X-Amzn-SageMaker-Target-Model
se admite como un nuevo encabezado que toma la ruta relativa del modelo especificado para la invocación. El SageMaker sistema construye la ruta absoluta del modelo combinando el prefijo que se proporciona como parte de la CreateModel
API llamada con la ruta relativa del modelo.
Los siguientes procedimientos son los mismos para los puntos finales multimodelo CPU y los GPU respaldados por varios modelos.
El punto de conexión multimodelo carga dinámicamente los modelos de destino según sea necesario. Puede observar esto al ejecutar el cuaderno de MME muestra
nota
En el caso de las instancias GPU respaldadas, el código de HTTP respuesta del GPU contenedor con 507 indica una falta de memoria o de otros recursos. Esto hace que los modelos no utilizados se descarguen del contenedor para cargar los modelos que se utilizan con más frecuencia.
Reintente las solicitudes en caso de errores ModelNotReadyException
La primera vez que llame a invoke_endpoint
para solicitar un modelo, este se descargará de Amazon Simple Storage Service y se cargará en el contenedor de inferencias. Esto hace que la primera llamada tarde más en devolverse. Las llamadas posteriores al mismo modelo finalizan más rápido, porque el modelo ya está cargado.
SageMaker devuelve la respuesta a una llamada en un invoke_endpoint
plazo de 60 segundos. Algunos modelos son demasiado grandes para descargarlos en 60 segundos. Si el modelo no termina de cargarse antes del límite de tiempo de espera de 60 segundos, la solicitud a invoke_endpoint
devuelve el código de error ModelNotReadyException
y el modelo continúa descargándose y cargándose en el contenedor de inferencia durante un máximo de 360 segundos. Si recibe un código de error ModelNotReadyException
para una solicitud invoke_endpoint
, vuelva a intentarlo. De forma predeterminada, las invoke_endpoint
solicitudes de reintento AWS SDKs para Python (Boto 3) (con el modo de reintento heredadoModelNotReadyException
Puede configurar la estrategia de reintento para seguir reintentando la solicitud durante un máximo de 360 segundos. Si espera que su modelo tarde más de 60 segundos en descargarse y cargarse en el contenedor, establezca el tiempo de espera del SDK socket en 70 segundos. Para obtener más información sobre cómo configurar la estrategia de reintento para AWS SDK for Python (Boto3), consulte Configurar un modo de reintentoinvoke_endpoint
durante un máximo de 180 segundos.
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)