Windows MLでカスタムONNXを実行・配布する方法|CPU・GPU・NPUとEPの選び方

公開日
2026-09-16
更新日
2026-09-29
情報確認日
2026-09-29
編集・運営
Local AI Compass

Windows MLは、既製のチャットアプリを選ぶ記事ではなく、自分で用意したONNXモデルをWindowsアプリへ組み込むための実行基盤です。まずCPUでモデルを動かし、次にGPU・NPUのExecution Provider(EP)を明示的に選び、最後にモデル・runtime・EPの配布方法を決める順番にすると、PCスペック表だけでは分からない失敗を切り分けやすくなります。

導入前に確認すること

  • Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
  • 最初は軽量モデル、短い質問、少ない同時作業から始める
  • 公式サイトの対応OS、利用規約、モデルのライセンスを確認する

30秒結論:Windows MLは「自分のONNXモデルを配る」ための選択肢

Windows上のローカルAIは、組み込みAPI、ready-to-use model、custom modelで入口が違います。Windows AI APIsはWindowsが用意する機能、Foundry Localはready-to-useのオープンモデルとOpenAI互換API、Windows MLは自分で用意・変換したONNXモデルをアプリへ組み込む基盤です。

Windows AI APIs 組み込み機能

OCR、Speech Recognitionなど、Windowsが提供するAPIを少ないコードで使う。

Foundry Local ready-to-use runtime

モデルcatalogからLLMや音声モデルを選び、ローカルAPIやSDKで呼び出す。

Windows ML custom ONNX基盤

自分のONNXモデル、推論パイプライン、EP、配布方式を管理する。

そのため、Windows MLの記事でCLI・GGUF・OpenAI互換endpointを手順の中心にしません。対象が「自分のONNXモデルをWindowsアプリへ配布する」ならWindows ML、既製モデルをAPIで使うならFoundry Local、Windowsの機能を組み込むならWindows AI APIsへ戻ります。

カスタムONNXとGGUF・既製LLMを混同しない

Windows MLの最小経路はONNXモデルをCPUで推論する流れです。PyTorch、TensorFlow/Keras、TFLite、scikit-learnなどからONNXへ変換して持ち込むこともできますが、変換できたことと、対象EPで正しく・速く動くことは別に検証します。

Windows MLと他のWindowsローカルAI選択肢の所有者
手元にあるもの最初に見る所有者判断の境界
自分で変換・学習したONNXWindows ML入力・出力shape、opset、モデルasset、CPU→EPの順に検証する
GGUFのチャットモデルLM Studio・llama.cpp・OllamaGGUFをWindows MLのONNXモデルとそのまま扱わない
Microsoftの組み込みAI機能Windows AI APIsAPIごとのCopilot+ PC、NPU・GPU・CPU条件を公式表で確認する
ready-to-use LLM・音声モデルをAPIで使うFoundry Localモデルalias、runtime、local endpoint、実行EPを分ける
LLMをONNXの生成ループまで組み込むONNX Runtime GenAI / Windows ML0.x previewのAPI・対応モデル・EPを利用時点の公式資料で確認する

「ONNX対応」と書かれていても、モデルが使うoperator、dynamic shape、tokenizer、前後処理、量子化、EPの対応は別です。まず短い固定入力をCPUで通し、出力が正しいことを確認してから加速へ進みます。

既存ONNXのEP互換性はWindows ML CLIで先に調べる

既存ONNXのoperatorやshapeがGPU・NPUのExecution Providerで動くかを整理したい開発者は、必要に応じてWindows ML CLIのwinml analyzeを使えます。公式CLIはtarget EPに対するgraph analysisからunsupportedやCPU fallbackの可能性を分類し、optimize、quantize、compile、buildでmodel artifactを準備できます。

Windows ML CLIでONNX modelを分析・準備する目的別の入口
目的CLIの入口次に確認すること
既存ONNXの互換性を調べるwinml analyzetarget EP、operator/shapeの対応、partial supportやCPU fallbackを確認する
graphを調整・量子化するwinml optimize / quantize元modelを残し、taskの出力と許容誤差を比較する
EP向けartifactをcompile/buildするwinml compile / build対象デバイスのWindows build、driver、実際のEPで再確認する

analyzeはONNX graphのstatic analysisであり、target PCでの推論成功、数値一致、速度を実測する代わりにはなりません。Windows ML runtimeのARM64対応と、CLIの実行環境も分けます。現行installation docsではPython 3.11とuvを使い、Arm64端末でもx64 PythonをWindows emulationで実行する前提です。CLIを導入するときは、公式のtool availabilityとprerequisiteを先に確認してください。

