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 de enlace multimodelo, utilice invoke_endpoint
TargetModel
que especifique cuál de los modelos en el punto de conexión establecer como destino. La solicitud InvokeEndpoint
en tiempo de ejecución de SageMaker admite X-Amzn-SageMaker-Target-Model
como nuevo encabezado que toma la ruta relativa del modelo especificado para la invocación. El sistema de SageMaker construye la ruta absoluta del modelo combinando el prefijo que se proporciona como parte de la llamada a la API CreateModel
con la ruta relativa del modelo.
Los siguientes procedimientos son los mismos para los puntos de conexión multimodelo respaldados por CPU y GPU.
El punto de conexión multimodelo carga dinámicamente los modelos de destino según sea necesario. Esto se puede observar al ejecutar el Cuaderno de muestras de MME
nota
En el caso de las instancias respaldadas por GPU, el código de respuesta HTTP con 507 del contenedor de la GPU 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.
Reintentar solicitudes en caso de errores de 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 a invoke_endpoint
en un plazo máximo 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, los SDK AWS para Python (Boto 3) (que utilizan el modo de reintento heredadoinvoke_endpoint
que generan errores ModelNotReadyException
. 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 socket del SDK 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)