Transformers documentation

Exportation vers la production

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Exportation vers la production

Exportez les modèles de Transformers vers différents formats pour des runtimes et des appareils optimisés. Déployez le même modèle chez des fournisseurs cloud ou exécutez-le sur des appareils mobiles et edge. Vous n’avez pas besoin de réécrire le modèle de zéro pour chaque environnement de déploiement. Déployez librement dans n’importe quel écosystème d’inférence.

ExecuTorch

ExecuTorch exécute des modèles PyTorch sur des appareils mobiles et embarqués. Il exporte un modèle sous forme de graphe d'opérateurs standardisés, compile ce graphe en un programme ExecuTorch, puis l'exécute sur l'appareil cible. Le runtime est léger et calcule le plan d'exécution à l'avance.

Installer Optimum ExecuTorch à partir du code source.

git clone https://github.com/huggingface/optimum-executorch.git
cd optimum-executorch
pip install '.[dev]'

Exporter un modèle Transformers vers ExecuTorch à l'aide de l'outil CLI.

optimum-cli export executorch \
    --model "Qwen/Qwen3-8B" \
    --task "text-generation" \
    --recipe "xnnpack" \
    --use_custom_sdpa \
    --use_custom_kv_cache \
    --qlinear 8da4w \
    --qembedding 8w \
    --output_dir="hf_smollm2"

Exécutez la commande suivante pour afficher toutes les options d’exportation.

optimum-cli export executorch --help

ONNX

ONNX est un langage commun pour décrire des modèles issus de différents frameworks. Il représente les modèles sous forme de graphe d’opérateurs standardisés, dotés de types, de formes et de métadonnées bien définis. Les modèles sont sérialisés en fichiers protobuf compacts, que vous pouvez déployer sur des runtimes et des moteurs optimisés.

Optimum ONNX exporte des modèles au format ONNX à l'aide d'objets de configuration. Il prend en charge de nombreuses architectures et est facilement extensible. Exportez les modèles via l'outil CLI ou de manière programmatique.

Installer Optimum ONNX.

uv pip install optimum-onnx

optimum-cli

Spécifiez le modèle à exporter et le répertoire de sortie avec l’argument --model.

optimum-cli export onnx --model Qwen/Qwen3-8B Qwen/Qwen3-8b-onnx/

Exécutez la commande suivante pour afficher tous les arguments disponibles ou consultez le guide Exporter un modèle vers ONNX avec optimum.exporters.onnx pour plus de détails.

optimum-cli export onnx --help

Pour exporter un modèle local, enregistrez les fichiers de poids et de tokenizer dans le même répertoire. Transmettez le chemin du répertoire à l'argument --model et utilisez l'argument --task pour spécifier la tâche. Si vous ne fournissez pas --task, le système l'infère automatiquement à partir du modèle ou utilise une architecture sans tête spécifique à la tâche.

optimum-cli export onnx --model path/to/local/model --task text-generation Qwen/Qwen3-8b-onnx/

Déployez le modèle avec n'importe quel runtime prenant en charge ONNX, y compris ONNX Runtime.

from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8b-onnx")
model = ORTModelForCausalLM.from_pretrained("Qwen/Qwen3-8b-onnx")
inputs = tokenizer("Plants generate energy through a process known as ", return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs))

optimum.onnxruntime

Exporter les modèles de Transformers de manière programmatique avec Optimum ONNX. Instanciez un ORTModel avec un modèle et définissez export=True. Enregistrez le modèle ONNX avec save_pretrained.

from optimum.onnxruntime import ORTModelForCausalLM
from transformers import AutoTokenizer

ort_model = ORTModelForCausalLM.from_pretrained("Qwen/Qwen3-8b", export=True)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8b")

ort_model.save_pretrained("onnx/")
tokenizer.save_pretrained("onnx/")
Update on GitHub