Aperçu
ONNX Runtime est un moteur d'inférence ML multiplateforme qui exécute des modèles au format ONNX. Supporte l'inférence CPU, GPU (CUDA, DirectML) et mobile avec optimisations de graphe, quantification et opérateurs personnalisés.
Installation
uv pip install onnxruntime # CPU
uv pip install onnxruntime-gpu # CUDA
# Convertir d'abord : depuis transformers, PyTorch, etc.
Inférence basique
import onnxruntime as ort
import numpy as np
session = ort.InferenceSession("model.onnx")
input_name = session.get_inputs()[0].name
output_name = session.get_outputs()[0].name
result = session.run([output_name], {input_name: np.random.randn(1, 3, 224, 224).astype(np.float32)})
print(result[0].shape)
GPU et optimisation
# Inférence GPU
session = ort.InferenceSession("model.onnx", providers=["CUDAExecutionProvider"])
# Activer les optimisations
options = ort.SessionOptions()
options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_ALL
session = ort.InferenceSession("model.onnx", sess_options=options)
Quantification
from onnxruntime.quantization import quantize_dynamic, QuantType
quantize_dynamic("model.onnx", "model_quantized.onnx", weight_type=QuantType.QInt8)
# ~4x plus petit, perte de précision minimale