Windows ML をインストールして展開する

Windows ML は Windows アプリ SDK の一部として提供され、 フレームワーク依存 (推奨) と 自己完結型の 2 つの展開モードをサポートしています。 アプリのサイズ、更新、依存関係の要件に基づいて選択します。

Windows ML の詳細については、「 Windows ML とは」を参照してください。

簡単スタート

プロジェクトに Windows ML をインストールする方法の短いバージョンを次に示します。

フレームワークに依存する (推奨) 場合は、次をインストールします。

自己完結型の場合 (アプリ のサイズを最大 41 MB 増やす):

各オプションの詳細については、以下のセクションを参照してください。

Requirements

  • .NET 8 以上
  • ターゲット フレームワーク モニカー net8.0-windows10.0.17763.0 以上を使用する場合は Microsoft.WindowsAppSDK.ML、またはターゲット フレームワーク モニカー net8.0-windows10.0.18362.0 以上を使用する場合は Microsoft.Windows.AI.MachineLearning を利用してください。

Note

.NET 6 では、 Microsoft.Windows.AI.MachineLearning 名前空間を使用して実行プロバイダーをインストールできますが、 Microsoft.ML.OnnxRuntime API は使用できません。 完全な Windows ML API サーフェスにアクセスするには、.NET 8 にアップグレードします。

Windows ML の内容

Windows ML は、次のバイナリで構成されます。

Binary 説明 おおよそのサイズ
Microsoft.Windows.AI.MachineLearning.dll Windows ML API (ExecutionProviderCatalogなど) 最大 1 MB
onnxruntime.dll ONNX ランタイム エンジン 約 20 MB
DirectML.dll DirectML — 含まれている GPU 実行プロバイダー 約 20 MB
合計 約 41 MB

ベンダー実行プロバイダー (QNN、VitisAI、OpenVINO、NvTensorRtRtx、MIGraphX) は、Windows ML 自体の一部ではありません。 これらは個別に取得されます。実行時に ExecutionProviderCatalog 経由で取得するか、自分でバンドルします。 AI モデルの高速化に関する説明を参照してください。

デプロイ モードの選択

Windows ML を使用する場合は、 フレームワーク依存 (推奨) と 自己完結型の 2 つの展開モードから選択できます。

フレームワークに依存する (推奨) 独立型
サポートされている言語 C#、C++/WinRT、Python C#、C++/WinRT、C/C++
サポートされているパッケージの種類 パッケージ化されていないものとパッケージ化されたもの (MSIX) パッケージ化されていないものとパッケージ化されたもの (MSIX)
エンタープライズ展開 サポートされている サポートされている
アプリのサイズ 小さい — Windows ML バイナリはシステム全体で共有されます より大きい — Windows ML バイナリはアプリにバンドルされています (最大 41 MB)
Windows ML の更新プログラム 自動 — ユーザーは Windows アプリ SDK サービスを使用して更新プログラムを取得します 手動 - 選択すると新しいバージョンが出荷されます
インストールされているランタイムへの依存関係 はい — Windows アプリ SDK ランタイムが存在する必要があります いいえ - すべての依存関係がアプリ パッケージに含まれています
NuGet パッケージ (C#/C++) Microsoft.WindowsAppSDK.ML + Microsoft.WindowsAppSDK.Runtime Microsoft.Windows.AI.MachineLearning または Microsoft.WindowsAppSDK.ML
最適な用途 最小限のダウンロード/インストール サイズを必要とするアプリ。Microsoft Store を通じて出荷されるアプリ 厳密なバージョン管理

フレームワークに依存するアプリは、ユーザーのコンピューターにインストールされている Windows アプリ SDK ランタイムに依存します。 詳細については、 フレームワークに依存するアプリのデプロイ アーキテクチャに関 するページを参照してください。

プロジェクトで、次の NuGet パッケージをインストールまたは更新します。

Note

または、メイン の Microsoft.WindowsAppSDK NuGet パッケージをバージョン 1.8.1 以降にインストール/更新します。これには、Windows ML とその他のすべての Windows アプリ SDK API が含まれ、既定ではフレームワークに依存します。

また、 .csproj ファイルで、フレームワークに依存する展開を使用するように、 WindowsAppSDKSelfContained が指定されていない (存在しない) か、 falseであることを確認します。

最後に、 フレームワークに依存するアプリの展開アーキテクチャ を参照して、アプリと共にユーザーのデバイスに Windows アプリ SDK ランタイムをデプロイする方法について説明します。

単独インストール

自己完結型アプリは、すべての Windows ML バイナリをアプリに直接バンドルします。 外部ランタイムの依存関係は必要ありませんが、アプリは大きくなります。 これは、メインの Microsoft.Windows.AI.MachineLearning または Microsoft.WindowsAppSDK.ML パッケージを参照せずに Microsoft.WindowsAppSDK または Microsoft.WindowsAppSDK.Runtime を参照する場合の既定値です。 詳細については 、自己完結型アプリの展開ガイド を参照してください。

プロジェクトで、次の NuGet パッケージをインストールまたは更新します。

  • ビルド 18362 以降Windows 10対象のアプリの場合:
  • または、ビルド 17763 以降Windows 10対象のアプリの場合:
    • Microsoft.WindowsAppSDK.ML をインストールします(Windows ML API とバイナリが追加され、デフォルトで自己完結型になり、17763 に対する RegFree WinRT サポートが追加されます)
  • Microsoft.WindowsAppSDK.Runtime をインストールしないでください (これによりフレームワーク依存モードが有効になります...現在インストールされている場合は削除してください)
  • メインの Microsoft.WindowsAppSDK NuGet パッケージをインストールしないでください (これにより、フレームワーク依存モードが有効になります...現在インストールされている場合は削除してください)
  • ランタイムまたはメイン パッケージをインストールしない限り、 Microsoft.WindowsAppSDK.AI などの他の Windows アプリ SDK コンポーネント パッケージを自由にインストールできます

Note

メイン の Microsoft.WindowsAppSDK NuGet パッケージを使用する必要がある場合は、バージョン 1.8.1 以降 (Windows ML とその他のすべての Windows アプリ SDK API を含む) に更新し、 .csprojWindowsAppSDKSelfContainedtrue に設定して自己完結型モードを有効にします。

次のステップ

こちらも参照ください