最小実行はCPUから始める:Windows・x64/ARM64・言語前提

Microsoftのget startedは、まずCPUでONNXモデルを実行し、動いた後にNPUやGPUのhardware-tuned EPを追加する順番を示しています。CPUでの基準がないままEPだけを変えると、モデルの問題、driverの問題、EPの問題を分けにくくなります。

Windows MLの最小実行とEP導入前チェック
確認項目公式資料の前提実装前の判断
WindowsWindows App SDKが対応するWindows。hardware-optimized EP catalogはWindows 11 24H2(build 26100)以降CPUの最小実行と、NPU・特定GPUの加速条件を分ける
architecturex64またはARM64モデルasset、native dependency、package targetを同じarchitectureで確認する
C#/.NET.NET 8以降でWindows ML APIをすべて利用。.NET 6はAPI制限ありtarget frameworkと使用APIを先に固定する
C++C++20以降、Visual Studio 2022のC++ workload、CMake 3.21以降build toolの前提をruntimeやモデルの前提と混ぜない
PythonPython 3.10〜3.13、x64・ARM64Python packageとWindows ML runtimeのarchitectureをそろえる
  1. ONNXモデル、tokenizerや設定などの関連asset、入力・出力仕様、licenseを記録する。
  2. Windows MLのlanguage-specific packageを対象architectureへ追加し、公式の最小APIでCPU推論を行う。
  3. 同じ入力を複数回実行し、出力、shape、エラー、CPU負荷、処理時間を基準値として保存する。
  4. 必要性がある場合だけ対象GPU・NPUのEPを追加し、CPU基準と同じモデル・入力で比較する。
  5. EPを替えた後は速度だけでなく、出力の正しさ、メモリ、初回取得、再現性を確認する。

公式要件を満たすことは、特定モデルのロード成功、十分な速度、GPU・NPUの利用を保証しません。Windows build、driver、モデル、EP、アプリ実装を同じ組み合わせで検証します。

モデル配布は3方式に分ける:アプリ同梱・HTTPSファイル・package

Windows MLのModel Catalogは、モデル名、variant、対応EP、license、ダウンロード情報を記述し、モデルをアプリ間で共有する入口です。配布形式を先に決めると、モデルの更新、オフライン性、アプリサイズ、整合性確認のトレードオフを説明しやすくなります。

Windows MLのモデル配布方式を選ぶ表
方式向いている場面見落としやすい点
アプリpackageへ同梱小さいモデルや、配布物を一つに固定したい場合アプリサイズ、更新時の再配布、license、target architectureを確認する
file-based catalog / HTTPS標準ONNXと関連assetをCDNから取得し、アプリ間で共有・更新したい場合HTTPS、SHA256、URI、catalog更新、初回ダウンロードを説明する
package-based catalog / MSIXモデルにsystem integration、EP、依存関係があり、Windows package管理を使いたい場合package identity、MSIX、依存関係、署名、filesとpackagesを同じmodelに混在させない

公式schemaでは、標準ONNXと関連ファイルのfile-based distribution、システム統合や依存関係を含むpackage-based distributionを分けています。catalogの一つのmodel定義は`files`または`packages`のどちらかを使い、両方を同時に指定しません。

{
  "id": "example-cpu-v1",
  "name": "example-model",
  "version": "1.0.0",
  "publisher": "YourOrganization",
  "executionProviders": [{ "name": "CPUExecutionProvider" }],
  "license": "Apache-2.0",
  "licenseUri": "https://example.com/license"
}

上のJSONは必須項目の考え方を示す簡略例で、実際のURI、license、SHA256、model filesは自分の配布物に合わせます。Model Catalogを作るときは、publisher、version、EP、license、download URIが実体と一致しているかschemaで検証します。

Windows ML Runtimeの配布:self-containedとframework-dependent

モデルの配布方式と、Windows ML Runtimeの配布方式は別の選択です。アプリへruntimeを同梱するか、端末の共有runtimeへ依存するかを決めた後で、モデル・EPの取得方法を組み合わせます。

Windows ML Runtimeとvendor EPの配布判断
方式メリット注意点・向いている場面
self-containedruntime依存をapp packageへ含め、使う版を固定しやすいC#・C++系が対象。appサイズが増え、更新は自分で配布する
framework-dependent共有runtimeを使い、ダウンロードを小さくしやすい端末へWindows App SDK Runtimeが必要。servicingによる更新を受ける
vendor EPQNN、OpenVINO、VitisAI、NvTensorRtRtx、MIGraphXなどをhardware向けに使える候補Windows ML Runtimeへ自動同梱されず、catalogから取得または自分でbundleする

公式資料のself-contained runtimeは約41MBの追加サイズ目安を示しますが、これはモデルやvendor EPの容量を含むアプリ全体の保証値ではありません。framework-dependentを選んでも、モデルcatalogやEPの初回取得が不要になるとは限りません。

CPU・GPU・NPUのExecution Providerを選ぶ順番

Execution Providerは、ONNX Runtimeの演算をCPU、GPU、NPUなどの実行先へ渡す層です。同じPCにCPU、内蔵GPU、dGPU、NPUがあっても、モデルが対応し、driverがあり、アプリがそのEPを選ぶ実装でなければ、搭載しているだけでは使われません。

Windows MLでCPU・GPU・NPUのEPを選ぶ比較
候補Windows MLでの読み方確認すること
CPUExecutionProviderWindows ML Runtimeに含まれる普遍的な基準経路CPU基準の出力、処理時間、メモリを保存する
DirectMLRuntimeに含まれるが、公式比較ではlegacy/sustained engineeringの位置づけ新規設計での長期選択か、対象GPU・モデルの実測と将来方針を確認する
vendor EPWindows 11 24H2(build 26100)以降、デバイス・driver条件付きでcatalogから取得する候補EP名、OS/build、driver、model compatibility、取得と更新の通信を確認する
Device Policies端末の結果や電力・性能の方針からproviderを選ぶ仕組みまず明示選択で再現性を作り、その後にpolicyの結果を比較する

Microsoftは、EPを最初からDevice Policies任せにせず、まず明示的に選んで結果を予測しやすくする進め方を推奨しています。CPUで基準を作り、対象hardware用のEPを追加し、最後に電力や自然なdevice選択のpolicyを試す順番が現実的です。

  1. 使うWindows build、architecture、GPU/NPU型番、driverを記録する。
  2. Model Catalogまたは配布資料で、そのmodel variantが対象EPを宣言しているか確認する。
  3. CPUExecutionProviderで出力と処理時間を保存する。
  4. 対象EPを明示的に登録し、同じ入力・同じmodel revisionでCPUとの差を測る。
  5. EPが無い、取得できない、出力が違う場合は、NPU TOPSやGPU使用率だけで成功と判定せず、OS・driver・model・ログを戻って確認する。

Windows ML package familyとEP配布方式で対応範囲を決める

Windows MLのEP一覧はpackage family別です。現行資料の2.xと1.8.xは主要なproviderが共通ですが、WebGPUはexperimentalとして2.x側だけに掲載されています。また同じ一覧は、AMD MIGraphXについて現時点でGenAI scenarioをサポートしないと明記しています。PCのGPU/NPU名やModel Catalogのprovider宣言だけで、目的のmodelとアプリpackageの対応を確定しないでください。

Windows ML execution providerの取得方式を選ぶ
方式向いている条件配布・運用で確認すること
Windows ML EP catalogWindows 11 24H2以降で、Windows認定EPを端末に合わせて取得したい初回downloadにnetworkが必要。端末全体に共有され、Windows Update経由で更新される。最初の実行に数秒〜数分かかる場合がある
Bring your own EPoffline、制限network、managed device、厳密なEP version pinningEP binary/packageをアプリ側で配り、Windows ML・ONNX Runtime・EPのversion compatibility、license、手動更新を自分で検証する

Model Catalogはmodel variantと必要EPを記述する仕組み、ExecutionProviderCatalogは対応するproviderを端末へ取得・登録する仕組みです。別々のcatalogなので、modelのEP宣言だけでproviderのinstall、register、実推論成功まで確認済みとは扱いません。現在のEP versionはrelease historyのCurrentを見て選び、Upcomingやpreviewの予定は確定した配布版と区別します。

モデルvariantとEPの互換性をModel Catalogで確認する

Model Catalogでは、同じ`name`の下にCPU向け、GPU向け、NPU向けなどのvariantを分け、各variantの`id`、version、publisher、license、対応EP、filesまたはpackagesを記述できます。アプリの表示名だけでmodelを固定せず、実際にロードしたvariant IDをログへ残します。

Windows ML Model Catalogのvariant確認項目
項目役割検証時の問い
name関連variantをまとめる共通名同じmodelのCPU/GPU/NPU版を同じ系列として管理できるか
idそのvariantを一意に識別する値実機でロードしたIDを再現できるか
versionmodelの版を区別する値weights、前処理、licenseの変更を見落としていないか
executionProvidersvariantが想定するEPhardwareがあるだけでなく、このvariantが対応しているか
license / URI / SHA256利用許諾、取得先、整合性の材料配布物と表示が一致し、取得ファイルを検証できるか

