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.
Contrato de contenedores personalizado para terminales Multi-Model
Para gestionar varios modelos, el contenedor debe admitir un conjunto de API que permitan a Amazon SageMaker AI comunicarse con el contenedor para cargar, publicar, obtener y descargar los modelos según sea necesario. El model_name se utiliza en el nuevo conjunto de API como parámetro de entrada clave. Se espera que el contenedor del cliente realice un seguimiento de los modelos cargados mediante model_name como clave de asignación. Además, model_name es un identificador opaco y no es necesariamente el valor del parámetro TargetModel transferido a la API InvokeEndpoint. El valor TargetModel original en la solicitud InvokeEndpoint se transfiere al contenedor en las API como encabezado X-Amzn-SageMaker-Target-Model que se puede utilizar para fines de registro.
nota
Multi-model Actualmente, los terminales de las instancias respaldadas por GPU solo son compatibles con el contenedor del SageMaker servidor de inferencia NVIDIA Triton de AI. Este contenedor ya implementa el contrato que se define a continuación. Los clientes pueden usar este contenedor directamente con sus puntos de conexión multimodelo de GPU, sin necesidad de realizar ningún trabajo adicional.
Puede configurar las siguientes API en sus contenedores para puntos de conexión multimodelo respaldados por CPU.
API Load Model
Indica al contenedor que cargue un modelo particular presente en el campo url del cuerpo en la memoria del contenedor del cliente y que realice un seguimiento del mismo con el model_name asignado. Después de cargar un modelo, el contenedor debe estar listo para servir solicitudes de inferencia usando este model_name.
POST /models HTTP/1.1 Content-Type: application/json Accept: application/json { "model_name" : "{model_name}", "url" : "/opt/ml/models/{model_name}/model", }
nota
Si model_name ya está cargado, esta API debería devolver 409. Cada vez que no se pueda cargar un modelo por falta de memoria o de cualquier otro recurso, esta API debería devolver un código de estado HTTP 507 a SageMaker AI, que luego iniciará la descarga de los modelos no utilizados para su recuperación.
API List Model
Devuelve la lista de modelos cargados en la memoria del contenedor del cliente.
GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }
Esta API también admite paginación.
GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }
SageMaker Inicialmente, AI puede llamar a la API List Models sin proporcionar un valor para. next_page_token Si se devuelve un campo nextPageToken como parte de la respuesta, se proporcionará como el valor de next_page_token una llamada posterior a List Models. Si no se devuelve un nextPageToken, significa que no hay más modelos para devolver.
API Get Model
Esta es una API de lectura simple en la entidad model_name.
GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
nota
Si model_name no se carga, esta API debería devolver 404.
API Unload Model
Indica a la plataforma de SageMaker IA que dé instrucciones al contenedor del cliente para que descargue un modelo de la memoria. Esto inicia el desalojo de un modelo candidato tal como determina la plataforma al iniciar el proceso de carga de un nuevo modelo. Los recursos aprovisionados a model_name los debe reclamar el contenedor cuando esta API devuelve una respuesta.
DELETE /models/{model_name}
nota
Si model_name no se carga, esta API debería devolver 404.
API Invoke Model
Realiza una solicitud de predicción del model_name particular suministrado. La InvokeEndpoint solicitud SageMaker AI Runtime se admite X-Amzn-SageMaker-Target-Model como un nuevo encabezado que sigue la ruta relativa del modelo especificado para la invocación. El sistema de SageMaker IA construye la ruta absoluta del modelo combinando el prefijo que se proporciona como parte de la llamada a la CreateModel API con la ruta relativa del modelo.
POST /models/{model_name}/invoke HTTP/1.1 Content-Type: ContentType Accept: Accept X-Amzn-SageMaker-Custom-Attributes: CustomAttributes X-Amzn-SageMaker-Target-Model: [relativePath]/{artifactName}.tar.gz
nota
Si model_name no se carga, esta API debería devolver 404.
Además, en las instancias de GPU, si InvokeEndpoint se produce un error por falta de memoria o de otros recursos, esta API debería devolver un código de estado HTTP 507 a la SageMaker IA, que a su vez iniciará la descarga de los modelos no utilizados para su recuperación.