0Pricing
Learn AI with Python · Leçon

Service haute performance avec Triton Inference Server

Dépôt de modèles, configuration de modèle config.pbtxt, instances de modèle simultanées, traitement dynamique par lots.

Service haute performance avec Triton Inference Server est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que Triton

NVIDIA Triton Inference Server est un système de mise en service adapté à la production qui héberge plusieurs modèles simultanément sur CPU et GPU. Il prend en charge plusieurs moteurs (TensorRT, ONNX, PyTorch, TensorFlow, Python) derrière une seule interface HTTP/gRPC, avec traitement par lots et exécution concurrente intégrés.

Le dépôt de modèles

Triton charge les modèles depuis un dépôt de modèles : un répertoire dans lequel chaque modèle possède son propre dossier, un sous-dossier de version numérique et un fichier config.pbtxt.

model_repository/
  resnet50/
    config.pbtxt
    1/
      model.onnx
  bert/
    config.pbtxt
    1/
      model.pt

config.pbtxt : moteur

Le fichier config.pbtxt décrit la manière dont Triton doit exécuter un modèle. Le moteur (ou la plateforme) indique à Triton quel environnement d'exécution utiliser.

name: "resnet50"
backend: "onnxruntime"
max_batch_size: 32

Tenseurs d'entrée et de sortie

Vous déclarez chaque entrée et chaque sortie : son nom, son type de données et ses dimensions (sa forme). Les formes doivent correspondre à ce qu'attend le modèle. Une dimension initiale correspondant au lot est implicite avec max_batch_size.

input [
  {
    name: "input"
    data_type: TYPE_FP32
    dims: [ 3, 224, 224 ]
  }
]
output [
  {
    name: "output"
    data_type: TYPE_FP32
    dims: [ 1000 ]
  }
]

Types de données

Triton utilise des types de données explicites pour les tenseurs afin que les clients et le modèle s'accordent sur la disposition des octets :

  • TYPE_FP32 nombre flottant sur 32 bits (courant pour les images)
  • TYPE_FP16 précision réduite de moitié (plus rapide sur les GPU)
  • TYPE_INT64 identifiants de jetons pour le TAL
  • TYPE_INT8 modèles quantifiés

Traitement par lots dynamique : le principe

Le traitement par lots dynamique permet à Triton de combiner plusieurs requêtes entrantes en un lot plus volumineux avant d'exécuter le modèle. Les GPU sont bien plus efficaces avec de gros lots ; cette technique augmente donc considérablement le débit sans modifier le code client.

Configurer le traitement par lots dynamique

Vous l'activez dans la configuration et définissez la durée pendant laquelle Triton attend pour regrouper les requêtes. Une petite valeur de max_queue_delay_microseconds échange un peu de latence contre un débit bien plus élevé.

dynamic_batching {
  preferred_batch_size: [ 8, 16 ]
  max_queue_delay_microseconds: 1000
}

Instances de modèle simultanées

Par défaut, Triton exécute une seule copie (instance) d'un modèle. Avec instance_group, vous pouvez exécuter plusieurs instances en parallèle sur un ou plusieurs GPU, traiter simultanément des requêtes indépendantes et améliorer l'utilisation des ressources.

instance_group [
  {
    count: 2
    kind: KIND_GPU
    gpus: [ 0 ]
  }
]

Traitement par lots ou exécution concurrente

Ces mécanismes répondent à des problèmes différents :

  • Traitement par lots dynamique : fusionne les requêtes en un seul appel au modèle (débit par appel)
  • Instances simultanées : exécutent plusieurs appels au modèle à la fois (parallélisme)

Ils sont complémentaires ; les configurations de production utilisent souvent les deux.

perf_analyzer

perf_analyzer est un outil Triton qui soumet au serveur des requêtes synthétiques et indique le débit (inférences/s) ainsi que les centiles de latence. Utilisez-le pour trouver les paramètres de traitement par lots et d'exécution concurrente qui maximisent le débit dans les limites de latence que vous avez fixées.

perf_analyzer -m resnet50 \
  --concurrency-range 1:8 \
  --percentile 95

Lire la sortie de perf_analyzer

L'outil fait varier les niveaux de concurrence et affiche le débit ainsi que la latence pour chacun. Vous recherchez le coude de la courbe : le point où augmenter la concurrence n'améliore plus le débit ou fait dépasser à la latence P95 votre limite.

# Concurrency: 4, throughput: 1820 infer/sec, p95 latency: 9.1 ms
# Concurrency: 8, throughput: 1905 infer/sec, p95 latency: 17.4 ms

Vérification rapide

Vérifiez vos connaissances sur Triton.

Récapitulatif

Vous avez appris à fournir un service haute performance avec Triton :

  • Dépôt de modèles : dossiers propres à chaque modèle, avec des sous-répertoires de version et config.pbtxt
  • config.pbtxt déclare le moteur, les formes des tenseurs d'entrée et de sortie ainsi que leurs types de données
  • Le traitement par lots dynamique augmente le débit ; les instances simultanées ajoutent du parallélisme
  • perf_analyzer mesure le débit par rapport à la latence pour ajuster les paramètres

Questions Fréquemment Posées

La leçon « Service haute performance avec Triton Inference Server » est-elle gratuite ?

Oui — le texte complet de « Service haute performance avec Triton Inference Server » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Service haute performance avec Triton Inference Server » ?

Dépôt de modèles, configuration de modèle config.pbtxt, instances de modèle simultanées, traitement dynamique par lots. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Service haute performance avec Triton Inference Server » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Conteneuriser des modèles d’apprentissage automatique avec Docker
  2. Déploiement cloud : AWS SageMaker
  3. Service haute performance avec Triton Inference Server
  4. Mise à l’échelle et autoscaling des points de terminaison de modèles
← Retour à Learn AI with Python