Transformers documentation

本番環境へのエクスポート

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

本番環境へのエクスポート

Transformers のモデルを、最適化されたランタイムやデバイス向けに異なる形式へエクスポートします。同じモデルをクラウドプロバイダーにデプロイしたり、モバイルやエッジデバイスで実行したりできます。各デプロイ環境ごとにモデルをゼロから書き直す必要はありません。あらゆる推論エコシステムに自由にデプロイできます。

ExecuTorch

ExecuTorchは、モバイルおよびエッジデバイス上でPyTorchモデルを実行します。モデルを標準化された演算子のグラフとしてエクスポートし、そのグラフをExecuTorchプログラムにコンパイルして、ターゲットデバイス上で実行します。ランタイムは軽量であり、実行計画を事前に計算します。

ソースからOptimum ExecuTorchをインストールします。

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

CLIツールを使用して、TransformersモデルをExecuTorchにエクスポートします。

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"

すべてのエクスポートオプションを確認するには、次のコマンドを実行します。

optimum-cli export executorch --help

ONNX

ONNX は、異なるフレームワークのモデルを記述するための共通言語です。モデルは、型・形状・メタデータが明確に定義された標準化された演算子のグラフとして表現されます。モデルはコンパクトな protobuf ファイルにシリアライズされ、最適化されたランタイムやエンジン間でデプロイできます。

Optimum ONNXは、設定オブジェクトを使用してモデルをONNXにエクスポートします。多くのアーキテクチャに対応しており、拡張も容易です。CLIツールまたはプログラム経由でモデルをエクスポートできます。

Optimum ONNXをインストールします。

uv pip install optimum-onnx

optimum-cli

--model 引数で、エクスポートするモデルと出力ディレクトリを指定します。

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

利用可能なすべての引数を確認するには、以下のコマンドを実行するか、詳細についてはoptimum.exporters.onnxでモデルをONNXにエクスポートするガイドを参照してください。

optimum-cli export onnx --help

ローカルモデルをエクスポートするには、重みとトークナイザーのファイルを同じディレクトリに保存してください。ディレクトリのパスを--model引数に渡し、--task引数を使用してタスクを指定します。--taskを指定しない場合、システムはモデルからタスクを自動推論するか、タスク固有のヘッドを持たないアーキテクチャを使用します。

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

ONNX Runtime を含む、ONNX をサポートする任意のランタイムでモデルをデプロイします。

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

Optimum ONNX を使用して、Transformers のモデルをプログラムでエクスポートします。モデルを指定して ORTModel をインスタンス化し、export=True を設定します。その後、save_pretrained を呼び出して ONNX モデルを保存します。

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