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 para contenedores personalizados para puntos de conexión multimodelo
Para gestionar varios modelos, tu contenedor debe ser compatible con un conjunto APIs que permita a Amazon SageMaker AI comunicarse con el contenedor para cargar, publicar, obtener y descargar los modelos según sea necesario. model_name
Se utiliza en el nuevo conjunto de APIs 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 TargetModel
valor original de la InvokeEndpoint
solicitud se pasa al contenedor en APIs forma de X-Amzn-SageMaker-Target-Model
encabezado que se puede usar para fines de registro.
nota
Actualmente, solo se admiten terminales multimodelo para instancias respaldadas por GPU con el contenedor del servidor de inferencia NVIDIA Triton de SageMaker 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 lo siguiente APIs en sus contenedores para los puntos finales multimodelo respaldados por la 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.