0Pricing
Learn AI with Python · Lezione

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.pt

config.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: 32

Tensori 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_FP32 float a 32 bit (comune per le immagini)
  • TYPE_FP16 precisione dimezzata (più veloce sulle GPU)
  • TYPE_INT64 ID dei token per l'NLP
  • TYPE_INT8 modelli 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 95

Lettura 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 ms

Verifica 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.pbtxt dichiara 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

  1. Containerizzazione dei modelli ML con Docker
  2. Deployment nel cloud: AWS SageMaker
  3. Serving ad alte prestazioni con Triton Inference Server
  4. Scalabilità e auto-scaling degli endpoint dei modelli
← Torna a Learn AI with Python