モデルを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 を手動でインストールしてください。
-
サンプルはJupyter Notebookで起動します。入力データやパラメーターをカスタマイズして、さまざまなシナリオをテストできます。
モデルの互換性: 変換されたモデルが、推論サンプルで指定されたEPをサポートしていることを確認してください。
サンプルの場所: 推論サンプルは、実行アーティファクトとともに履歴フォルダーに保存されます。
エクスポートして他のユーザーと共有する
履歴ボードに移動します。エクスポート を選択して、モデルプロジェクトを他のユーザーと共有します。これにより、履歴フォルダーなしでモデルプロジェクトがコピーされます。モデルを他のユーザーと共有したい場合は、対応するジョブを選択します。これにより、モデルとその構成を含む選択された履歴フォルダーがコピーされます。