Contrato para contêineres personalizados para endpoints multimodelo - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Contrato para contêineres personalizados para endpoints multimodelo

Para lidar com vários modelos, seu contêiner deve suportar um conjunto APIs que permita que a Amazon SageMaker AI se comunique com o contêiner para carregar, listar, obter e descarregar modelos conforme necessário. O model_name é usado no novo conjunto de APIs como o principal parâmetro de entrada. Espera-se que o contêiner do cliente acompanhe os modelos carregados usando model_name como chave de mapeamento. Além disso, o model_name é um identificador opaco e não é necessariamente o valor do parâmetro TargetModel passado para a API InvokeEndpoint. O TargetModel valor original na InvokeEndpoint solicitação é passado para o contêiner APIs como um X-Amzn-SageMaker-Target-Model cabeçalho que pode ser usado para fins de registro.

nota

Atualmente, endpoints multimodelo para instâncias com suporte de GPU são compatíveis somente com o contêiner NVIDIA Triton Inference Server da SageMaker AI. Esse contêiner já implementa o contrato definido abaixo. Os clientes podem usar esse contêiner diretamente com seus endpoints de GPU multimodelo, sem nenhum trabalho adicional.

Você pode configurar o seguinte APIs em seus contêineres para endpoints multimodelo suportados por CPU.

API para carregar modelo

Instrui o contêiner a carregar um modelo específico presente no campo url do corpo na memória do contêiner do cliente e a manter o controle dele com o model_name atribuído. Depois que um modelo é carregado, o contêiner deve estar pronto para atender a solicitações de inferência usando esse 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

Se model_name já estiver carregado, a API deverá retornar 409. Sempre que um modelo não puder ser carregado devido à falta de memória ou a qualquer outro recurso, essa API deve retornar um código de status HTTP 507 para a SageMaker IA, que então inicia o descarregamento de modelos não utilizados para recuperação.

API para listar modelo

Retorna a lista de modelos carregados na memória do contêiner do 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", }, .... ] }

Essa API também oferece apoio à paginação.

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, a IA pode chamar a API List Models sem fornecer um valor paranext_page_token. Se um campo nextPageToken for retornado como parte da resposta, ele será fornecido como o valor para next_page_token em uma chamada subsequente da List Models. Se um nextPageToken não for retornado, significa que não há mais modelos para retornar.

API para obter modelo

Essa é uma API de leitura simples na entidade model_name.

GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
nota

Se model_name não estiver carregado, a API retornará 404.

API para descarregar modelo

Instrui a plataforma de SageMaker IA a instruir o contêiner do cliente a descarregar um modelo da memória. Isso inicia a remoção de um modelo candidato conforme determinado pela plataforma ao iniciar o processo de carregamento de um novo modelo. Os recursos provisionados em model_name deverão ser recuperados pelo contêiner quando essa API retornar uma resposta.

DELETE /models/{model_name}
nota

Se model_name não estiver carregado, a API retornará 404.

API para invocar modelo

Faz uma solicitação de predição do model_name específico fornecido. A InvokeEndpoint solicitação do SageMaker AI Runtime é compatível X-Amzn-SageMaker-Target-Model com um novo cabeçalho que segue o caminho relativo do modelo especificado para invocação. O sistema de SageMaker IA constrói o caminho absoluto do modelo combinando o prefixo fornecido como parte da chamada da CreateModel API com o caminho relativo do 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

Se model_name não estiver carregado, a API retornará 404.

Além disso, em instâncias de GPU, se InvokeEndpoint falhar devido à falta de memória ou de outros recursos, essa API deve retornar um código de status HTTP 507 para a SageMaker IA, que então inicia o descarregamento de modelos não utilizados para recuperação.