VS Code 用 AI Toolkit (プレビュー) を使用してモデルを変換する
モデル変換は、開発者や AI エンジニアがローカルの Windows プラットフォームで事前に構築された機械学習モデルを変換、量子化、最適化、評価するのに役立つように設計された統合開発環境です。Hugging Face などのソースから変換されたモデルに対して、最適化し、NPU、GPU、CPU を搭載したローカルデバイスで推論を可能にする、合理化されたエンドツーエンドのエクスペリエンスを提供します。
前提条件
- VS Code がインストールされている必要があります。VS Code をセットアップするには、これらの手順に従ってください。
- AI Toolkit 拡張機能がインストールされている必要があります。詳細については、AI Toolkit をインストールするを参照してください。
プロジェクトを作成する
モデル変換でプロジェクトを作成することは、機械学習モデルの変換、最適化、量子化、評価に向けた最初のステップです。
-
AI Toolkit ビューを開き、[モデル] > [変換] を選択してモデル変換を起動します。
-
[新しいモデル プロジェクト] を選択して新しいプロジェクトを開始します。
-
ベース モデルを選択する
Hugging Face モデル
: サポートされているモデル リストから、定義済みのレシピを持つベース モデルを選択します。モデル テンプレート
: モデルがベース モデルに含まれていない場合は、カスタマイズされたレシピ用の空のテンプレートを選択します (高度なシナリオ)。
-
プロジェクトの詳細を入力します: 一意のプロジェクト フォルダーとプロジェクト名。
指定されたプロジェクト名の新しいフォルダーが、プロジェクト ファイルを保存するために選択した場所に作成されます。
初めてモデル プロジェクトを作成する場合、環境のセットアップに時間がかかる場合があります。
各プロジェクトには、README.md
ファイルが含まれています。閉じた場合でも、ワークスペースから再度開くことができます。
サポートされているモデル
モデル変換は現在、PyTorch 形式のトップ Hugging Face モデルを含む、増え続けるモデルのリストをサポートしています。
LLM モデル
モデル名 | Hugging Face パス |
---|---|
Qwen2.5 1.5B Instruct | Qwen/Qwen2.5-1.5B-Instruct |
DeepSeek R1 Distill Qwen 1.5B | deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B |
Meta LLaMA 3.2 1B Instruct | meta-llama/Llama-3.2-1B-Instruct |
Phi-3.5 Mini Instruct | Phi-3.5-mini-instruct |
非 LLM モデル
モデル名 | Hugging Face パス |
---|---|
Intel BERT Base Uncased (MRPC) | Intel/bert-base-uncased-mrpc |
BERT Multilingual Cased | google-bert/bert-base-multilingual-cased |
ViT Base Patch16-224 | google/vit-base-patch16-224 |
ResNet-50 | resnet-50 |
CLIP ViT-B-32 (LAION) | laion/CLIP-ViT-B-32-laion2B-s34B-b79K |
CLIP ViT Base Patch16 | clip-vit-base-patch16 |
CLIP ViT Base Patch32 | clip-vit-base-patch32 |
(オプション) 既存のプロジェクトにモデルを追加する
-
モデル プロジェクトを開く
-
[モデル] > [変換] を選択し、右側のパネルで [モデルの追加] を選択します。
-
ベース モデルまたはテンプレートを選択し、[追加] を選択します。
新しいモデル ファイルを含むフォルダーが、現在のプロジェクト フォルダーに作成されます。
(オプション) 新しいモデル プロジェクトを作成する
-
モデル プロジェクトを開く
-
[モデル] > [変換] を選択し、右側のパネルで [新規プロジェクト] を選択します。
-
または、現在のモデル プロジェクトを閉じ、最初から新しいプロジェクトを作成することもできます。
ワークフローを実行する
モデル変換でワークフローを実行することは、事前に構築された ML モデルを最適化された量子化された ONNX モデルに変換するコアステップです。
-
VS Code で [ファイル] > [フォルダーを開く] を選択して、モデル プロジェクト フォルダーを開きます。
-
ワークフロー構成を確認する
- [モデル] > [変換] を選択します。
- ワークフロー テンプレートを選択して、変換レシピを表示します。
変換
ワークフローは常に変換ステップを実行し、モデルを ONNX 形式に変換します。このステップは無効にできません。
量子化
このセクションでは、量子化のパラメーターを設定できます。
重要Hugging Face コンプライアンス警告: 量子化中に、キャリブレーション データセットが必要です。続行する前に、ライセンス条項に同意するよう求められる場合があります。通知を見逃した場合、実行中のプロセスは一時停止し、入力待ちになります。通知が有効になっており、必要なライセンスに同意していることを確認してください。
-
アクティベーションの種類: これは、ニューラル ネットワークの各レイヤーの中間出力 (アクティベーション) を表すために使用されるデータ型です。
-
重みの種類: これは、モデルの学習済みパラメーター (重み) を表すために使用されるデータ型です。
-
量子化データセット: 量子化に使用されるキャリブレーション データセット。
ワークフローが Hugging Face でライセンス契約の承認を必要とするデータセット (例: ImageNet-1k) を使用している場合、続行する前にデータセット ページで条件に同意するよう求められます。これは法的コンプライアンスのために必要です。
-
HuggingFace アクセス トークン ボタンを選択して、Hugging Face アクセス トークンを取得します。
-
[開く] を選択して、Hugging Face ウェブサイトを開きます。
-
Hugging Face ポータルでトークンを取得し、クイック ピックに貼り付けます。Enter キーを押します。
-
-
量子化データセット分割: データセットには、検証、訓練、テストなどの異なる分割を含めることができます。
-
量子化データセット サイズ: モデルを量子化するために使用されるデータの数。
アクティベーションと重みの種類に関する詳細については、データ型選択を参照してください。
このセクションを無効にすることもできます。この場合、ワークフローはモデルを ONNX 形式に変換するだけで、モデルを量子化しません。
評価
このセクションでは、モデルが変換されたプラットフォームに関係なく、評価に使用する実行プロバイダー (EP) を選択する必要があります。
- 評価対象: モデルを評価するターゲット デバイス。可能な値は次のとおりです。
- Qualcomm NPU: これを使用するには、互換性のある Qualcomm デバイスが必要です。
- AMD NPU: これを使用するには、サポートされている AMD NPU を搭載したデバイスが必要です。
- Intel NPU: これを使用するには、サポートされている Intel NPU を搭載したデバイスが必要です。
- CPU: どの CPU でも動作します。
- 評価データセット: 評価に使用されるデータセット。
- 評価データセット分割: データセットには、検証、訓練、テストなどの異なる分割を含めることができます。
- 評価データセット サイズ: モデルを評価するために使用されるデータの数。
このセクションを無効にすることもできます。この場合、ワークフローはモデルを ONNX 形式に変換するだけで、モデルを評価しません。
-
[実行] を選択してワークフローを実行します。
追跡しやすいように、ワークフロー名とタイムスタンプ (例:
bert_qdq_2025-05-06_20-45-00
) を使用して既定のジョブ名が生成されます。ジョブの実行中に、履歴ボードの[アクション]の下にあるステータス インジケーターまたは三点メニューを選択し、[実行を停止]を選択することで、ジョブをキャンセルできます。
Hugging Face コンプライアンス警告: 量子化中に、キャリブレーション データセットが必要です。続行する前に、ライセンス条項に同意するよう求められる場合があります。通知を見逃した場合、実行中のプロセスは一時停止し、入力待ちになります。通知が有効になっており、必要なライセンスに同意していることを確認してください。
モデル変換と量子化: LLM モデルを除き、任意のデバイスでワークフローを実行できます。量子化の構成は NPU のみに最適化されています。ターゲット システムが NPU でない場合は、このステップのチェックを外すことをお勧めします。
LLM モデルの量子化: LLM モデルを量子化したい場合は、Nvidia GPU が必要です。
別のデバイスで GPU を使用してモデルを量子化したい場合は、ご自身で環境をセットアップできます。ManualConversionOnGPU を参照してください。GPU が必要なのは「量子化」ステップのみであることに注意してください。量子化後、NPU または CPU でモデルを評価できます。
再評価のヒント
モデルが正常に変換された後、再評価機能を使用して、モデル変換なしで再度評価を実行できます。
履歴ボードに移動し、モデル実行ジョブを見つけます。[アクション]の下にある三点メニューを選択して、モデルを[再評価]します。
再評価には、異なる EP またはデータセットを選択できます。
失敗したジョブのヒント
ジョブがキャンセルまたは失敗した場合、ジョブ名を選択してワークフローを調整し、ジョブを再度実行できます。偶発的な上書きを避けるため、各実行は独自の構成と結果を含む新しい履歴フォルダーを作成します。
結果を表示する
[変換] の履歴ボードは、すべてのワークフロー実行を追跡、確認、管理するための中心的なダッシュボードです。モデル変換と評価を実行するたびに、履歴ボードに新しいエントリが作成され、完全なトレーサビリティと再現性が保証されます。
- 確認したいワークフロー実行を見つけます。各実行はステータス インジケーター (例: 成功、キャンセル済み) とともにリストされます。
- 実行名を選択して、変換構成を表示します。
- ステータス インジケーターの下にある[ログ]を選択して、ログと詳細な実行結果を表示します。
- モデルが正常に変換されると、メトリックの下に評価結果が表示されます。精度、レイテンシ、スループットなどのメトリックが各実行とともに表示されます。
モデル推論にサンプル ノートブックを使用する
-
履歴ボードに移動します。[アクション]の下にある三点メニューを選択します。
ドロップダウンから[サンプルでの推論]を選択します。
-
Python 環境を選択する
- Python 仮想環境を選択するよう求められます。既定のランタイムは次のとおりです:
C:\Users\{user_name}\.aitk\bin\model_lab_runtime\Python-WCR-win32-x64-3.12.9
。 - 既定のランタイムには必要なものがすべて含まれていることに注意してください。そうでない場合は、requirements.txt を手動でインストールしてください。
- Python 仮想環境を選択するよう求められます。既定のランタイムは次のとおりです:
-
サンプルは Jupyter Notebook で起動します。入力データやパラメーターをカスタマイズして、さまざまなシナリオをテストできます。
モデルの互換性: 変換されたモデルが推論サンプルで指定された EP をサポートしていることを確認してください。
サンプル場所: 推論サンプルは、履歴フォルダー内の実行成果物とともに保存されます。
エクスポートして他のユーザーと共有する
履歴ボードに移動します。[エクスポート] を選択して、モデル プロジェクトを他のユーザーと共有します。これにより、履歴フォルダーなしでモデル プロジェクトがコピーされます。他のユーザーとモデルを共有したい場合は、対応するジョブを選択します。これにより、モデルとその構成を含む選択された履歴フォルダーがコピーされます。
学んだこと
この記事では、次のことを学習しました。
- VS Code 用 AI Toolkit でモデル変換プロジェクトを作成する。
- 量子化と評価の設定を含む変換ワークフローを構成する。
- 事前に構築されたモデルを最適化された ONNX モデルに変換するために、変換ワークフローを実行する。
- メトリックとログを含む変換結果を表示する。
- モデル推論とテストにサンプル ノートブックを使用する。
- モデル プロジェクトをエクスポートして他のユーザーと共有する。
- 異なる実行プロバイダーまたはデータセットを使用してモデルを再評価する。
- 失敗したジョブを処理し、再実行のために構成を調整する。
- サポートされているモデルと、変換および量子化の要件を理解する。