Microsoft⁠⁠、Windows MLにllama.cppとGGUFモデルの実験的サポートを追加

Microsoftは2026年10月7日、Windows向けのローカルAI推論基盤Windows MLに、大規模言語モデル(LLM)を実行する推論エンジンのllama.cppを実験的に統合したと発表した。これにより、開発者はGGUF形式の言語モデルをWindows MLを通じてPC上で動かせる。

ローカルとクラウドを組み合わせるハイブリッドインテリジェンス

今回のWindows MLの更新は、同社がWindowsで進める「ハイブリッドインテリジェンス」を実現する取り組みの一環。必要な能力を確保しながらクラウドの利用コストを抑えるため、処理に応じてローカルとクラウドのAIを使い分けられる。

この取り組みでは、次の4つの要素を組み合わせる。

  • ローカルモデル:Microsoftのコーディング向けAIモデルMAI-Code-1.1-FlashをPC向けに最適化。
  • 処理の振り分け:タスクに応じて、使うモデルと実行場所を選択。
  • モデルの実行基盤:Windows MLにllama.cppを統合し、利用できるモデルの選択肢を拡大。
  • ハードウェア:CPUとGPUを組み合わせたチップNVIDIA RTX Sparkを搭載するSurface Laptop Ultraなど、新しいWindows PCを展開。

Microsoftは、8月に発表したMAI-Code-1.1-Flashのローカル版を今回用意した。モデルの重みを少ないビット数で表す3ビット量子化などにより、同モデルのクラウド版と比べて容量を約80%削減したという。

処理の振り分けを担うHydraFusionは、性能、費用、応答時間を考慮して、使うAIモデルとその組み合わせ方を選ぶGitHub Copilotの機能。1つのモデルでタスクを解くほか、必要なら高性能なモデルに引き継いだり、別のモデルに回答案をレビューさせてから修正したりする。

HydraFusionは、クラウド上のモデルを対象にリサーチプレビューで提供されている。今回の拡張では、PC上のローカルモデルも自動選択の対象に加え、タスクに応じてローカルとクラウドを使い分ける。この拡張の実験的プレビューは、10月後半にGitHub Copilotアプリ、GitHub Copilot CLI、Visual Studio Codeで提供する予定。

同日にWindows 11での一般提供が発表されたMicrosoft Execution Containers(MXC)は、AIエージェントを隔離された環境で実行するためのサンドボックス。詳細は別記事を参照のこと。

GGUFとONNXを共通のテキスト生成APIで利用

GGUFは、学習済みの重みやモデルの構造などの情報をまとめて保存する形式で、llama.cppなどの推論エンジンで使われる。ONNXも機械学習モデルを表す形式で、異なる開発環境と実行環境の間でモデルを受け渡すために使う。

Microsoftは、アプリからGGUFとONNXの言語モデルを共通の手順で利用できるよう、テキスト生成用のText Generation APIを新たに提供する。Windows MLがモデル形式に応じて推論エンジンを自動で選び、GGUFモデルにはllama.cpp、ONNXモデルにはONNX Runtimeを使う。テキストをモデルが扱う単位(トークン)に分割する処理から、文章の生成、生成途中のテキストを順次返す処理までをAPI側が担う。これによって開発者は、Hugging Faceで公開されたGGUFモデルを取得し、Windows MLを通じてローカルで試せる。

Windows MLへの統合に加え、Microsoftは、NVIDIAやコミュニティと協力してllama.cpp本体の性能も改善したと説明している。NVIDIA GPUでの計算に使うCUDAの処理を最適化したほか、CPUとGPUの間での処理の割り振りも見直した。

Windows MLサーバーは、PC上で動くローカルサーバーで、アプリからの要求を受けてモデルを実行する。OpenAI互換のAPIを備えており、開発用ライブラリのOpenAI SDKの接続先をこのサーバーに変更すれば、ローカルモデルを利用できる。

Microsoftは、音声を文字に起こすためのSpeech Recognition APIも提供する。このAPIは、開発者が用意したONNX形式の音声認識モデルWhisperを使う。文字起こしの結果をText Generation APIに渡し、GGUFモデルで処理することもできる。

モデルの実行を細かく制御する新しいRuntime API

テキスト生成と音声認識の両APIは、モデルの読み込みや実行を担う新しいWindows ML Runtime APIを基盤としている。既存のONNX Runtime APIも引き続きサポートされる。

Runtime APIを直接使うと、モデルの実行先としてCPUやGPU、AI処理向けプロセッサーのNPUなどを指定できる。複数のモデルをつなぐ場合も、処理の段階ごとに実行先を選べる。画像や音声を渡す際の不要なメモリーコピーを避ける仕組みや、モデルを事前にコンパイルして起動を速める機能も備える。

ただし、利用できる実行先はモデル形式によって異なる。今回、Windows MLがllama.cppで検証しているのは、CPUと、CUDAを使ったNVIDIA GPUでの実行に限られる。GGUFモデルはNPUでの実行には対応していない。

Text Generation APIの生成方法にも制限があり、現時点では次のトークンとして確率が最も高い候補を選ぶ方式のみを提供する。候補を確率的に選ぶサンプリングや、そのばらつきを調整するtemperatureには対応していない。複数のトークンを先に予測し、まとめて検証する「投機的デコード」や、JSONなどの指定形式で結果を返す「構造化出力」も未対応。

Runtime APIとテキスト生成・音声認識の両APIは、C++とPythonに対応し、C#には未対応。いずれも実験的なAPIで、現時点では本番利用はサポート対象外となる。MicrosoftはこれらのAPIを使うアプリをMicrosoft Storeに公開しないよう案内している。

これらのAPIは、MicrosoftがNuGetで公開しているWindows MLの実験版パッケージMicrosoft.Windows.AI.MachineLearning 2.7.2021-experimentalで試せる。Windows MLの公式GitHubリポジトリには、ドキュメントや開発用ツールが公開されている。Runtime API、テキスト生成・音声認識API、Windows MLサーバーのサンプルについては、Samplesディレクトリを参照のこと。

PyTorchとTritonのWindows対応も紹介

Microsoftは、モデルの学習や実行に使うフレームワークPyTorchのWindows Arm64対応も紹介した。PyTorchは、64ビットArmプロセッサーを搭載したWindows PC向けに、CPUで動作する公式パッケージを提供する。NVIDIAも、対応ハードウェアでGPUを利用できるCUDA対応のWindows Arm64用PyTorchパッケージを公開している。

PyTorchのGPU処理を高速化するために使われるのが、オープンソースのTriton[1]。GPUで行う計算処理を記述する言語と、それをGPU向けの実行コードに変換するコンパイラーを備える。PyTorchの高速化機能torch.compileも、Tritonを使ってGPU向けのコードを生成する。

Microsoftが今回紹介したWindows版Tritonにより、対応するGPUを搭載したWindows PCでもtorch.compileなどを利用できる。

Microsoftの発表記事では、TritonでPyTorchの処理を高速化する例を紹介している。Windows MLでの実行に向けて、PyTorchのモデルをONNX形式で書き出し、コマンドラインツールのWindows ML CLIで最適化や性能測定を行う手順も掲載している。

おすすめ記事

記事・ニュース一覧