ONNX Runtime
iaDéfinition
ONNX Runtime (ORT) est un moteur d'inference machine learning open-source developpe par Microsoft qui execute des modeles au format ONNX (Open Neural Network Exchange). ONNX est un format intermediaire standardise permettant de transferer des modeles entre differents frameworks (PyTorch, TensorFlow, Keras, scikit-learn) et de les optimiser pour differents backends d'execution. Les optimisations principales d'ONNX Runtime : graph fusion (fusionner des operations successives en une seule), constant folding (precalculer les constantes), memory planning (planification optimale de la memoire), et quantisation (INT8, FP16). Ces optimisations permettent typiquement un gain de 2-5x de throughput par rapport a PyTorch eager mode pour les modeles d'inference. Les Execution Providers (EP) sont les backends d'ONNX Runtime : CPUExecutionProvider (par defaut, optimise AVX-512), CUDAExecutionProvider (GPU NVIDIA avec cuDNN), TensorrtExecutionProvider (TensorRT NVIDIA — le plus rapide), ROCmExecutionProvider (GPU AMD), CoreMLExecutionProvider (Apple Silicon), DirectMLExecutionProvider (Windows GPU generique). ORT selectionne automatiquement le meilleur EP disponible. Hugging Face Optimum est la bibliotheque qui integre ONNX Runtime avec les transformers HuggingFace : un seul appel exporte le modele en ONNX et applique les optimisations. Pour les taches d'inference intensive (embeddings par millions, classification a grande echelle), Optimum+ONNX Runtime offre generalement 3-10x d'acceleration sur CPU par rapport aux transformers PyTorch natifs. Pour les LLMs, ONNX Runtime est moins frequent car les modeles trop grands ne beneficient pas autant du format ONNX (les optimisations flash attention ne sont pas toujours portables). Des alternatives specialisees comme llama.cpp, TensorRT-LLM ou vLLM sont generalement preferees pour l'inference LLM a grande echelle.
Exporter et executer avec Optimum + ONNX Runtime
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer
# Exporter le modele BERT en ONNX avec quantisation
model = ORTModelForSequenceClassification.from_pretrained(
'distilbert-base-uncased-finetuned-sst-2-english',
export=True,
provider='CUDAExecutionProvider' # Utiliser GPU
)
# Inference identique a HuggingFace standard
tokenizer = AutoTokenizer.from_pretrained('distilbert-base-uncased')
inputs = tokenizer('Ce modele est excellent!', return_tensors='pt')
outputs = model(**inputs)
# Throughput: ~3x plus rapide qu'eager mode PyTorch sur CPU
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h