Découvre comment ONNX améliore la portabilité et l'interopérabilité des modèles d'IA, permettant un déploiement transparent des modèles Ultralytics YOLO sur diverses plateformes.
Dans le domaine de l'intelligence artificielle (IA) et de l'apprentissage automatique (ML), qui évolue rapidement, il est crucial de déplacer efficacement les modèles entre différents outils et plateformes. ONNX (Open Neural Network Exchange) relève ce défi en fournissant un format open-source conçu spécifiquement pour les modèles d'IA. Il agit comme un traducteur universel, permettant aux développeurs de former un modèle dans un cadre, comme PyTorchet de le déployer à l'aide d'un autre cadre ou moteur d'inférence, tel que TensorFlow ou des moteurs d'exécution spécialisés comme ONNX Runtime. Cette interopérabilité rationalise le chemin de la recherche à la production, en favorisant la collaboration et la flexibilité au sein de l'écosystème de l'IA. ONNX a été initialement développé par Facebook AI Research et Microsoft Research et est désormais un projet communautaire florissant.
La valeur fondamentale d'ONNX est de promouvoir portabilité et interopérabilité dans le cycle de vie du développement de l'IA. Au lieu d'être enfermés dans l'écosystème d'un cadre spécifique, les développeurs peuvent s'appuyer sur ONNX pour déplacer librement les modèles entre différents outils et plateformes matérielles. En définissant un ensemble commun d'opérateurs (les blocs de construction de réseaux neuronaux) et un format de fichier standard (.onnx
), ONNX s'assure que la structure d'un modèle et les paramètres appris (poids) sont représentés de manière cohérente. Ceci est particulièrement bénéfique pour les utilisateurs de Ultralytics YOLO Ultralytics fournit des méthodes directes pour les modèles de exporter des modèles au format ONNX. Cette capacité d'exportation permet aux utilisateurs de prendre des modèles tels que YOLOv8 ou la dernière YOLO11 et les déployer sur une grande variété de plates-formes matérielles et logicielles, souvent à l'aide de logiciels optimisés. moteurs d'inférence pour une meilleure performance et accélération matérielle.
ONNX sert de pont crucial entre les environnements de formation modèles et les diverses cibles de déploiement. Voici deux exemples concrets :
Il est important de distinguer ONNX des termes apparentés :
.pt
/.pth
ou SavedModel de TensorFlow sont propres à leurs cadres respectifs. ONNX joue le rôle d'intermédiaire, permettant la conversion entre ces formats ou le déploiement via un runtime commun. TorchScript est un autre format pour la sérialisation des modèles PyTorch , parfois utilisé comme alternative ou précurseur de l'exportation ONNX .En résumé, ONNX est une norme essentielle pour assurer la flexibilité et l'interopérabilité dans le pipeline des opérations d'apprentissage automatique (MLOps ), permettant aux développeurs de choisir les meilleurs outils pour la formation et le déploiement sans être contraints par les limites du cadre. Des plateformes comme Ultralytics HUB s'appuient sur de tels formats pour simplifier le parcours entre le développement de modèles et l'application dans le monde réel.
Comment fonctionne ONNX
ONNX assure l'interopérabilité grâce à plusieurs caractéristiques techniques essentielles :