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 de vários modelos
Para lidar com vários modelos, seu contêiner deve suportar um conjunto APIs que permita que SageMaker a Amazon 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, model_name
é um identificador opaco e não é necessariamente o valor do TargetModel
parâmetro passado para o. InvokeEndpoint
API 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 de vários modelos para instâncias com GPU suporte são compatíveis somente com o contêiner Triton Inference SageMaker Server da NVIDIA Triton. Esse contêiner já implementa o contrato definido abaixo. Os clientes podem usar esse contêiner diretamente com seus GPU endpoints multimodelo, sem nenhum trabalho adicional.
Você pode configurar o seguinte APIs em seus contêineres para endpoints multimodelo CPU suportados.
Tópicos
Modelo de carga API
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 já model_name
estiver carregado, isso API deve retornar 409. Sempre que um modelo não puder ser carregado devido à falta de memória ou a qualquer outro recurso, ele API deve retornar um código de HTTP status 507 para SageMaker, que então inicia o descarregamento de modelos não utilizados para recuperação.
Modelo de lista API
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", }, .... ] }
Isso API também suporta 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 pode inicialmente chamar os Modelos de Lista API 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.
Obtenha o modelo API
Esta é uma leitura simples API sobre a model_name
entidade.
GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
nota
Se não model_name
estiver carregado, isso API deve retornar 404.
Descarregar modelo API
Instrui a SageMaker plataforma 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 model_name
devem ser recuperados pelo contêiner quando ele retorna uma resposta. API
DELETE /models/{model_name}
nota
Se não model_name
estiver carregado, isso API deve retornar 404.
Modelo de invocação API
Faz uma solicitação de previsão do model_name
específico fornecido. A InvokeEndpoint
solicitação SageMaker Runtime é suportada X-Amzn-SageMaker-Target-Model
como um novo cabeçalho que segue o caminho relativo do modelo especificado para invocação. O SageMaker sistema constrói o caminho absoluto do modelo combinando o prefixo fornecido como parte da CreateModel
API chamada 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 não model_name
estiver carregado, isso API deve retornar 404.
Além disso, em GPU alguns casos, se InvokeEndpoint
falhar devido à falta de memória ou outros recursos, isso API deve retornar um código de HTTP status 507 para SageMaker, que então inicia o descarregamento de modelos não utilizados para recuperação.