モデルのONNX形式への変換

Foundry Toolkitは、ローカル環境でモデルを実行するためにOpen Neural Network Exchange (ONNX) 形式をサポートしています。ONNXは機械学習モデルを表現するためのオープンスタンダードであり、共通の演算子セットとファイル形式を定義することで、さまざまなハードウェアプラットフォーム間でモデルを実行できるようにします。

Microsoft FoundryやHugging Faceなど、他のカタログからモデルをFoundry Toolkitで使用するには、事前にそれらをONNX形式に変換する必要があります。

このチュートリアルでは、Hugging FaceモデルをONNX形式に変換し、Foundry Toolkitにロードする手順を説明します。

環境のセットアップ

Hugging FaceやMicrosoft Foundryからモデルを変換するには、Model Builderツールが必要です。

以下の手順に従って環境をセットアップしてください。

  1. デバイスにAnacondaまたはMinicondaがインストールされていることを確認してください。

  2. Model Builder専用のconda環境を作成し、必要な依存関係(onnxtorchonnxruntime_genaitransformers)をインストールします。

    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からモデルをダウンロードするには

  1. CLIのインストール:

    pip install -U "huggingface_hub[cli]"
    
  2. モデルリポジトリのダウンロード.

  3. ダウンロードされたリポジトリ内のすべてのファイルは、変換時に使用されます。

ディレクトリ構造の作成

Foundry Toolkitは、その作業ディレクトリからONNXモデルをロードします。

  • Windows: %USERPROFILE%\.aitk\models
  • Unix系システム (macOS): $HOME/.aitk/models

モデルを正しくロードするには、Foundry 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 CPUFP32 CUDAFP16 CUDAFP16 DMLINT4 CPUINT4 CUDAINT4 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

精度と実行プロバイダーの詳細については、以下のチュートリアルを参照してください。

Foundry Toolkitへのモデルのロード

変換後、ONNXモデルファイルを新しく作成したディレクトリに移動します。Foundry Toolkitは、アクティブ化時にこのディレクトリから自動的にONNXモデルをロードします。

モデルは MY MODELS ビューで見つけることができます。モデルを使用するには、名前をダブルクリックするか、TOOLS > Playground を開き、ドロップダウンリストからモデルを選択して対話を開始します。

注:Foundry Toolkitは、手動で追加されたモデルの直接削除をサポートしていません。モデルを削除するには、ディレクトリを手動で削除してください。

変換サポート対象モデル

以下の表は、Foundry ToolkitでONNX形式への変換がサポートされているモデルの一覧です。

サポートマトリックス 現在サポート中 開発中 ロードマップ
モデルアーキテクチャ DeepSeek, Gemma, Llama, Mistral, Phi (言語 + ビジョン), Qwen, Nemotron, Granite, AMD OLMo Whisper Stable Diffusion
© . This site is unofficial and not affiliated with Microsoft.