Format Atlas

Données

Qu’est-ce que ONNX ?

ONNX (Open Neural Network Exchange) est une représentation ouverte pour échanger des modèles d’apprentissage automatique entre frameworks et runtimes d’inférence. Un fichier `.onnx` courant stocke un ModelProto Protocol Buffers décrivant graphe de calcul, entrées et sorties, types et formes, imports d’opset et tenseurs initiaux. Safetensors stocke surtout les poids tensoriels ; ONNX représente aussi un graphe de modèle. La conversion ne garantit pas que chaque runtime prenne en charge tous les opérateurs ou fonctions spécifiques : vérifiez les versions IR/opset et le support de l’implémentation.

.onnxÉchange de modèles par graphe de calcul

Quand choisir ce format

  • Inférence sur un runtime compatible avec les opérateurs et l’opset du modèle
  • Échange d’un graphe incluant entrées sorties et types

Quand éviter ce format

  • Supposer que tous les runtimes acceptent chaque opérateur et préservent précision et performances
  • Stocker uniquement des poids tensoriels sans graphe d’inférence ou configuration

Usages courants

  • Échanger graphes de calcul et poids ML avec des runtimes compatibles
  • Transférer des modèles entre frameworks d’entraînement et environnements d’inférence

Caractéristiques

  • ModelProto Protocol Buffers contenant le graphe et les informations du modèle
  • Nœuds faisant référence aux opérateurs définis par domaine et version d’opset
  • Tenseurs initiaux intégrés ou stockés dans des fichiers externes

Avantages et inconvénients

Avantages

  • Graphe de modèle commun entre runtimes d’inférence compatibles
  • Informations de types pour entrées et sorties utiles à la validation et l’optimisation
  • Gestion de grands tenseurs dans des fichiers externes

Inconvénients

  • Le support des opérateurs opsets types et optimisations diffère selon les runtimes
  • Les sorties ou performances converties peuvent différer du framework source
  • Les fichiers externes doivent rester associés au modèle .onnx

Ouvrir et convertir

Comment ouvrir

Chargez-le avec ONNX checker ou un runtime d’inférence compatible. Avant déploiement, vérifiez versions IR/opset, opérateurs, types et formes d’entrée/sortie et support du runtime ; comparez les sorties au modèle source sur des entrées représentatives.

Comment convertir

Exportez avec l’exporteur ONNX du framework source puis validez la structure avec ONNX checker. Une conversion réussie ne garantit ni équivalence numérique ni exécution sur l’appareil cible. Avec des données externes, conservez le modèle et tous les fichiers référencés dans le même lot de distribution.

Précautions

  • Ne supprimez ne renommez ni ne déplacez les fichiers annexes référencés par les tenseurs externes
  • Les emplacements externes peuvent contenir des chemins relatifs ; inspectez les références des modèles non fiables et utilisez un chargeur maintenu
  • Validez conversion prétraitement post-traitement et précision même si le fichier ONNX est valide

Questions fréquentes

ONNX est-il uniquement un fichier de poids ?

Non. ModelProto décrit un graphe de calcul ainsi que les opérateurs et types, et peut inclure des tenseurs initiaux. Les grands tenseurs peuvent aussi être stockés dans des fichiers externes.

ONNX et Safetensors ont-ils le même usage ?

Non. Safetensors stocke surtout des poids tensoriels ; ONNX représente un graphe de modèle pour l’inférence. Ils peuvent être utilisés ensemble.

Tout runtime d’inférence peut-il exécuter tout modèle ONNX ?

Non. Vérifiez la prise en charge de l’IR/opset, des opérateurs, types de données et appareil cible du modèle.

Formats associés

Comparer

Usages et vérifications associés

Vérifications avant de transmettre un modèle d'IA

Références et spécifications