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é qui exécute un modèle d'apprentissage automatique entraîné pour générer des prédictions à partir de nouvelles données non vues. Une fois qu'un modèle est entraîné à l'aide d'un framework comme PyTorch ou TensorFlow, le moteur d'inférence prend le relais pour l'exécuter efficacement dans un environnement de production. Son objectif principal est d'optimiser le modèle pour la vitesse et l'utilisation des ressources, ce qui permet de réaliser une inférence en temps réel sur diverses plateformes matérielles, des puissants serveurs cloud aux appareils périphériques aux ressources limitées.
Le rôle d'un moteur d'inférence
La fonction principale d'un moteur d'inférence est de combler le fossé entre un modèle entraîné et son application dans le monde réel. Il effectue plusieurs optimisations critiques pour minimiser la latence d'inférence et maximiser le débit sans compromettre de manière significative la précision.
Les principales techniques d'optimisation sont les suivantes :
- Optimisation du graphe : Le moteur analyse le graphe de calcul du modèle et applique des optimisations telles que la « fusion de couches », qui combine plusieurs opérations séquentielles en une seule pour réduire la surcharge de calcul.
- Optimisation spécifique au matériel : Il compile le modèle pour qu'il s'exécute sur du matériel spécifique, tel que les CPU, les GPU ou les accélérateurs d'IA spécialisés comme les TPU de Google. Cela implique l'utilisation de noyaux de calcul hautement optimisés et adaptés à l'architecture du matériel.
- Réduction de la précision : Des techniques comme la quantification de modèle sont utilisées pour convertir les poids d'un modèle de nombres à virgule flottante de 32 bits en entiers de 16 bits ou 8 bits plus efficaces. Cela réduit considérablement l'utilisation de la mémoire et accélère les calculs, ce qui est particulièrement important pour l'edge computing.
- Élagage de modèle : Un moteur d'inférence peut faciliter l'exécution de modèles où les poids inutiles ont été supprimés par l'élagage de modèle, réduisant ainsi davantage la taille du modèle et la demande de calcul.
Moteurs d'inférence populaires
De nombreuses organisations ont développé des moteurs d'inférence haute performance pour accélérer les modèles de deep learning. Les choix populaires incluent :
- NVIDIA TensorRT: Un optimiseur et un runtime haute performance pour les GPU NVIDIA, offrant des vitesses d'inférence de pointe. Ultralytics offre une intégration transparente avec TensorRT pour le déploiement des modèles YOLO.
- OpenVINO d'Intel: Une boîte à outils open source pour optimiser et déployer des modèles sur le matériel Intel, y compris les CPU et les GPU intégrés. Les modèles Ultralytics peuvent être facilement exportés vers OpenVINO.
- ONNX Runtime : Un moteur multiplateforme développé par Microsoft qui peut exécuter des modèles au format ONNX (Open Neural Network Exchange) sur une large gamme de matériel.
- TensorFlow Lite (TFLite) : Une solution légère conçue spécifiquement pour le déploiement de modèles sur des appareils mobiles et embarqués, tels que ceux fonctionnant sous Android et iOS.
- Apache TVM : Un framework de compilation open source pour l'apprentissage automatique qui peut optimiser les modèles pour divers backends matériels.
Applications concrètes
Les moteurs d'inférence sont l'épine dorsale opérationnelle d'innombrables applications d'IA.
- Dans le domaine des solutions d'IA pour l'automobile, un moteur d'inférence s'exécute sur l'ordinateur de bord d'un véhicule pour traiter les données provenant des caméras et des capteurs. Il exécute un modèle de détection d'objets tel que Ultralytics YOLO11 pour identifier les piétons, les panneaux de signalisation et les autres véhicules en quelques millisecondes, ce qui permet de mettre en œuvre des fonctions de sécurité essentielles.
- Pour la fabrication intelligente, un moteur d'inférence sur le plancher d'une usine alimente un système de vision par ordinateur pour le contrôle de la qualité. Il analyse les images d'une chaîne de production en temps réel pour détecter les défauts, garantissant ainsi que les produits répondent aux normes de qualité avec une vitesse et une fiabilité élevées.
Moteur d'inférence vs. Concepts connexes
Il est utile de distinguer un moteur d'inférence des autres termes connexes dans le domaine du MLOps.
Framework ML vs. Moteur d'inférence : Un framework d'apprentissage automatique comme PyTorch est une bibliothèque complète pour la formation et le déploiement de modèles. Il comprend des outils pour construire des réseaux neuronaux, gérer des ensembles de données et exécuter des boucles de formation. Un moteur d'inférence, en revanche, est un outil hautement spécialisé axé exclusivement sur l'étape de déploiement. Alors qu'un framework possède des capacités d'inférence de base, un moteur d'inférence dédié offre des performances supérieures grâce à des optimisations agressives et spécifiques au matériel.
Service de modèle vs. Moteur d'inférence : Le service de modèle fait référence à l'infrastructure plus large permettant de rendre un modèle disponible sur un réseau, qui comprend des composants tels que les points de terminaison d'API, les équilibreurs de charge et les outils de surveillance. Le moteur d'inférence est le composant central d'un système de service de modèle qui exécute les demandes de prédiction. Vous pouvez explorer diverses options de déploiement de modèle pour voir comment les moteurs d'inférence s'intègrent dans l'ensemble du processus. Des plateformes comme Ultralytics HUB rationalisent l'ensemble de ce processus, de l'entraînement au déploiement optimisé.