Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Moteur d'inférence

Découvrez comment les moteurs d'inférence alimentent l'IA en fournissant des prédictions en temps réel, en optimisant les modèles et en permettant un déploiement multiplateforme.

Un moteur d'inférence est un composant logiciel spécialisé conçu pour exécuter des modèles d'apprentissage automatique formés et pour générer des données. et générer des prédictions à partir de nouvelles données. prédictions à partir de nouvelles données. Contrairement aux cadres d'apprentissage qui se concentrent sur l'apprentissage de modèles à partir d'ensembles de données massifs, un moteur d'inférence est optimisé uniquement pour la phase opérationnelle, appelée moteur d'inférence est optimisé uniquement pour la phase opérationnelle, connue sous le nom de déploiement du modèle. Son objectif principal est d'exécuter ces modèles aussi efficacement que possible, en minimisant la latence de l'inférence et de maximiser le débit sur le matériel sur le matériel cible, qu'il s'agisse d'un puissant serveur en nuage ou d'un dispositif d'un dispositif d'IA en périphérie aux ressources limitées.

Fonctionnement d'un moteur d'inférence

Le passage d'un modèle formé à une application prête à être déployée implique généralement un moteur d'inférence agissant en tant qu'environnement d'exécution. l'environnement d'exécution. Une fois qu'un modèle est formé dans un cadre tel que PyTorch ou TensorFlowsouvent lourd et contient des structures de données structures de données utiles pour l'apprentissage mais inutiles pour la prédiction. Un moteur d'inférence supprime cette surcharge et applique des et applique des optimisations rigoureuses au graphe de calcul.

Les principales techniques d'optimisation sont les suivantes :

  • Fusion de couches : Le moteur combine plusieurs couches (par exemple, convolution, normalisation par lots et activation) en une seule opération. l'activation) en une seule opération. Cela réduit l'accès à la mémoire et accélère l'exécution.
  • Réduction de la précision : Grâce à la quantification du modèle quantification du modèle, le moteur convertit les les poids du format 32 bits à virgule flottante de haute précision (FP32) vers des formats de moindre précision tels que INT8 ou FP16. Cela réduit considérablement la taille du modèle et la taille de la mémoire. réduit considérablement la taille du modèle et l'utilisation de la bande passante de la mémoire sans compromettre la précision. la précision.
  • Auto-réglage du noyau : Des moteurs comme NVIDIA TensorRT sélectionnent automatiquement les algorithmes algorithmes et les noyaux matériels les plus efficaces pour la GPU utilisé.
  • Gestion de la mémoire : Des stratégies efficaces de réutilisation de la mémoire minimisent les frais généraux liés à l'allocation et à la désallocation de la mémoire au cours de l'exécution. d'allocation et de désallocation de la mémoire en cours d'exécution, ce qui est essentiel pour l'inférence en temps réel. l 'inférence en temps réel.

Moteurs d'inférence courants

Les différents moteurs sont adaptés à des écosystèmes matériels spécifiques et à des objectifs de performance :

  • NVIDIA TensorRT: Optimiseur d'inférence et moteur d'exécution de deep learning haute performance pour les GPU NVIDIA . Il est largement utilisé dans les centres de données et les applications automobiles. Vous pouvez facilement facilement exporter les modèles Ultralytics vers TensorRT pour une vitesse.
  • Intel OpenVINO: Le système ouvert d'inférence visuelle et d'optimisation des réseaux neuronaux Open Visual Inference and Neural Network Optimization (Inférence visuelle ouverte et optimisation des réseaux neuronaux) optimise les modèles pour le matériel Intel , y compris les CPU et GPU intégrés. Il permet une approche "écrire une fois, déployer n'importe où" au sein de l'écosystème Intel .
  • ONNX Runtime : Un moteur multiplateforme développé par Microsoft qui prend en charge la technologie ONNX . Il permet aux modèles formés dans un cadre de travail de fonctionner efficacement sur différents supports matériels.
  • TensorFlow Lite : Conçu pour les appareils mobiles et IoT, TensorFlow Lite permet une inférence à faible latence sur Android, iOS et les systèmes embarqués.

Applications concrètes

Les moteurs d'inférence constituent l'épine dorsale invisible des applications modernes d'IA, leur permettant de réagir instantanément au monde.

  1. Conduite autonome : Dans l'industrie automobile, les véhicules s'appuient sur la vision artificielle pour naviguer en toute sécurité. en toute sécurité. Un moteur d'inférence fonctionnant sur l'ordinateur de bord de la voiture traite les flux vidéo afin de procéder à la détection d'objets tels que les piétons, les autres véhicules et les panneaux de signalisation. L'utilisation d'un modèle tel que YOLO11, le moteur garantit que ces prédictions se produisent en quelques millisecondes, ce qui permet à la voiture de freiner ou de se diriger de manière autonome en temps réel. en temps réel.
  2. Fabrication intelligente : Les chaînes de production utilisent des moteurs d'inférence pour le contrôle automatisé de la qualité. Des caméras à grande vitesse capturent des images de produits sur un tapis roulant, et un moteur d'inférence traite ces images pour détecter des défauts tels que des fissures ou des désalignements. detect défauts tels que des fissures ou des désalignements. Ce système à haut rendement permet d'éviter l'expédition d'articles défectueux et de réduire les coûts d'inspection manuelle. et réduit les coûts d'inspection manuelle.

Moteur d'inférence et cadre de formation

Il est important de faire la distinction entre les outils utilisés pour créer des modèles et ceux utilisés pour les exécuter.

  • Cadres de formation (par exemple, PyTorch, Keras) : Ils sont conçus pour la flexibilité et l'expérimentation. Ils prennent en charge la rétropropagation, les mises à jour du gradient et les graphes dynamiques, qui sont essentiels pour l'apprentissage mais coûteux en termes de calcul. mais coûteux en termes de calcul.
  • Moteurs d'inférence (par exemple, TensorRT, ONNX Runtime) : Ils sont conçus pour la vitesse et l'efficacité. Ils traitent le modèle comme un ensemble statique d'opérations à exécuter le plus rapidement possible. traitent le modèle comme un ensemble statique d'opérations à exécuter le plus rapidement possible. Ils ne prennent généralement pas en charge l'entraînement ou l'apprentissage de nouveaux modèles.

Exportation pour l'inférence

Pour utiliser un moteur d'inférence spécifique, vous devez souvent exporter votre modèle entraîné dans un format compatible. Par exemple, l'exportation d'un modèle YOLO11 au format ONNX par exemple, l'exportation d'un modèle YOLO11 au format ONNX lui permet d'être exécuté par ONNX Runtime ou importé dans d'autres moteurs.

from ultralytics import YOLO

# Load a trained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format for use with ONNX Runtime
# This creates 'yolo11n.onnx' optimized for inference
model.export(format="onnx")

En s'appuyant sur un moteur d'inférence, les développeurs peuvent exploiter tout le potentiel de leurs modèles d'IA, en s'assurant qu'ils fonctionnent dans les environnements de production, qu'il s'agisse de clusters en nuage ou d'appareils périphériques alimentés par batterie.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant