次の方法で共有


Windows ML とは

Windows Machine Learning (ML) は、C#、C++、Python の Windows アプリ開発者が、CPU、GPU、NPU など、さまざまな Windows PC ハードウェア全体で ONNX モデルをローカルで実行するのに役立ちます。 Windows ML ではハードウェアと実行プロバイダーが抽象化されるため、コードの記述に集中できます。 さらに、Windows ML は、最新の NPU、GPU、および CPU がリリースされると自動的に更新され、サポートされます。

WINDOWS ML を経由して NPU、GPU、および CPU に到達する ONNX モデルを示す図。

Von Bedeutung

Windows ML API は現在試験段階であり、運用環境での使用は サポートされていません 。 これらの API を試しているアプリは、Microsoft Store に公開しないでください。

サポート対象の Windows バージョン

Windows ML は、バージョン 24H2 (ビルド 26100) 以降を実行しているすべての Windows 11 PC で動作します。

サポートされているハードウェア

Windows ML は、すべての x64 および ARM64 PC ハードウェアで動作し、NPU や GPU を搭載していない PC でも動作します。これは、市場で数億台の Windows デバイスに到達できることを意味します。 これは、ワークロードを軽く保つことを意味する可能性があります。ただし、負荷の高いワークロードを処理するのに十分な強力な iGPU があります。

モデルを ONNX に変換する

Windows ML で使用できるように、モデルを他の形式から ONNX に変換できます。 詳細については、モデルを ONNX 形式に変換 する方法に関する Visual Studio Code AI Toolkit のドキュメントを参照してください。

Windows ML はどのような課題に対処しますか?

ハードウェアの多様性

Windows 上で構築する AI 開発者として、Windows ML が対処する最初の課題は、ハードウェアの多様性です。 はい。ユーザーが最適なハードウェアを選択できるのは、Windows エコシステムの利点です。 ただし、Windows ML がないと、開発者が AI エクスペリエンスを構築し、そのハードウェアの多様性をすべてサポートすることは困難になります。 Windows で実行されている今日の主要なアプリの多くは、一度に 1 つのハードウェア ベンダーでリリースすることを選択しています。 ただのインテル;ちょうどクアルコム;ちょうどAMD;今のところは個別の GPU だけです。 そのため、これらのアプリを実行できるデバイスの数が大幅に制限されます。

依存関係の展開

次に、必要なすべての依存関係をデプロイする際の問題があります。 アプリで AI エクスペリエンスを配布するには、アプリで 3 つの要素を出荷してデプロイする必要があります。

  • 実行する AI モデル。
  • これらのモデルに対して推論を実行できるランタイム。
  • 選択したランタイムがシリコンと通信するのに役立つベンダー固有のツールとドライバー。

アプリにはこれらの処理が必要であり、メンテナンスと更新も必要です。 ランタイムの新しいバージョンがリリースされたとき、またはその中で重大なバグが修正された場合は、それに応じてアプリを更新する必要があります。 Windows ML を使用しない場合、アプリの開発者は、これらの依存関係の所有権をすべて取得する必要があります。 これらはアプリの一部になり、すべてを維持する負担があなたにはかかってしまいます。

ローカル ハードウェアの活用

その後、アプリが実行されているローカル ハードウェアを動作させるという問題があります。 AI ワークロードは CPU、GPU、または NPU で実行する必要がありますか? 異なる AI モデルを使用している場合、どのプロセッサで最適に実行されますか? この問題は急速に非常に複雑になります。 また、Windows ML がなければ、現在のデバイスで利用可能なものを最初に検出し、パフォーマンスを最大限に引き出そうとする難しいロジックを記述して維持する必要があります。

Microsoft.Windows.AI.MachineLearningの Windows ML は、これらの問題をすべて解決します。

  • ランタイムはアプリ内に存在する必要はありません。
  • 実行プロバイダー (EP) は、ユーザーが使用できるハードウェアに基づいて自動的に選択されます。 開発者オプションのオーバーライドが選択可能です。
  • Windows ML はランタイムの依存関係を管理し、アプリの負担を Windows ML 自体と EP に移します。
  • Windows ML は、クライアント デバイスの負荷を分散するのに役立ち、AI ワークロードの実行に適したハードウェアを選択します。

詳細な概要

Microsoft.Windows.AI.MachineLearningの Windows ML は、Windows AI Foundry の AI 推論として機能します。 そのため、 Windows AI API を 使用して Windows に組み込まれているモデルにアクセスする場合でも、Foundry Local ですぐに使用できる Foundry モデルの一覧を使用している場合でも ( Foundry Local の使用を開始するを参照)、知らなくても、Windows ML で AI ワークロードを実行することになります。

また、独自のモデルを導入する場合や、モデル推論の実行方法を高度にきめ細かく制御する必要がある場合は、その API を呼び出すことによって Windows ML を直接使用できます。 Windows ML (Microsoft.Windows.AI.MachineLearning) API を参照してください。

ONNX ランタイムに基づく

Windows ML は、フォークされた特殊な バージョンの ONNX ランタイム上に構築されています。 これにより、Windows 固有のパフォーマンスの強化が可能になります。 また、標準の ONNX QDQ モデルを中心に最適化しました。これにより、モデルを不必要に拡大することなく、ローカル デバイスで最高の推論パフォーマンスを実現することに重点を置くことができます。

ONNX ランタイムは、ランタイムとハードウェア ドライバーの間の変換レイヤーとして機能する実行プロバイダー (EP) を介してシリコンと通信します。 Windows Click to Do と NPU で行った実行プロバイダーの作業を、GPU 用の新しい実行プロバイダーと組み合わせて使用し、CPU、GPU、および NPU 全体で任意のハードウェアをターゲットにできる AI ワークロードを有効にするという約束を完全に実現する単一の Windows ML フレームワークにすべてをラップしました。 各種類のプロセッサは、最新のドライバーと、4 つの主要な AI シリコン ベンダー (AMD、Intel、NVIDIA、Qualcomm) の ONNX ランタイム実行プロバイダーで完全にサポートされている一流の市民です。 これらのプロセッサの種類は同等です。すべての種類のハードウェアで AI ワークロードを自信を持ってスケーリングするには、ONNX QDQ モデルを使用して Windows ML に書き込むだけで済みます。

パッケージ化と展開

Windows ML への参照をプロジェクトに追加し、顧客の PC にアプリをインストールした後:

  1. ランタイムがアプリと共に正しくインストールされるように、最新バージョンの Windows ML 自体をダウンロードします。
  2. 次に、アプリがインストールされている特定のマシンのハードウェアを検出し、その PC に必要な適切な実行プロバイダーをダウンロードします。

そのため、独自の実行プロバイダーをアプリ パッケージに含める必要はありません。 実際、実行プロバイダーや、AMD、Intel、NVIDIA、Qualcomm、またはその他の特定のハードウェア ファミリ用に特別に設計された AI ランタイムのカスタム ビルドの出荷について心配する必要はありません。 Windows ML API を呼び出し、適切に書式設定されたモデルでフィードするだけで、残りの部分は自動的にターゲット ハードウェアに必要なものがすべてプロビジョニングされ、すべてを最新の状態に保ちます。

その結果、管理して心配する必要がある依存関係が大幅に簡素化されます。 また、AMD、Intel、NVIDIA、Qualcomm などのハードウェア パートナーとの対話のレベルによって可能になります。 これらのパートナーは引き続き Windows ML の実行プロバイダーを提供し、市場に導入する更新プログラムや新しいシリコンがある場合は Microsoft に提出します。

Microsoft は、推論の精度に対する回帰がないことを確認するために、新しい実行プロバイダー (EP) を認定します。 その後、これらの IP をハードウェア ベンダーの代わりにターゲット マシンに展開し、Windows ML エコシステム全体を最新の状態に保つよう支援する責任を負います。

DirectML や DirectX などのテクノロジによって採用されるアプローチとは異なるアプローチです。ここで、Microsoft は、ハードウェア エコシステムの変化に対して API を抽象化します。 代わりに、Windows ML を使用して、ハードウェア ベンダーが革新的なシリコンを迅速かつ直接導入できるようにランドスケープを変更し、そのハードウェアが市場に到着するとすぐに 1 日の実行プロバイダーがサポートされるようにしています。

[パフォーマンス]

パフォーマンスは、純粋な壁時計の速度以上です。 はい。多くの AI ワークロードは計算コストがかかります。 しかし、アプリ エクスペリエンスで AI が普及するにつれて、高度な精度を維持しながらバッテリ寿命を維持する方法で推論を最適化できるランタイムが必要になります。 AI が適切で正確な結果を生成するようにします。

AI ワークロードは、通常、次の 2 つのバケットのいずれかに分類されます。

  1. アンビエント AI。 ユーザーがアプリを操作すると、バックグラウンドで AI が自動的に発生します。
  2. 明示的な AI。 ユーザーは、AI タスクを開始したことを知っています。これは一般的に、一種の生成 AI (genAI) シナリオです。

アンビエント AI ワークロードは、40 以上の TOPS の処理能力を備えた専用 NPU プロセッサにオフロードでき、通常はワット単位で電力を引き出すことができます。 このように、Windows ML はアンビエント AI ワークロードに最適です。 ほとんどの場合、アプリのユーザーは、待たずに、PC のバッテリー寿命を気にすることなく、AI の魔法を感じます。

計算負荷の高い AI タスクの多くは、専用 GPU によって最適に処理できます。 2018 バージョンの Windows ML は、GPU ワークロードを処理するために DirectML EP に依存しています。これは、モデルとシリコンの間のレイヤーの数を増やします。 Microsoft.Windows.AI.MachineLearningの Windows ML には DirectML レイヤーがありません。 代わりに、GPU 用の専用実行プロバイダーと直接連携し、RTX 用 TensorRT、AI Engine Direct、PyTorch 用 Intel の拡張機能など、過去の専用 SDK と同等のパフォーマンスを実現します。 Microsoft は、過去の DirectML ベースのソリューションで提供された書き込み 1 回限りの実行の利点を維持しながら、クラス最高の GPU パフォーマンスを実現するように Windows ML を設計しました。

上記の 2 つのケースの両方で、パフォーマンスのすべての側面が重要です。 純粋な壁時計の速度、電池の寿命、および正確さ。 そのため、ユーザーは実際に良好な結果を得られます。

このすべてが、AI を活用したさまざまなエクスペリエンスとシナリオを提供します。 専用の NPU でアンビエント AI ワークロードとエージェントを実行できます。または統合 GPU でワークロードを実行して、必要に応じてディスクリート GPU を無料に保ちます。 また、未加工の電力が必要な場合は、現在の最新の個別 GPU (dGPU) をターゲットにして、より高いワークロードを可能な限り高速に実行できます。

実行プロバイダーとは

実行プロバイダー (EP) は、機械学習 (ML) 操作用のハードウェア固有の最適化を実装するコンポーネントです。 EP は、1 つ以上のハードウェア抽象化を実装できます。 例えば次が挙げられます。

  • CPU 実行プロバイダーは、汎用プロセッサ用に最適化します。
  • GPU 実行プロバイダーは、グラフィックス プロセッサ用に最適化します。
  • NPU 実行プロバイダーは、ニューラル処理ユニット用に最適化します。
  • その他のベンダー固有のプロバイダー。

Windows ML ランタイムは、次の操作を行う API を提供することで、これらの実行プロバイダーの管理の複雑さを処理します。

  1. 現在のハードウェアに適した EP をダウンロードしてください。
  2. 実行時にエンドポイント (EP) を動的に登録します。
  3. EP 動作を構成します。

Windows ML での実行プロバイダーの使用

Windows ML ランタイムは、さまざまなハードウェア構成で ML モデル推論を最適化できる機械学習 (ML) 実行プロバイダー (EP) に柔軟にアクセスする方法を提供します。 これらの IP は、オペレーティング システムとは別に更新できる個別のパッケージとして配布されます。

Windows ML に関するフィードバックの提供

Windows ML の使用に関するフィードバックをお聞かせください。 問題が発生した場合は、Windows のフィードバック ハブ アプリを使用して問題を報告してください。

フィードバックは、 開発者プラットフォーム -> Windows Machine Learning カテゴリで送信する必要があります。