公式のModel Catalog手順は、model nameで検索して端末に合うvariantを自動選択する方法と、EPでフィルタする方法を示しています。自動選択が便利でも、productionの再現性や検証ログが必要なら、選択されたmodel ID、version、EP、driverを記録します。

オフライン・プライバシー・更新を工程ごとに分ける

Windows MLはモデル推論を端末内へ置けますが、アプリが一度も通信しないことを自動で保証する仕組みではありません。CDNからモデルを取得するcatalog、on-demandのvendor EP、Windows UpdateによるEP更新、package依存、ログ送信を分けて設計します。

Windows MLのlocal inferenceと通信境界
工程通信・保存の可能性先に説明すること
初回モデル取得HTTPS/CDN、共有catalog、アプリpackage取得先、サイズ、SHA256、保存場所、削除方法
EP取得・更新ExecutionProviderCatalog、Windows Update、bundle対象OS、driver、更新版、再現性、オフライン時のfallback
推論基本は端末のCPU/GPU/NPU入力、出力、ログ、crash dumpを外部へ送らない設定か
アプリ更新・分析更新確認、telemetry、外部監視Windows MLのlocal inferenceとアプリのdata policyを分ける
  1. ネットワークが使える検証環境でモデル・関連asset・EPを取得し、URIとversionを記録する。
  2. 取得したファイルのSHA256、license、model ID、EP package IDを保存する。
  3. ネットワークを切った状態で、同梱またはcache済みのmodelがCPU/対象EPで起動するか確認する。
  4. EPが無い場合にCPUへfallbackするのか、機能を止めるのかをアプリで明示する。
  5. 入力・出力・ログ・クラッシュ情報の保存先と外部送信を、Windows ML Runtimeとは別に確認する。

「self-containedだから完全オフライン」「NPUだからデータが外へ出ない」とは一般化しません。モデル配布、EP配布、推論、アプリ分析を一つずつ確認して初めて、利用者へ境界を説明できます。

用途別の最終判断:購入・開発・既製モデルを分ける

WindowsローカルAIの開発目的別選択
目的最初の候補次に確認すること
Windowsアプリへ独自画像分類・検出モデルを組み込むWindows ML + ONNXCPU基準、model catalog、target EP、配布方式
NPU・GPUを使う社内アプリを作るWindows ML + 対応vendor EPWindows 11 24H2、driver、EP取得、CPU fallback、実測
LLMや音声モデルを既製APIで使うFoundry Localmodel catalog、OpenAI互換endpoint、local/cloud境界
Windows標準のOCR・音声機能を呼ぶWindows AI APIsAPI別hardware、モデル準備、同意、対応OS
LM Studio/OllamaのGGUFをGUI・CLIで動かす各runtimeGGUF、量子化、GPU/VRAM、アプリのbackend

PCを買うだけならNPU TOPSやWindows MLのprovider表を先に追わず、使いたいアプリとモデルを決めます。自作アプリを配布するなら、モデル形式、EP、runtime、更新、ネットワーク、licenseまで管理できるかが判断軸です。

Windows MLは、Windows AI APIsやFoundry Localを置き換える万能なruntimeではありません。custom ONNXの制御が必要なときに選び、ready-to-use modelやWindows組み込み機能はそれぞれのownerへ戻すと、実装も記事の役割も混ざりません。

失敗したときの切り分け表

Windows MLの失敗をモデル・EP・配布へ分ける表
症状まず確認する層戻る場所
CPUでもモデルが開かないONNX、opset、入力shape、関連asset、licenseEPを変えず、最小のCPUモデルと公式sampleで確認する
CPUは動くがGPU/NPUで失敗するOS/build、driver、EP package、model compatibilityCPU基準と同じ入力でEPを一つだけ戻して確認する
EPがcatalogに出ないWindows 11 24H2、build 26100、デバイス、driver、EP versionsupported EP公式表と実機のprovider一覧を照合する
モデルは見つかるがdownloadできないcatalog URI、HTTPS、SHA256、package/files、権限schemaとHTTP取得先を別々に検証する
オフライン環境で起動しない未取得model、未取得EP、framework runtime依存同梱・cache・CPU fallbackの設計へ戻る
速度は上がったが結果が違うEPの演算対応、前後処理、precision、model version処理時間より先に出力一致・許容誤差を確認する

