Contratto per container personalizzati per endpoint a più modelli - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Contratto per container personalizzati per endpoint a più modelli

Per gestire più modelli, il container deve supportare una serie di modelli APIs che consentano SageMaker ad Amazon di comunicare con il container per caricare, mettere in vendita, ricevere e scaricare i modelli secondo necessità. model_nameViene utilizzato nel nuovo set di APIs come parametro di input chiave. Si prevede che il container del cliente tenga traccia dei modelli caricati utilizzando model_name come chiave di mappatura. Inoltre, model_name è un identificatore opaco e non è necessariamente il valore del TargetModel parametro passato a. InvokeEndpoint API Il TargetModel valore originale della InvokeEndpoint richiesta viene passato a container in the APIs come X-Amzn-SageMaker-Target-Model intestazione che può essere utilizzata per scopi di registrazione.

Nota

Gli endpoint SageMaker multimodello NVIDIA per le istanze GPU supportate sono attualmente supportati solo con il contenitore Triton Inference Server. Questo container implementa già il contratto definito di seguito. I clienti possono utilizzare direttamente questo contenitore con i loro GPU endpoint multimodello, senza alcun lavoro aggiuntivo.

Puoi configurare quanto segue APIs sui tuoi contenitori per endpoint multimodello CPU supportati.

Modello di caricamento API

Indica al container di caricare un particolare modello presente nel campo url del corpo nella memoria del container del cliente e di tenerne traccia con il model_name assegnato. Dopo aver caricato un modello, il container deve essere pronto per servire le richieste di inferenza utilizzando questo 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 è già caricato, API dovrebbe restituire 409. Ogni volta che un modello non può essere caricato a causa della mancanza di memoria o di qualsiasi altra risorsa, questo API dovrebbe restituire un codice di HTTP stato 507 a SageMaker, che quindi avvia lo scarico dei modelli non utilizzati da recuperare.

Elenca modello API

Restituisce l'elenco dei modelli caricati nella memoria del container 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", }, .... ] }

Questo supporta API anche l'impaginazione.

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 può inizialmente chiamare i List Models API senza fornire un valore pernext_page_token. Se un campo nextPageToken viene restituito come parte della risposta, verrà fornito come valore per next_page_token in una successiva chiamata List Models (Elenco modelli). Se nextPageToken non viene restituito, significa che non ci sono più modelli da restituire.

Ottieni modello API

Questa è una semplice lettura API sull'model_nameentità.

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

Se non model_name è caricato, API dovrebbe restituire 404.

Scarica il modello API

Indica alla SageMaker piattaforma di indicare al contenitore del cliente di scaricare un modello dalla memoria. Viene quindi iniziata l'espulsione di un modello candidato come determinato dalla piattaforma quando avvia il processo di caricamento di un nuovo modello. Le risorse assegnate model_name devono essere recuperate dal contenitore quando questo restituisce una risposta. API

DELETE /models/{model_name}
Nota

Se non model_name è caricato, API dovrebbe restituire 404.

Invoke Model API

Effettua una richiesta di previsione dal particolare model_name fornito. La InvokeEndpoint richiesta SageMaker Runtime supporta X-Amzn-SageMaker-Target-Model una nuova intestazione che accetta il percorso relativo del modello specificato per la chiamata. Il SageMaker sistema costruisce il percorso assoluto del modello combinando il prefisso fornito come parte della CreateModel API chiamata con il percorso relativo del modello.

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 non model_name è caricato, API dovrebbe restituire 404.

Inoltre, in alcuni GPU casi, in caso di InvokeEndpoint errore a causa della mancanza di memoria o di altre risorse, API dovrebbe restituire un codice di HTTP stato 507 a SageMaker, che avvia quindi lo scaricamento dei modelli non utilizzati da recuperare.