Zubnet AIApprendreWiki › ONNX
Infrastructure

ONNX

Open Neural Network Exchange
Un format ouvert pour représenter des modèles de machine learning qui permet l'interopérabilité entre frameworks. Un modèle entraîné en PyTorch peut être exporté en ONNX puis faire tourné en utilisant ONNX Runtime, TensorRT ou d'autres engines d'inférence optimisés pour du hardware spécifique. ONNX agit comme un langage commun entre le monde de l'entraînement (PyTorch, TensorFlow) et le monde du déploiement (runtimes optimisés).

Pourquoi c'est important

ONNX résout un vrai problème de production : tu entraînes en PyTorch (le standard de recherche) mais tu déploies sur du hardware qui tourne mieux avec un runtime différent. Convertir en ONNX te laisse utiliser des engines d'inférence optimisés sans réécrire ton modèle. C'est spécialement important pour le déploiement edge où tu as besoin de la performance maximale sur du hardware limité.

Deep Dive

ONNX defines a computation graph format: nodes represent operations (matrix multiply, convolution, attention), edges represent tensors flowing between operations. The graph includes all the information needed to run the model: architecture, weights, input/output shapes, and operator definitions. ONNX Runtime (Microsoft) is the most popular runtime, supporting CPU, GPU, and specialized accelerators.

When to Use ONNX

ONNX is most useful when: (1) you need to deploy on non-NVIDIA hardware (Intel, AMD, ARM, mobile) where PyTorch CUDA isn't available, (2) you need maximum inference speed and ONNX Runtime's optimizations outperform PyTorch, or (3) you're integrating a model into a non-Python application (ONNX Runtime has C++, C#, Java, and JavaScript bindings). For standard GPU inference with large LLMs, specialized serving frameworks (vLLM, TGI) typically outperform ONNX.

Limitations

Not all PyTorch operations convert cleanly to ONNX, especially custom operators and dynamic architectures. Complex models may require manual intervention to export correctly. ONNX also lags behind cutting-edge architectures — new model types may not be supported until ONNX operators are added. For LLM inference specifically, the GGUF/llama.cpp ecosystem and TensorRT-LLM have become more popular than ONNX for most use cases.

Concepts liés

← Tous les termes
← Ollama Open vs. Closed →