Windows ML モデル カタログ API を使用すると、アプリまたはライブラリは、大きなファイルをアプリまたはライブラリに直接配布することなく、独自のオンライン モデル カタログから共有のデバイス上の場所に大規模な AI モデル ファイルを動的にダウンロードできます。 さらに、モデル カタログは、実行されている Windows デバイスと互換性のあるモデルをフィルター処理し、適切なモデルがデバイスにダウンロードされるようにするのに役立ちます。
モデル カタログ API とは
モデル カタログ API は、1 つまたは複数のクラウド モデル カタログに接続できる API のセットであり、デバイス上の任意の Windows アプリケーションで使用できるように、それらのモデルをデバイスにローカルにダウンロードして格納しやすくします。 API には、いくつかの主要な機能があります。
- カタログの追加: 1 つまたは複数のオンライン カタログを追加する
- 互換性のあるモデルの検出: ユーザーのハードウェアおよび実行プロバイダーで動作するモデルを自動的に検索する
- モデルのダウンロード: さまざまなソースからモデルをダウンロードして格納する
- アプリ間でモデルを共有する: 複数のアプリケーションが同じモデル (同じ SHA256 ハッシュ) を要求している場合、ダウンロードを複製することなく、モデルがディスク上で共有されます
主な機能
互換性の自動照合
モデル カタログは、モデルをシステムの使用可能な実行プロバイダー (CPU、GPU、NPU など) と自動的に照合します。 モデルを要求すると、カタログは現在のハードウェア構成と互換性のあるモデルのみを返します。
モデルストレージ
ダウンロードしたモデルは、ユーザー固有の場所に格納されます。 複数のアプリケーションが同じモデル (同じ SHA256 ハッシュ) を要求する場合は、既にダウンロードされているモデルがそれらのアプリケーション間で共有されます。
複数のカタログ ソース
アプリケーションで複数のカタログ ソースを構成して、次のことができます。
- 複数のベンダーまたはリポジトリのモデルを使用する
- 特定のソースを他のソースよりも優先する
- 独自のプライベート モデル カタログをパブリック カタログと共に含める
動作方法
モデル カタログ システムは、次のいくつかのコンポーネントで構成されます。
- カタログ ソース: モデルを検索できる場所を定義する (JSON ファイルをカタログ化するための URL)
- モデルの一致: 実行プロバイダーの互換性に基づいて使用可能なモデルをフィルター処理する
- ダウンロード管理: モデル ファイルのダウンロードと保存を処理します
- インスタンス管理: アプリの実行中にダウンロードしたモデルへのアクセスを提供します
モデルの識別
カタログ内のモデルには、次の 2 種類の識別子があります。
- 名前: "gpt2" のような共通名 (複数のモデル バリエーションで同じ名前を共有できます)
- ID: 通常、実行プロバイダー情報 ("gpt2-cpu" や "gpt2-npu" など) を含む、カタログ内の一意の識別子。
アプリケーションでは、通常、わかりやすくするために名前付きの FindModelAsync を使用します。これにより、カタログは、実行プロバイダーの互換性に基づいて、現在のシステムに最適なモデルバリアントを選択できます。
実行プロバイダーのサポート
モデル カタログでは、さまざまな実行プロバイダーがサポートされています。 詳細については、 Windows ML でサポートされている実行プロバイダー に関するドキュメントを参照してください。
カタログ ソース スキーマ
モデル カタログ ソースでは、次を定義する標準化された JSON スキーマが使用されます。
- モデル メタデータ (名前、ID、バージョン、発行元)
- サポートされている実行プロバイダー
- URL とファイル情報をダウンロードする
- ライセンス情報
- モデル サイズの詳細
スキーマの詳細については、「 モデル カタログ ソース」を参照してください。
作業の開始
Windows ML アプリケーションでモデル カタログの使用を開始するには:
- カタログ ソースを構成する
-
ModelCatalogインスタンスを作成する - モデルのクエリとダウンロード
- 目的のランタイムを使用してモデルを推論します。
完全なチュートリアルについては、「 モデル カタログの概要」を参照してください。