Inference Engine
Découvre comment un moteur d’inférence optimise les modèles de machine learning comme Ultralytics YOLO26 pour un déploiement en temps réel. Explore les conseils de performance pour l’IA edge d’aujourd’hui.
Un moteur d’inférence est un composant logiciel spécialisé conçu pour exécuter des modèles de machine learning entraînés et générer des prédictions à partir de nouvelles données. Contrairement à la phase d’entraînement, qui se concentre sur l’apprentissage des schémas au moyen de processus exigeants en calcul comme la rétropropagation, un moteur d’inférence est strictement optimisé pour la phase opérationnelle appelée déploiement du modèle. Son objectif principal est d’effectuer les calculs aussi efficacement que possible, en réduisant la latence d’inférence et en maximisant le débit sur le matériel cible, qu’il s’agisse d’un serveur cloud évolutif ou d’un appareil Edge AI alimenté par batterie. En supprimant la surcharge nécessaire à l’entraînement, ces moteurs permettent à des réseaux neuronaux complexes de fonctionner dans des applications en temps réel.
Comment les moteurs d’inférence optimisent les performances#
La transition d’un environnement d’entraînement vers un moteur d’inférence implique généralement plusieurs étapes d’optimisation visant à rationaliser la structure du modèle. Comme le modèle n’a plus besoin d’apprendre, le moteur peut supprimer les données nécessaires aux mises à jour des gradients, ce qui revient à figer efficacement les poids du modèle. Les techniques couramment utilisées par les moteurs d’inférence comprennent la fusion de couches, qui combine plusieurs opérations en une seule étape afin de réduire les accès à la mémoire, ainsi que la quantification du modèle, qui convertit les poids depuis des formats à virgule flottante de haute précision vers des entiers de précision inférieure (par exemple, INT8).
Ces optimisations permettent à des architectures avancées comme Ultralytics YOLO26 de fonctionner à des vitesses extrêmement élevées sans perte significative de précision. Les différents moteurs sont souvent adaptés à des écosystèmes matériels spécifiques afin d’exploiter des performances maximales :
- NVIDIA TensorRT : offre une inférence haute performance sur les GPU NVIDIA en utilisant des noyaux spécifiques au matériel et en optimisant le graphe du réseau.
- Intel OpenVINO : optimise les performances du deep learning sur les architectures Intel, notamment les CPU et les circuits graphiques intégrés, ce qui en fait une solution idéale pour l’informatique en périphérie.
- ONNX Runtime : accélérateur multiplateforme prenant en charge les modèles au format ONNX, qui assure une passerelle entre différents frameworks et backends matériels.
Applications concrètes#
Les moteurs d’inférence sont les moteurs discrets de nombreuses commodités modernes de l’IA, permettant aux systèmes de vision par ordinateur de réagir instantanément à leur environnement.
-
Véhicules autonomes : dans les voitures autonomes, les modèles de détection d’objets doivent identifier les piétons, les panneaux de signalisation et les autres véhicules en quelques millisecondes. Un moteur d’inférence exécuté localement sur le matériel de la voiture garantit que ce traitement s’effectue à des vitesses d’inférence en temps réel, car dépendre d’une connexion cloud introduirait des délais dangereux.
-
Fabrication intelligente : les usines utilisent des caméras d’IoT industriel pour inspecter les produits sur les chaînes de montage. Un moteur d’inférence traite les flux vidéo afin d’effectuer une détection d’anomalies et de signaler instantanément les défauts. Cette automatisation réduit les déchets et garantit un contrôle qualité strict sans ralentir la production.
Moteur d’inférence ou framework d’entraînement#
Il est utile de distinguer le logiciel utilisé pour créer le modèle du moteur utilisé pour l’exécuter. Un framework d’entraînement (comme PyTorch ou TensorFlow) fournit les outils nécessaires à la conception d’architectures, au calcul de la perte et à la mise à jour des paramètres via l’apprentissage supervisé. Il privilégie la flexibilité et les capacités de débogage.
À l’inverse, le moteur d’inférence prend l’artefact final produit par le framework d’entraînement et privilégie la vitesse d’exécution ainsi que l’efficacité mémoire. Bien que tu puisses exécuter l’inférence dans un framework d’entraînement, cette approche est rarement aussi efficace qu’un moteur dédié, notamment pour le déploiement sur des téléphones mobiles ou des appareils embarqués à l’aide d’outils comme TensorFlow Lite ou Apple Core ML.
Utiliser un moteur d’inférence avec Ultralytics YOLO26#
Le package ultralytics abstrait une grande partie de la complexité des moteurs d’inférence, ce qui permet d’exécuter facilement des prédictions. En arrière-plan, il gère le prétraitement des images et l’exécution du modèle. Pour les utilisateurs qui souhaitent passer à l’échelle, l’Ultralytics Platform simplifie le processus d’entraînement et d’exportation des modèles vers des formats optimisés compatibles avec différents moteurs d’inférence.
L’exemple suivant montre comment charger un modèle YOLO26 préentraîné et exécuter une inférence sur une image :
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()








