Optimisez les performances de l'IA avec une faible latence d'inférence. Découvrez les facteurs clés, les applications concrètes et les techniques permettant d'améliorer les réponses en temps réel.
La latence d'inférence est le temps qui s'écoule entre le moment où un modèle d'apprentissage machine (ML) reçoit une entrée et le moment où il la reçoit. modèle d'apprentissage machine (ML) recevant une entrée et la production d'une sortie correspondante. Cette mesure, généralement exprimée en millisecondes (ms), est un facteur déterminant de la réactivité d'un modèle d'apprentissage automatique. la réactivité des systèmes d'intelligence systèmes d'intelligence artificielle (IA). Pour les développeurs et les ingénieurs travaillant sur des projets de sur des projets de vision artificielle (CV), la latence est souvent aussi critique que la maximisation de la précision, notamment lors du déploiement d'applications qui interagissent avec des humains ou des machines physiques. Une latence élevée se traduit par lenteur des performances, alors qu'une faible latence crée une expérience utilisateur transparente et permet une prise de décision immédiate, un concept fondamental pour les systèmes de vision modernes. concept fondamental des systèmes systèmes intelligents modernes.
Dans le domaine du déploiement de modèles, la vitesse à laquelle un système traite les données dicte sa faisabilité pour des tâches spécifiques. Dans le domaine du déploiement de modèles, la vitesse à laquelle un système traite les données dicte sa faisabilité pour des tâches spécifiques. La faible latence de l'inférence est la pierre angulaire de l'inférence en temps réel. l'inférence en temps réel, où les prédictions doivent dans un délai très court pour être exploitables. Par exemple, un délai de quelques centaines de millisecondes peut être acceptable pour un système de recommandation sur un site web d'achat, mais il peut être catastrophique pour les systèmes critiques de sécurité. Comprendre les exigences de latence spécifiques d'un projet au début du cycle de développement permet aux équipes de sélectionner les architectures de modèles et les configurations matérielles appropriées pour garantir la fiabilité.
Plusieurs éléments variables contribuent au temps total requis pour une seule passe d'inférence :
L'impact pratique de la latence d'inférence est mieux compris à travers des cas d'utilisation concrets où la vitesse n'est pas négociable.
Il est essentiel de différencier la "latence" du "débit", car ils sont souvent inversement liés. d'optimisation inversement liés.
Il s'agit d'un compromis entre latence et débit oblige les développeurs à adapter leurs pipelines d'inférence aux besoins spécifiques de l'environnement de déploiement.
Vous pouvez évaluer la performance des modèles Ultralytics en utilisant le mode benchmark intégré. Cet outil fournit des des mesures détaillées sur la vitesse d'inférence dans différents formats tels que ONNX ou TorchScript.
from ultralytics import YOLO
# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")
# Benchmark the model on CPU to measure latency
# Results will display inference time per image in milliseconds
model.benchmark(data="coco8.yaml", imgsz=640, device="cpu")
Pour obtenir la latence la plus faible possible, les développeurs utilisent souvent un moteur d'inférence adapté à leur matériel. moteur d'inférence adapté à leur matériel. Par exemple, le déploiement d'un modèle sur un appareil NVIDIA Jetson par exemple, le déploiement d'un modèle sur un appareil NVIDIA Jetson utilisant l'optimisation l 'optimisationTensorRT peut produire des accélérations significatives par rapport à l'exécution de TensorRT bruts. l'exécution d'un modèle PyTorch brut. De même, l'utilisation de Intel OpenVINO peut accélérer les performances sur les architectures sur les architectures CPU standard. Ces outils optimisent le graphe de calcul, fusionnent les couches et gèrent la mémoire plus efficacement que les cadres de formation standard. mémoire plus efficacement que les cadres de formation standard.