Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Moteur d'inférence

Découvrez comment un moteur d'inférence optimise les modèles d'apprentissage automatique tels Ultralytics pour un déploiement en temps réel. Découvrez dès aujourd'hui des conseils pour améliorer les performances de l'IA en périphérie.

Un moteur d'inférence est un composant logiciel spécialisé conçu pour exécuter des modèles d'apprentissage automatique 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 de modèles à travers des processus intensifs en calculs tels que la rétropropagation, un moteur d'inférence est strictement optimisé pour la phase opérationnelle connue sous le nom de déploiement de modèle. Son objectif principal est d'exécuter les calculs aussi efficacement que possible, en minimisant 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 dispositif Edge AI alimenté par batterie. En supprimant la surcharge nécessaire à l' apprentissage, 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. Le modèle n'ayant plus besoin d'apprendre, le moteur peut supprimer les données nécessaires à la mise à jour des gradients, ce qui permet de geler efficacement les poids du modèle. Les techniques couramment utilisées par les moteurs d'inférence comprennent la fusion de couches, où plusieurs opérations sont combinées en une seule étape afin de réduire l'accès à la mémoire, et la quantification du modèle, qui convertit les poids de formats à virgule flottante haute précision en entiers de précision inférieure (par exemple, INT8).

Ces optimisations permettent à des architectures avancées telles que Ultralytics de fonctionner à des vitesses incroyablement élevées sans perte significative de précision. Différents moteurs sont souvent adaptés à des écosystèmes matériels spécifiques afin d'offrir 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 de réseau.
  • Intel OpenVINO: optimise les performances d'apprentissage profond sur les architectures Intel , y compris les processeurs et les cartes graphiques intégrées, ce qui le rend idéal pour l'informatique de pointe.
  • ONNX : un accélérateur multiplateforme qui prend en charge les modèles dans le ONNX , fournissant un pont entre différents frameworks et backends matériels.

Applications concrètes

Les moteurs d'inférence sont les moteurs silencieux derrière de nombreuses commodités modernes de l'IA, permettant aux systèmes de vision par ordinateur de réagir instantanément à leur environnement.

  1. 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 fonctionnant localement sur le matériel de la voiture garantit que ce traitement s'effectue à des vitesses d'inférence en temps réel, car le recours à une connexion cloud entraînerait des retards dangereux.
  2. Fabrication intelligente: les usines utilisent des caméras IoT industriellespour inspecter les produits sur les chaînes de montage. Un moteur d'inférence traite les flux vidéo pour détecter les anomalies et signaler instantanément les défauts. Cette automatisation réduit le gaspillage et garantit un contrôle qualité strict sans ralentir la production.

Moteur d'inférence vs cadre de formation

Il est utile de faire la distinction entre le logiciel utilisé pour créer le modèle et le moteur utilisé pour l'exécuter. Un cadre d'entraînement (comme PyTorch ou TensorFlow) fournit les outils nécessaires à la conception d' architectures, au calcul des pertes et à la mise à jour des paramètres via l' apprentissage supervisé. Il privilégie la flexibilité et les capacités de débogage.

En revanche, le moteur d'inférence prend l'artefact fini du cadre d'entraînement et donne la priorité à la vitesse d'exécution et à l'efficacité de la mémoire. Bien que vous puissiez exécuter l'inférence dans un cadre d'entraînement, cela est rarement aussi efficace que l'utilisation d'un moteur dédié, en particulier pour le déploiement sur des téléphones mobiles ou des appareils embarqués via des outils tels que TensorFlow ou Apple Core ML.

Utilisation d'un moteur d'inférence avec YOLO26

Le ultralytics Le package résume une grande partie de la complexité des moteurs d'inférence, permettant aux utilisateurs d' exécuter des prédictions de manière transparente. En arrière-plan, il gère le prétraitement des images et l'exécution du modèle. Pour les utilisateurs qui souhaitent évoluer, le Plate-forme Ultralytics simplifie le processus de formation et d'exportation des modèles vers des formats optimisés compatibles avec divers moteurs d'inférence.

L'exemple suivant montre comment charger un modèle YOLO26 pré-entraîné et effectuer 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()

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant