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.ptconfig.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: 32Tenseurs 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_FP32nombre flottant sur 32 bits (courant pour les images)TYPE_FP16précision réduite de moitié (plus rapide sur les GPU)TYPE_INT64identifiants de jetons pour le TALTYPE_INT8modè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 95Lire 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 msVé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.pbtxtdé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
- Conteneuriser des modèles d’apprentissage automatique avec Docker
- Déploiement cloud : AWS SageMaker
- Service haute performance avec Triton Inference Server
- Mise à l’échelle et autoscaling des points de terminaison de modèles