Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

ONNX (Open Neural Network Exchange)

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 Ultralytics YOLO sur diverses plateformes.

ONNX (Open Neural Network Exchange) est un format open source pour représenter les modèles d'apprentissage automatique (ML). Co-développé par des entreprises comme Microsoft et Facebook, ONNX agit comme un traducteur universel, permettant aux développeurs de déplacer des modèles entre différents cadres et outils de ML. Cette interopérabilité est cruciale pour rationaliser le parcours du développement de modèles à la production. Au lieu d'être enfermées dans un seul écosystème, les équipes peuvent entraîner un modèle dans un cadre, comme PyTorch, et le déployer pour l'inférence en utilisant un autre, comme TensorFlow ou un moteur d'inférence spécialisé. Les modèles Ultralytics YOLO, par exemple, peuvent être facilement exportés au format ONNX, offrant une flexibilité maximale pour le déploiement sur diverses plateformes.

Comment fonctionne ONNX

ONNX fournit une définition standard pour un graphe de calcul, ainsi qu'une liste d'opérateurs intégrés. Lorsque vous convertissez un modèle au format ONNX, son architecture—composée de couches et d'opérations mathématiques—est mappée à cette norme universelle. Le .onnx le fichier contient à la fois la structure du réseau et les données entraînées poids du modèle.

Ce fichier standardisé peut ensuite être chargé par n'importe quel outil prenant en charge la spécification ONNX. Cela comprend :

  • Frameworks d'apprentissage profond : Les frameworks tels que PyTorch et TensorFlow disposent d'utilitaires pour importer et exporter des modèles ONNX.
  • Temps d'exécution de l'inférence : les environnements d'exécution haute performance tels que ONNX Runtime, OpenVINO d'Intel et TensorRT de NVIDIA sont conçus pour exécuter efficacement les modèles ONNX sur du matériel spécifique, tel qu'un CPU ou un GPU.
  • Services infonuagiques : Les principales plateformes infonuagiques, y compris Azure Machine Learning et Amazon SageMaker, utilisent ONNX pour simplifier le service de modèles.

Applications concrètes d'ONNX

La flexibilité d'ONNX le rend inestimable dans de nombreux scénarios de vision par ordinateur et de ML.

  1. Déploiement de l'IA sur des appareils Edge : Un développeur peut entraîner un modèle complexe de détection d'objets comme Ultralytics YOLO11 sur un ordinateur de bureau puissant avec des GPU NVIDIA. Pour que l'application s'exécute sur un appareil Edge à faible consommation d'énergie comme un Raspberry Pi ou une caméra intelligente utilisée dans l'analyse du commerce de détail, le modèle est exporté vers ONNX. Il peut ensuite être optimisé par un runtime comme ONNX Runtime ou OpenVINO pour des performances efficaces sur le matériel cible sans avoir besoin de l'environnement PyTorch d'origine.

  2. Intégration de modèles dans diverses applications : Prenons l'exemple d'une entreprise du secteur de la santé qui crée un modèle d'analyse d'images médicales à l'aide de Python et TensorFlow. L'infrastructure logicielle existante de l'hôpital est construite en C# et .NET. Au lieu de réécrire le modèle, l'équipe l'exporte au format ONNX. L'application C# peut alors utiliser ONNX Runtime pour .NET afin d'intégrer directement les capacités du modèle, ce qui réduit considérablement le temps et la complexité du développement.

ONNX vs. Related Concepts

Il est important de distinguer ONNX des termes connexes :

  • Formats spécifiques aux frameworks: Les formats comme celui de PyTorch .pt ou SavedModel de TensorFlow sont natifs de leurs frameworks respectifs. ONNX sert 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 à l'exportation ONNX.
  • Moteurs d'inférence/environnements d'exécution : Des outils comme ONNX Runtime, TensorRT et OpenVINO sont des bibliothèques logicielles conçues pour exécuter efficacement des modèles de ML. Beaucoup de ces moteurs peuvent consommer des modèles ONNX, en appliquant souvent d'autres optimisations (comme la quantification ou la fusion de graphes) pour des cibles matérielles spécifiques. ONNX fournit l'entrée de modèle standardisée pour ces moteurs.

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 l'entraînement et le déploiement sans être limités par les limitations du framework. Des plateformes comme Ultralytics HUB tirent parti de ces formats pour simplifier le parcours du développement de modèles à l'application dans le monde réel. Pour en savoir plus, consultez le site web officiel d'ONNX et explorez le projet sur GitHub.

Rejoignez la communauté Ultralytics

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

Rejoindre maintenant
Lien copié dans le presse-papiers