Découvrez comment ONNX améliore la portabilité et l'interopérabilité des modèles d'IA, permettant un déploiement transparent des modèles YOLO d'Ultralytics 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 d'entraîner un modèle dans un cadre, comme PyTorch, puis de le déployer en utilisant un autre cadre ou moteur d'inférence, comme TensorFlow ou des runtimes spécialisés comme ONNX Runtime. Cette interopérabilité simplifie le passage 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 maintenant 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 des modèles entre différents outils et plateformes matérielles. En définissant un ensemble commun d'opérateurs (les éléments constitutifs de la technologie 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 Ultralytiques YOLO Ultralytics fournit des méthodes directes pour les modèles de exportation de modèles au format ONNX. Cette capacité d'exportation permet aux utilisateurs de prendre des modèles tels que YOLOv8 ou le dernier 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 des performances accrues 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 Modèle sauvegardé de TensorFlow sont natifs de leurs frameworks respectifs. ONNX agit comme un 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 ces 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 :