GUIDE Technique

ONNX et interopérabilité des modèles

ONNX (Open Neural Network Exchange) est un format standard ouvert permettant de représenter les modèles d'apprentissage automatique afin qu'ils puissent se déplacer librement entre les frameworks et les environnements d'exécution.

2 minutes de lectureDernière mise à jour

Aperçu

It lets you train a model in one tool, like PyTorch, and deploy it in another environment without rewriting it.

Plongée profonde

Différents frameworks (PyTorch, TensorFlow, scikit-learn) stockent les modèles dans des formats incompatibles, ce qui rend le déploiement pénible. ONNX, lancé en 2017 par Microsoft et Facebook et désormais régi par la Linux Foundation, résout ce problème en définissant un format de fichier commun et un ensemble standardisé d'opérateurs (comme Conv, MatMul, Relu) qui décrivent un modèle comme un graphe de calcul. Vous exportez un modèle entraîné vers un fichier .onnx et tout environnement d'exécution compatible peut le charger. Le runtime ONNX exécute ensuite le graphique efficacement sur divers matériels, en appliquant des optimisations telles que la fusion et la quantification d'opérateurs, et en acheminant le calcul vers des backends tels que les processeurs, les GPU NVIDIA (via TensorRT) ou des accélérateurs spécialisés. Cela dissocie la formation du modèle du déploiement.

Aperçu technique

Un modèle ONNX est un graphe de calcul sérialisé : les nœuds sont des opérateurs tirés d'un ensemble d'opérateurs versionnés (opset), et les arêtes portent des tenseurs avec des formes et des types définis. Les exportateurs tracent ou scriptent votre modèle pour capturer ce graphique. Lors de l'inférence, ONNX Runtime partitionne le graphique entre « fournisseurs d'exécution » (CPU, CUDA, TensorRT, etc.), chacun gérant les opérateurs qu'il prend en charge le mieux, et applique des optimisations au niveau du graphique telles que le repliement constant et la fusion de nœuds pour accélérer les choses.

Impact stratégique

Coût et budget

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.

Décisions plus claires

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.

Contrôle qualité

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.

L'avenir d'ONNX et l'interopérabilité des modèles

ONNX s'impose comme la lingua franca pour le déploiement de modèles, en particulier pour les services de périphérie et multiplateformes. Attendez-vous à une couverture d'opérateurs plus large pour les grands modèles de langage et les transformateurs, à une prise en charge plus stricte de l'inférence quantifiée et à faible bit, et à une intégration plus approfondie avec les environnements d'exécution des fournisseurs de matériel. À mesure que l'écosystème de puces IA spécialisées se développe, un format indépendant du fournisseur comme ONNX devient plus précieux, permettant aux équipes d'échanger du matériel sans réingénierie des modèles, et ONNX Runtime continue de s'étendre aux cibles mobiles et Web (via WebAssembly).

Mise en œuvre dans le monde réel

Exporter un classificateur d'images PyTorch vers ONNX et l'exécuter avec ONNX Runtime sur un serveur de production C++ sans dépendance Python.

Déploiement d'un modèle sur mobile ou navigateur via ONNX Runtime Web (WebAssembly) pour l'inférence sur l'appareil.

Accélération d'un transformateur exporté avec NVIDIA TensorRT en tant que fournisseur d'exécution ONNX Runtime pour une latence plus faible.

Quantification d'un modèle ONNX en int8 pour réduire sa taille et accélérer l'inférence sur les processeurs Edge.

Risques et garde-fous

L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.

Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.

Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.

Feuille de route de mise en œuvre

1

Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.

2

Benchmark dans des conditions de charge et de données réalistes.

3

Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.

4

Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.

Continuez à explorer

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the ONNX and Model Interoperability quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Démarrer le quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Questions fréquemment posées

What is ONNX and Model Interoperability?

ONNX (Open Neural Network Exchange) est un format standard ouvert permettant de représenter les modèles d'apprentissage automatique afin qu'ils puissent se déplacer librement entre les frameworks et les environnements d'exécution. Il vous permet d'entraîner un modèle dans un outil, comme PyTorch, et de le déployer dans un autre environnement sans le réécrire.

Quel problème principal ONNX résout-il principalement ?

ONNX définit un format partagé afin qu'un modèle formé dans un framework puisse être déployé dans un autre environnement sans être réécrit.

Comment un fichier ONNX représente-t-il un modèle ?

Un modèle ONNX est un graphe de calcul dont les nœuds sont des opérateurs standardisés (comme Conv, MatMul, Relu) reliés par des tenseurs.

Quelles entreprises ont initialement lancé ONNX en 2017 ?

ONNX a été introduit conjointement par Microsoft et Facebook en 2017 et est désormais hébergé par la Linux Foundation.

Dans ONNX Runtime, qu'est-ce qu'un « fournisseur d'exécution » ?

Les fournisseurs d'exécution sont des backends enfichables (CPU, CUDA, TensorRT, etc.) qu'ONNX Runtime utilise pour exécuter les opérateurs que chacun prend en charge le mieux.

Que définit la version « opset » (ensemble d'opérateurs) dans un modèle ONNX ?

La version opset spécifie sur quel ensemble standardisé et version d'opérateurs le modèle s'appuie, garantissant ainsi que les environnements d'exécution compatibles l'interprètent correctement.