Découvrez comment ONNX améliore la portabilité et l'interopérabilité des modèles d'IA, permettant un déploiement transparent des modèlesYOLO d'Ultralytics sur diverses plateformes.
Open Neural Network ExchangeONNX est une norme à code source ouvert conçue pour représenter les modèles d'apprentissage machine (ML) d'une manière qui permette d'améliorer la qualité de l'information et de la communication. modèles d'apprentissage machine (ML) d'une manière qui de manière à garantir la portabilité des modèles dans différents cadres et matériels. Développé à l'origine par des entreprises telles que Microsoft et Facebook, ONNX sert de "traducteur universel" pour l'IA. Il permet aux développeurs de former un modèle dans un écosystème, tel que PyTorchet de le déployer de manière transparente dans un autre écosystème, comme PyTorch un autre, comme TensorFlow ou un moteur d'inférence moteur d'inférence spécialisé. Cette interopérabilité élimine la nécessité de reconstruire ou d'entraîner à nouveau les réseaux lors du passage d'un environnement de recherche à des applications de production, de production, ce qui simplifie considérablement le le pipeline de déploiement des modèles.
ONNX définit un ensemble commun d'opérateurs - les éléments constitutifs des modèles d'apprentissage profond (DL) et d'apprentissage automatique - et de modèles d'apprentissage automatique. modèles d'apprentissage profond (DL) et d'apprentissage automatique, ainsi qu'un un format de fichier standard. Lorsqu'un modèle est converti en ONNX, sa structure de calcul est mappée en un graphe de calcul statique. graphique de calcul statique. Dans ce graphe, les nœuds représentent des opérations mathématiques (comme les convolutions ou les fonctions d'activation), et les arêtes représentent le flux de tenseurs de données entre eux.
Cette représentation graphique étant normalisée, les fabricants de matériel peuvent créer des fournisseurs d'exécution optimisés pour
ONNX. Cela signifie qu'un seul .onnx peut être accéléré sur divers matériels, y compris un ordinateur de bureau.
CPU,
GPU (unité de traitement graphique)ou
spécialisés
TPU Tensor Processing Unit)souvent
à l'aide de l'outil performant ONNX Runtime.
Pour les utilisateurs de l'application ultralytics la conversion d'un modèle entraîné au format ONNX est un processus simple.
simple. La bibliothèque gère automatiquement le mappage complexe des couches au standard ONNX . L'extrait de code suivant
suivant montre comment exporter un modèle YOLO11 modèle, le préparant ainsi à un déploiement plus large.
à un déploiement plus large.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")
La flexibilité d'ONNX en fait un composant essentiel des infrastructures modernes d'IA, en particulier pour les tâches de vision par ordinateur (CV). pour les tâches de vision artificielle (CV).
Comprendre comment ONNX interagit avec d'autres outils aide à choisir la bonne stratégie de déploiement.
.pt ou
Keras .h5 sont excellents pour la formation et l'épargne
poids du modèle dans leurs écosystèmes spécifiques.
Cependant, ils nécessitent souvent l'installation du cadre original pour faire fonctionner le modèle. ONNX dissocie le modèle du cadre
du cadre d'apprentissage, ce qui facilite l'exécution
IA de pointe les déploiements où l'installation d'une bibliothèque
n'est pas pratique en raison de contraintes de stockage ou de mémoire.