Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

ONNX Runtime

ia

Dé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

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis