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à.
Distribuzione del modello con Triton Inference Server
Triton Inference Server
I contenitori SageMaker Triton ti aiutano a implementare Triton Inference Server sulla piattaforma di hosting per servire modelli addestrati in produzione. SageMaker Supporta le diverse modalità in cui opera. SageMaker Per un elenco dei contenitori Triton Inference Server disponibili su SageMaker, consulta NVIDIATriton Inference Containers (solo supporto SM)
Modalità di hosting
Le seguenti modalità SageMaker di hosting sono supportate dai contenitori Triton:
-
Endpoint per modelli singoli
-
Questa è SageMaker la modalità operativa predefinita. In questa modalità, il container Triton può caricare un modello singolo o un modello di ensemble singolo.
-
Il nome del modello deve essere passato come proprietà dell'ambiente contenitore, che fa parte della
CreateModel
SageMaker API chiamata. La variabile di ambiente utilizzata da inserire nel nome del modello èSAGEMAKER_TRITON_DEFAULT_MODEL_NAME
.
-
-
Endpoint di modello singoli con ensemble
-
Triton Inference Server supporta l'ensemble, che è una pipeline o un DAG (grafo aciclico diretto) di modelli. Sebbene un insieme sia tecnicamente composto da più modelli, nella modalità endpoint a modello singolo predefinita, SageMaker può considerare l'insieme vero e proprio (il meta-modello che rappresenta la pipeline) come modello principale da caricare e può successivamente caricare i modelli associati.
-
Il nome del modello dell'ensemble vero e proprio deve essere utilizzato per caricare il modello. Deve essere passato come proprietà dell'ambiente contenitore, che fa parte della chiamata.
CreateModel
SageMaker API La variabile di ambiente utilizzata da inserire nel nome del modello èSAGEMAKER_TRITON_DEFAULT_MODEL_NAME
.
-
-
Endpoint multimodello
-
In questa modalità, SageMaker può servire più modelli su un singolo endpoint. È possibile utilizzare questa modalità specificando la variabile di ambiente
‘MultiModel’: true
come proprietà dell'ambiente contenitore, che fa parte dellaCreateModel
SageMaker API chiamata. -
Per impostazione predefinita, nessun modello viene caricato all'avvio dell'istanza. Per eseguire una richiesta di inferenza su un particolare modello, specificate il
*.tar.gz
file del modello corrispondente come argomento dellaTargetModel
proprietà dellaInvokeEndpoint
SageMaker API chiamata.
-
-
Endpoint multimodello con ensemble
-
In questa modalità, SageMaker funziona come descritto per gli endpoint multimodello. Tuttavia, il contenitore SageMaker Triton può caricare più modelli di ensemble, il che significa che più pipeline di modelli possono essere eseguite sulla stessa istanza. SageMaker tratta ogni ensemble come un unico modello e l'insieme vero e proprio di ogni modello può essere richiamato specificando l'archivio corrispondente come.
*.tar.gz
TargetModel
Per una migliore gestione della memoria durante la memoria dinamica
LOAD
eUNLOAD
, si consiglia di mantenere un ensemble di piccole dimensioni.
-
Tipi di payload di inferenza
Triton supporta due metodi per inviare un payload di inferenza sulla rete: json
e binary+json
(o json con codifica binaria). Il JSON payload in entrambi i casi include il tipo di dati, la forma e l'effettivo tensore di richiesta di inferenza. Il tensore di richiesta deve essere un tensore binario.
Con il formato binary+json
, è necessario specificare la lunghezza dei metadati della richiesta nell'intestazione per consentire a Triton di analizzare correttamente il payload binario. Nel contenitore SageMaker Triton, questa operazione viene eseguita utilizzando un'intestazione personalizzata:. Content-Type
application/vnd.sagemaker-triton.binary+json;json-header-size={}
Questo è diverso dall'utilizzo dell'Inference-Header-Content-Length
intestazione su un Triton Inference Server autonomo perché le intestazioni personalizzate non sono consentite. SageMaker
Utilizzo di config.pbtxt per impostare la configurazione dei modelli
Per Triton Inference Server attivi SageMaker, ogni modello deve includere un config.pbtxt
file che specifichi, come minimo, le seguenti configurazioni per il modello:
-
name
: Sebbene questo sia facoltativo per i modelli che funzionano al di fuori di SageMaker, ti consigliamo di fornire sempre un nome per i modelli da eseguire in Triton on. SageMaker -
platform
e/obackend
: l'impostazione di un backend è essenziale per specificare il tipo di modello. Alcuni backend hanno un'ulteriore classificazione, come tensorflow_savedmodel
otensorflow_graphdef
. Tali opzioni possono essere specificate come parte della chiaveplatform
oltre alla chiavebackend
. I backend più diffusi sonotensorrt
,onnxruntime
,tensorflow
,pytorch
,python
,dali
,fil
eopenvino
. -
input
: specifica tre attributi per l'input:name
,data_type
edims
(la forma). -
output
: specifica tre attributi per l'output:name
,data_type
edims
(la forma). -
max_batch_size
: imposta la dimensione del batch su un valore maggiore o uguale a 1 che indichi la dimensione massima del batch che Triton dovrebbe utilizzare con il modello.
Per maggiori dettagli sulla configurazioneconfig.pbtxt
, consulta il repository di Triton. GitHub
-
instance_groups
: i gruppi di istanze contribuiscono a specificare il numero e la posizione di un determinato modello. Hanno gli attributi count
,kind
egpus
(usati quandokind
èKIND_GPU
). L'attributocount
è equivalente al numero di worker. Per la distribuzione di modelli ordinari, ogni worker dispone di una propria copia del modello. Analogamente, in Triton,count
specifica il numero di copie del modello per dispositivo. Ad esempio, se ilinstance_group
tipo èKIND_CPU
, allora CPU ha uncount
numero di copie del modello.Nota
In un GPU caso, la
instance_group
configurazione si applica per GPU dispositivo. Ad esempio, ilcount
numero di copie del modello viene posizionato su ciascun GPU dispositivo a meno che non si specifichi esplicitamente quali GPU dispositivi devono caricare il modello. -
dynamic_batching
e sequence_batching
: il batching dinamico viene utilizzato per i modelli stateless e il batching in sequenza viene utilizzato per i modelli stateful (in cui si desidera instradare ogni volta una richiesta alla stessa istanza del modello). I pianificatori di batch abilitano una coda per modello, che aiuta ad aumentare il throughput, a seconda della configurazione di batching. -
ensemble
: un modello ensemble rappresenta una pipeline di uno o più modelli e la connessione dei tensori di input e output tra tali modelli. Può essere configurato specificando platform
comeensemble
. La configurazione dell'ensemble è solo una rappresentazione della pipeline del modello. SageMakerAttivo, tutti i modelli di un insieme vengono trattati come dipendenti del modello di insieme e contati come un unico modello per le SageMaker metriche, ad esempio.LoadedModelCount
Pubblicazione dei parametri Triton predefiniti su Amazon CloudWatch
Il NVIDIA Triton Inference Container espone le metriche sulla porta 8002 (configurabile) per i diversi modelli e GPUs che vengono utilizzate nel Triton Inference Server. Per tutti i dettagli sulle metriche predefinite disponibili, consulta la pagina relativa alle metriche del Triton Inference Server. GitHub
A partire dalla versione v23.07 in poi, il contenitore SageMaker Triton supporta la pubblicazione di queste metriche su Amazon CloudWatch specificando alcune variabili di ambiente. Per analizzare i parametri di Prometheus, il container Triton sfrutta l' SageMaker agente Amazon. CloudWatch
Le variabili di ambiente obbligatorio che è necessario specificare per raccogliere i parametri sono le seguenti:
Variabile di ambiente | Descrizione | Valore di esempio |
---|---|---|
|
Specifica questa opzione per consentire a Triton di pubblicare i parametri sul suo endpoint Prometheus. |
"true" |
|
Specificate questa opzione per avviare i controlli preliminari necessari per pubblicare le metriche su Amazon. CloudWatch |
"true" |
|
Specifica questa opzione per puntare al gruppo di log in cui vengono scritti i parametri. |
«/aws/ /Endpoints/SageMaker» TritonMetrics SageMakerTwoEnsemblesTest |
|
Specifica questa opzione per puntare allo spazio dei nomi del parametro in cui desideri visualizzare e tracciare i parametri. |
«/aws/ SageMaker TritonMetrics /Endpoints/SageMakerTwoEnsemblesPublicTest» |
|
Indica 8002 o qualsiasi altra porta. Se non SageMaker ha bloccato la porta specificata, viene utilizzata. Altrimenti, viene scelta automaticamente un'altra porta non bloccata. |
"8002" |
Quando pubblicate metriche con Triton on SageMaker, tenete presente le seguenti limitazioni:
Sebbene sia possibile generare metriche personalizzate tramite i backend C API e Python (dalla versione 23.05 in poi), al momento non sono supportate per la pubblicazione su Amazon. CloudWatch
In modalità endpoints (MME) SageMaker multimodello, Triton viene eseguito in un ambiente che richiede l'abilitazione del namespace dei modelli perché ogni modello (eccetto i modelli ensemble) viene trattato come se si trovasse nel proprio repository di modelli. Attualmente, ciò crea una limitazione per i Parametri. Quando lo spazio dei nomi dei modelli è abilitato, Triton non distingue i parametri tra due modelli con lo stesso nome appartenenti a ensemble diversi. Come soluzione alternativa, assicurati che ogni modello implementato abbia un nome univoco. Ciò semplifica anche la ricerca delle metriche. CloudWatch
Variabili di ambiente
La tabella seguente elenca le variabili di ambiente supportate per Triton on. SageMaker
Variabile di ambiente | Descrizione | Tipo | Valori possibili |
---|---|---|---|
|
Consente a Triton di funzionare in modalità endpoint SageMaker multimodello. |
Booleano |
|
|
Specificate il modello da caricare nella modalità modello SageMaker singolo (predefinita). Per la modalità ensemble, specifica il nome dell'ensemble vero e proprio. |
Stringa |
|
|
|
Stringa |
|
|
Nel contenitore SageMaker Triton, questa opzione è impostata come impostazione predefinita. |
Booleano |
|
|
Quando è attiva SageMaker, la porta predefinita è 8080. È possibile eseguire la personalizzazione utilizzando una porta diversa in scenari con più container. |
Stringa |
|
|
Questa impostazione viene impostata dalla SageMaker piattaforma quando si utilizza la modalità multi-contenitore. |
Stringa |
|
|
Sebbene GRPC attualmente SageMaker non sia supportato, se utilizzi Triton davanti a un reverse proxy personalizzato, puoi scegliere di abilitarlo. GRPC |
Booleano |
|
|
La porta predefinita per GRPC è 8001, ma puoi cambiarla. |
Stringa |
|
|
È possibile impostare il numero di thread predefiniti del gestore delle HTTP richieste. |
Stringa |
|
|
|
Booleano |
|
|
|
Booleano |
|
|
|
Booleano |
|
|
|
Booleano |
|
|
Specifica la dimensione shm per il backend Python, in byte. Il valore predefinito è 16 MB ma può essere aumentato. |
Stringa |
|
|
Specifica la dimensione di aumento di shm per il backend Python, in byte. Il valore predefinito è 1 MB, ma può essere aumentato per consentire incrementi maggiori. |
Stringa |
|
|
Il valore predefinito è |
Stringa |
|
|
Limita la percentuale massima di GPU memoria utilizzata per il caricamento del modello, permettendo di utilizzare la parte restante per le richieste di inferenza. |
Stringa |
|
|
|
Booleano |
|
|
La porta predefinita è 8002. |
Stringa |
|
|
|
Booleano |
|
|
Obbligatorio se hai abilitato la pubblicazione delle metriche su. CloudWatch |
Stringa |
|
|
Obbligatorio se hai abilitato la pubblicazione delle metriche su. CloudWatch |
Stringa |
|
|
Aggiunge eventuali argomenti aggiuntivi all'avvio del server Triton. |
Stringa |
|