ニュース

DeepSeek-R1がNPU上で動作できるようMicrosoftが移植

 Microsoftは29日(米国時間)、Copilot+ PCに搭載されているNPU上でLLMを活用できるDeepSeek-R1モデルの移植を行なったと発表した。まずは「Visual Studio Code」(VS Code)の拡張機能「AI Toolkit」を介して「DeepSeek-R1-Distill-Qwen-1.5B」を提供し、7Bおよび14Bもまもなく用意するという。

 Copilot+ PCでの動作確認は、VS Code用の機能拡張「AI Toolkit」をダウンロードしてインストールし、そのカタログの中からQNNX QDQ形式で最適化されたDeepSeekモデルをダウンロード。その後、Playgroundの中で「deepseek_r1_1_5」を選択して読み込めばモデルを試せる。ただし「まもなく」とされているからか、編集部の環境では、現時点では確認できなかった。

 ONNXモデルに加え、「Try in Playground」ボタンをクリックすると、Azure AI Foundryでクラウドホスト型のソースモデルを試すことも可能だという。

VS CodeのAI Toolkitのモデルカタログで用意されるとのことだが、記事執筆時点では確認できなかった(NPUが搭載されたRyzen AI 9 HX 370搭載のGPD DUO、ただしGPD DUOはCopilot+ PC対応とは謳われていない点に注意)

 Copilot+ PCに搭載されているNPUは、モデル推論用に最適化されており、バッテリ寿命やリソース消費への影響を最小限に抑えながら、競争力のある最初のトークンまでの時間とスループットレートを実現できる。Microsoftはこれまで、NPUを活用するオンデバイスのSLM(小型言語モデル)として「Phi Silica」を発表していた。

 今回のDeepSeekのモデルも、Phi Silicaの取り組みの中から得られたいくつか重要なプラクティスと手法を活用。埋め込みと言語モデルヘッドには4bitのブロック単位の量子化を使用し、メモリアクセスを多用する操作をCPUで実行。NPUにおける最適化は、コンテキスト処理とトークン反復を含む計算負荷のトランスフォーマーブロックに集中させ、チャネルごとのint4量子化と、重みの選択的混合精度をint16アクティベーションをとともに採用した。

 DeepSeekのQwen 1.5Bのリリースにはint4バリアントもあるが、動的な入力形状と動作が存在するため、NPUに直接マップできず、互換性や効率を引き出すための最適化が必要だった。MicrosoftはWindowsエコシステムにあるさまざまなNPU間でスケーリングできるよう、ONNX QDQ形式を採用した。

 また、Phi Silicaと同様にメモリフットプリントの削減と推論の高速化を両立させるために、スライディングウィンドウ設計を活用し、ハードウェアスタックに動的テンソルサポートがなくても、最初のトークンまでの時間短縮と長いコンテキストのサポートを実現。また、4bitのQuaRot量子化スキームを使用し、低ビット処理を最大限に活用した。

 QuaRot量子化は、アダマール回転を使用して重みとアクティベーションの外れ値を削除し、モデルの量子化を容易にする。特にチャネルごとの量子化などの粒度が低い設定において、GPTQなどの既存の方法と比較すると量子化の精度を大幅に向上させられ、コンパクトなモデルのメモリフットプリント内でより大きなモデルの動作を実現できるという。

 こうした最適化により、最初のトークンまでの時間を130msに短縮し、短いプロンプト(64トークン未満)に対して16トークン/sのスループットを実現した。

Microsoftによれば、定性的な比較では、NPU最適化モデル(右)は元のモデル(左)と同じ回答に到達できたという。つまり、NPU最適化モデルも元のモデルの推論機能を保持しているからだという

 現在NPUは、「ペイント」の画像生成機能「コクリエイター」の最終処理、Windowsの画面をキャプチャして後からテキストによる検索を実現する「リコール」、Webカメラの背景ぼかしや目線合わせを実現する「Windows Studio エフェクト」、「フォト」アプリに搭載されている画像生成機能「イメージクリエーター/リスタイル」、ゲームの解像度を引き上げる「自動スーパー解像度(Auto SR)」などで利用できるが、活用シーンはそれほど多くない。DeepSeekのようなLLMが動作できるようになれば、活躍の幅はかなり広がるだろう。