モデルを ONNX 形式に変換する
AI Toolkit は、モデルをローカルで実行するために Open Neural Network Exchange (ONNX) 形式をサポートしています。ONNX は、機械学習モデルを表現するためのオープンスタンダードであり、共通の演算子セットと、さまざまなハードウェアプラットフォームでモデルを実行できるようにするファイル形式を定義しています。
Azure AI Foundry や Hugging Face などの他のカタログのモデルを AI Toolkit で使用するには、まず ONNX 形式に変換する必要があります。
このチュートリアルでは、Hugging Face モデルを ONNX 形式に変換し、AI Toolkit にロードする方法を説明します。
環境をセットアップする
Hugging Face または Azure AI Foundry からモデルを変換するには、Model Builder ツールが必要です。
環境をセットアップするには、次の手順に従ってください。
-
デバイスに Anaconda または Miniconda のいずれかがインストールされていることを確認してください。
-
Model Builder 専用の conda 環境を作成し、必要な依存関係 (
onnx
、torch
、onnxruntime_genai
、およびtransformers
) をインストールします。conda create -n model_builder python==3.11 -y conda activate model_builder pip install onnx torch onnxruntime_genai==0.6.0 transformers
注: Phi-4-mini などの特定の新しいモデルでは、GitHub から直接 transformers の最新の開発バージョンをインストールする必要がある場合があります。
pip install git+https://github.com/huggingface/transformers
Hugging Face モデルにアクセスする
Hugging Face モデルにアクセスする方法は複数あります。このチュートリアルでは、モデルリポジトリの管理を示す例として、huggingface_hub
CLI を使用します。
注: 続行する前に、Python 環境が正しくセットアップされていることを確認してください。
Hugging Face からモデルをダウンロードするには:
-
pip install -U "huggingface_hub[cli]"
-
ダウンロードしたリポジトリ内のすべてのファイルは、変換中に使用されます。
ディレクトリ構造を作成する
AI Toolkit は、作業ディレクトリから ONNX モデルをロードします。
- Windows:
%USERPROFILE%\.aitk\models
- Unix 系システム (macOS):
$HOME/.aitk/models
モデルが正しくロードされるようにするには、AI Toolkit の作業ディレクトリ内に必要な 4 層のディレクトリ構造を作成します。例:
mkdir C:\Users\Administrator\.aitk\models\microsoft\Phi-3.5-vision-instruct-onnx\cpu\phi3.5-cpu-int4-rtn-block-32
この例では、4 層のディレクトリ構造は microsoft\Phi-3.5-vision-instruct-onnx\cpu\phi3.5-cpu-int4-rtn-block-32
です。
4 層のディレクトリ構造の名前付けは重要です。各ディレクトリ層は、特定のシステムパラメータに対応しています: $publisherName\$modelName\$runtime\$displayName
。$displayName
は、拡張機能の左上にあるローカルモデルツリービューに表示されます。混乱を避けるために、異なるモデルには異なる displayName
値を使用してください。
モデルを ONNX 形式に変換する
モデルを ONNX 形式に変換するには、次のコマンドを実行します。
python -m onnxruntime_genai.models.builder -m $modelPath -p $precision -e $executionProvider -o $outputModelPath -c $cachePath --extra_options include_prompt_templates=1
一般的な精度と実行プロバイダーの組み合わせには、FP32 CPU
、FP32 CUDA
、FP16 CUDA
、FP16 DML
、INT4 CPU
、INT4 CUDA
、INT4 DML
などがあります。
モデルを ONNX 形式に変換するための完全なコマンド例を次に示します。
python -m onnxruntime_genai.models.builder -m C:\hfmodel\phi3 -p fp16 -e cpu -o C:\Users\Administrator\.aitk\models\microsoft\Phi-3-mini-4k-instruct\cpu\phi3-cpu-int4-rtn-block-32-acc-level-4 -c C:\temp --extra_options include_prompt_templates=1
精度と実行プロバイダーの詳細については、次のチュートリアルを参照してください。
モデルを AI Toolkit にロードする
変換後、ONNX モデルファイルを新しく作成したディレクトリに移動します。AI Toolkit は、アクティベーション時にこのディレクトリから ONNX モデルを自動的にロードします。
モデルは [MY MODELS] ビューにあります。モデルを使用するには、その名前をダブルクリックするか、[TOOLS] > [Playground] を開き、ドロップダウンリストからモデルを選択して操作を開始します。
注: AI Toolkit は、手動で追加されたモデルの直接削除をサポートしていません。モデルを削除するには、そのディレクトリを手動で削除してください。
変換をサポートするモデル
次の表に、AI Toolkit で ONNX 形式への変換がサポートされているモデルを示します。
サポートマトリックス | 現在サポート対象 | 開発中 | 今後対応予定 |
---|---|---|---|
モデルアーキテクチャ | DeepSeek 、Gemma 、Llama 、Mistral 、Phi (Language + Vision) 、Qwen 、Nemotron 、Granite 、AMD OLMo |
Whisper |
Stable Diffusion |