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 .
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 :
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.
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.
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()