onnx-runtime

Par mkurman · zorai

ONNX Runtime — optimiseur d'inférence ML multiplateforme. Convertissez des modèles PyTorch, TensorFlow et scikit-learn en ONNX. Accélération GPU, CPU et mobile. Quantification, optimisation de graphe et opérateurs personnalisés.

npx skills add https://github.com/mkurman/zorai --skill onnx-runtime

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

Références

Skills similaires