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 contenitore deve supportare un set di API che consentano SageMaker ad Amazon di comunicare con il contenitore per caricare, elencare, ottenere e scaricare i modelli secondo necessità. model_name viene utilizzato nel nuovo set di API 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 parametro TargetModel passato nell'API InvokeEndpoint. Il valore TargetModel originale della richiesta InvokeEndpoint viene passato al container nelle API come intestazione X-Amzn-SageMaker-Target-Model che può essere utilizzata per scopi di registrazione.

Nota

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

Puoi configurare le seguenti API sui tuoi container per endpoint a più modelli basati su CPU.

Caricamento modello 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, l'API restituisce il codice 409. Ogni volta che un modello non può essere caricato a causa della mancanza di memoria o di qualsiasi altra risorsa, questa API dovrebbe restituire un codice di stato HTTP 507 a SageMaker, che avvia quindi lo scaricamento dei modelli inutilizzati da recuperare.

Elenco modelli 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", }, .... ] }

Questa API supporta anche la paginazione.

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 l'API List Models senza fornire un valore per. next_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.

Ottenere un modello API

Questa è una semplice API di lettura sull'entità model_name.

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

Se l'entità model_name non è caricata, l'API restituisce il codice 404.

Scarica 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 a model_name devono essere recuperate dal container quando l'API restituisce una risposta.

DELETE /models/{model_name}
Nota

Se l'entità model_name non è caricata, l'API restituisce il codice 404.

Invocare un modello 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 segue 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 chiamata CreateModel API 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 l'entità model_name non è caricata, l'API restituisce il codice 404.

Inoltre, nelle istanze GPU, in caso di InvokeEndpoint errore a causa della mancanza di memoria o di altre risorse, questa API dovrebbe restituire un codice di stato HTTP 507 a SageMaker, che quindi avvia lo scarico dei modelli inutilizzati da recuperare.