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.
Tópicos
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.