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.
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 telles que 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 d'apprentissage automatique. Cette interopérabilité est cruciale pour rationaliser le parcours du développement du modèle à la production. Au lieu d'être enfermées dans un seul écosystème, les équipes peuvent former 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 YOLO d'Ultralytics, par exemple, peuvent être facilement exportés au format ONNX, ce qui offre une flexibilité maximale pour le déploiement sur différentes plateformes.
La flexibilité d'ONNX le rend inestimable dans de nombreux scénarios de vision par ordinateur et de ML.
Déploiement de l'IA sur les appareils périphériques: Un développeur peut entraîner un modèle complexe de détection d'objets comme Ultralytics YOLO11 sur un ordinateur de bureau puissant équipé de GPU NVIDIA. Pour que l'application s'exécute sur un appareil périphérique de faible puissance comme un Raspberry Pi ou une caméra intelligente utilisée dans l'analyse de la vente au détail, le modèle est exporté vers ONNX. Il peut ensuite être optimisé par un moteur d'exécution comme ONNX Runtime ou OpenVINO pour une performance efficace sur le matériel cible sans avoir besoin de l'environnement PyTorch d'origine.
Intégrer des modèles dans diverses applications: Prenons l'exemple d'une entreprise de soins de santé qui construit un modèle d'analyse d'images médicales en utilisant 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 vers ONNX. L'application C# peut alors utiliser le Runtime ONNX pour .NET afin d'intégrer directement les capacités du modèle, ce qui réduit considérablement le temps de développement et la complexité.
Il est important de distinguer ONNX des termes apparentés :
.pt
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. Pour en savoir plus, visitez le site officiel d'ONNX et explorez le projet sur GitHub.
Comment fonctionne ONNX
ONNX fournit une définition standard d'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 mise en correspondance avec cette norme universelle. Le modèle qui en résulte
.onnx
contient à la fois la structure du réseau et les données formées. les poids du modèle.Ce fichier normalisé peut ensuite être chargé par tout outil prenant en charge la spécification ONNX. Cela inclut :