Serving ad alte prestazioni con Triton Inference Server
Repository dei modelli, model config.pbtxt, istanze concorrenti del modello, batching dinamico
Serving ad alte prestazioni con Triton Inference Server è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Che cos'è Triton
NVIDIA Triton Inference Server è un sistema di serving adatto alla produzione che ospita contemporaneamente molti modelli su CPU e GPU. Supporta più backend (TensorRT, ONNX, PyTorch, TensorFlow, Python) tramite un'unica API HTTP/gRPC, con batching e concorrenza integrati.
Il model repository
Triton carica i modelli da un model repository: una directory in cui ogni modello ha la propria cartella, una sottocartella con versione numerica e un file config.pbtxt.
model_repository/
resnet50/
config.pbtxt
1/
model.onnx
bert/
config.pbtxt
1/
model.ptconfig.pbtxt: backend
Il file config.pbtxt descrive come Triton deve eseguire un modello. Il backend (o platform) indica a Triton quale runtime utilizzare.
name: "resnet50"
backend: "onnxruntime"
max_batch_size: 32Tensori di input e output
Si dichiara ogni input e output specificandone il nome, il tipo di dati e le dims del tensore (la forma). Le forme devono corrispondere a quelle previste dal modello. Una dimensione batch iniziale è implicita in max_batch_size.
input [
{
name: "input"
data_type: TYPE_FP32
dims: [ 3, 224, 224 ]
}
]
output [
{
name: "output"
data_type: TYPE_FP32
dims: [ 1000 ]
}
]Tipi di dati
Triton utilizza tipi di dati espliciti per i tensori, così i client e il modello concordano sulla disposizione dei byte:
TYPE_FP32float a 32 bit (comune per le immagini)TYPE_FP16precisione dimezzata (più veloce sulle GPU)TYPE_INT64ID dei token per l'NLPTYPE_INT8modelli quantizzati
Batching dinamico: l'idea
Il batching dinamico consente a Triton di combinare diverse richieste in arrivo in un unico batch più grande prima di eseguire il modello. Le GPU sono molto più efficienti con batch grandi, quindi questa tecnica aumenta notevolmente il throughput senza modificare il codice client.
Configurazione del batching dinamico
Lo si abilita nella configurazione e si stabilisce per quanto tempo Triton deve attendere per raccogliere le richieste. Un valore ridotto di max_queue_delay_microseconds sacrifica una piccola quantità di latenza in cambio di un throughput molto più elevato.
dynamic_batching {
preferred_batch_size: [ 8, 16 ]
max_queue_delay_microseconds: 1000
}Istanze concorrenti del modello
Per impostazione predefinita, Triton esegue una sola copia (istanza) di un modello. Con instance_group è possibile eseguire più istanze in parallelo su una o più GPU, elaborando simultaneamente richieste indipendenti e migliorando l'utilizzo delle risorse.
instance_group [
{
count: 2
kind: KIND_GPU
gpus: [ 0 ]
}
]Batching e concorrenza a confronto
Risolvono problemi diversi:
- Batching dinamico: unisce le richieste in un'unica chiamata al modello (throughput per chiamata)
- Istanze concorrenti: eseguono più chiamate al modello contemporaneamente (parallelismo)
Sono complementari; le configurazioni per la produzione utilizzano spesso entrambe le tecniche.
perf_analyzer
perf_analyzer è uno strumento di Triton che sottopone il server a richieste sintetiche e restituisce il throughput (inferenze al secondo) e i percentili della latenza. Lo utilizzi per individuare le impostazioni di batch e concorrenza che massimizzano il throughput rispettando il budget di latenza.
perf_analyzer -m resnet50 \
--concurrency-range 1:8 \
--percentile 95Lettura dell'output di perf_analyzer
Lo strumento esamina diversi livelli di concorrenza e stampa throughput e latenza per ciascuno. Si cerca il punto di gomito della curva: il punto in cui aumentare la concorrenza non migliora più il throughput oppure porta la latenza P95 oltre il limite.
# Concurrency: 4, throughput: 1820 infer/sec, p95 latency: 9.1 ms
# Concurrency: 8, throughput: 1905 infer/sec, p95 latency: 17.4 msVerifica rapida
Verifichi le Sue conoscenze di Triton.
Riepilogo
Ha imparato a fornire modelli ad alte prestazioni con Triton:
- Model repository: cartelle separate per modello con sottodirectory delle versioni e
config.pbtxt config.pbtxtdichiara backend, forme dei tensori di input/output e tipi di dati- Il batching dinamico aumenta il throughput; le istanze concorrenti aggiungono parallelismo
- perf_analyzer confronta throughput e latenza per ottimizzare le impostazioni
Domande Frequenti
La lezione «Serving ad alte prestazioni con Triton Inference Server» è gratuita?
Sì — il testo completo di «Serving ad alte prestazioni con Triton Inference Server» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Serving ad alte prestazioni con Triton Inference Server»?
Repository dei modelli, model config.pbtxt, istanze concorrenti del modello, batching dinamico Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Serving ad alte prestazioni con Triton Inference Server»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Containerizzazione dei modelli ML con Docker
- Deployment nel cloud: AWS SageMaker
- Serving ad alte prestazioni con Triton Inference Server
- Scalabilità e auto-scaling degli endpoint dei modelli