GPU使用率やNPUの存在だけを成功の証拠にしません。ロードしたmodel ID、選択EP、driver、入力、出力、処理時間を同じ記録へ残して初めて、PC購入判断やアプリ配布の再現条件になります。

公式確認日

情報確認日: 2026-09-28。MicrosoftのWindows AI solution comparison、Windows ML overview・get started・install and deploy、Accelerate AI models、supported execution providers、select execution providers、Model Catalog API・schema、ONNX Runtime GenAI、Windows ML CLIの公式資料を確認しました。provider、package、Windows build、driver、モデルcatalogは更新されるため、実装・配布時点の公式資料と実機検証を優先します。

よくある質問

Windows MLはFoundry LocalやWindows AI APIsと同じですか?

同じではありません。Windows AI APIsはWindowsが提供する組み込み機能、Foundry Localはready-to-useのモデルruntime、Windows MLは自分のONNXモデルをWindowsアプリへ組み込む基盤として役割を分けます。

Windows MLはCPUだけでも動きますか?

公式get startedは、追加設定なしでCPU上のONNXモデルを実行する最小経路を案内しています。GPU・NPUのhardware-optimized EPはOS、デバイス、driver、モデル条件を別に確認してください。

Windows MLでGGUFをそのまま使えますか?

Windows MLの基本経路はONNXモデルです。GGUFをLM Studio、llama.cpp、Ollamaの形式として扱う記事と混同せず、LLMならONNX Runtime GenAIまたはFoundry Localの公式対応経路を確認してください。

NPU搭載PCならWindows MLが自動的にNPUを使いますか?

自動的に保証されるとは言えません。対象model variant、Execution Provider、Windows 11 24H2以降のbuild、driver、アプリの選択方法を確認し、CPU基準と同じ入力で実測します。

Model Catalogではモデルをどう配布しますか?

公式schemaには、標準ONNXと関連assetをHTTPSで取得するfile-based distributionと、MSIXなどのpackage-based distributionがあります。model定義はfilesまたはpackagesのどちらかを使い、license、EP、URI、必要なSHA256を実体と一致させます。

self-containedなら完全オフラインですか?

完全オフラインとは限りません。runtimeを同梱しても、モデルやvendor EPをcatalog、CDN、Windows Updateから取得する構成なら準備時に通信します。モデル、EP、推論、アプリの更新・分析を分けて確認してください。

DirectMLとWindows MLはどう違いますか?

Windows MLはONNX Runtimeと複数のExecution Providerを扱うWindows向け基盤、DirectMLは低レベルのGPU加速APIで、現行Windows MLではlegacyのin-box providerとして説明されています。新規設計では公式の現行EP資料と対象モデルの実測を確認します。

次に読むおすすめルート

初めてローカルAIを触る人

まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。

  1. クラウドAIとローカルAIの使い分け
  2. ローカルLLMとは
  3. ローカルAIを入れる前に確認すること
  4. WindowsでローカルAIを始める完全ガイド
  5. Windows ARMでローカルAIを使う前の確認
  6. WindowsでOllamaをインストールする
  7. Windowsでローカル音声認識を始める
  8. WindowsでローカルTTSを始める
  9. WindowsでローカルOCRを始める
  10. Windowsで話者分離を始める
  11. WindowsでローカルAI翻訳を始める
  12. LM Studioとは
  13. GGUFとは
  14. GGUF版とは
  15. GGUFファイル名の読み方
  16. LM StudioでGGUFを入れる方法
  17. LM Studioで画像を読み込む方法
  18. LM Studioのモデル保存場所と移動
  19. 小型LLM・量子化の現実
  20. GGUF量子化安全とRAG/NPU研究
  21. Quant.npuとNPU向け静的量子化
  22. LENSで見るNPUレイテンシ予測
  23. Copilot+ PCのNPU期待値
  24. Hugging Face安全チェック
  25. PDF/RAG/引用確認の現実
  26. LM Studioで最初に選ぶモデル
  27. GGUFモデル選び診断
  28. Hugging FaceでGGUFモデルを探す方法
  29. Q4/Q5/Q8の違いと選び方
  30. 日本語GGUFモデルの選び方
  31. Q4/Q5/Q8研究ガイド
  32. Hermes Desktopとは
  33. Hermes DesktopとLM Studio接続
  34. Hermes DesktopとOllama接続
  35. Hermes Desktop接続トラブル
  36. Hermes AgentとDesktopの違い
  37. ローカルLLMツール比較
  38. ローカルAI更新メモ
  39. 診断ページ

あなたはどのタイプ?

関連チェック先

関連ツール

    比較表を見る / 最初に検討しやすいツールを確認する