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.
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 :
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 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.
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.
Il est important de distinguer ONNX des termes connexes :
.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.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.