AI

Microsoftのコード生成AI、端末版を53GBに圧縮

この記事のポイント

  1. 実現したこと

    コード生成AIのMAI Code 1.1 Flashに端末版が開発され、ローカル実行でコーディング課題の評価を受けた。

  2. 実現の仕組み

    量子化でモデルのメモリー要件を減らし、小さなモデルの候補出力を対象モデルが検証するSpeculative Decodingで生成を高速化する。

  3. 得られた結果

    Microsoftの評価では、端末量子化版がSWE-Bench Verifiedで70.80%、Terminal-Bench 2.1で66.29%を記録した。

  4. 従来との違い

    端末量子化版のモデルサイズは、Bfloat16のクラウド版から80%減少して53GBになった。

開発机の汎用デスクトップ端末を切り抜き図で示し、内部の圧縮されたモデルに小さな候補タイルが入り、検証後のタイルが出てくる様子。
AI生成画像

コード生成AIの端末版が、クラウド版からサイズを80%削減した53GBに圧縮された。量子化後のコーディング課題も評価済みで、GitHub Copilotにはローカルとクラウドの推論先を選ぶ機能を10月末までに導入する予定だ。

量子化と候補出力の検証で端末向けにする

MicrosoftのAI開発部門Microsoft AIが開発したコード生成モデルMAI Code 1.1 Flashの端末版は、総パラメーター数1370億、アクティブパラメーター数68億のMixture of Experts(MoE)モデルだ。端末向けの処理には量子化を適用し、重みと活性化値の表現精度を下げて、モデルが必要とするメモリーを減らす。

生成処理にはSpeculative Decodingを組み合わせる。小さなモデルが候補トークンのブロックを提案し、対象モデルがその候補を検証する方式で、追加の作業メモリーを使う代わりに生成の処理速度を高める。Microsoftによると、量子化した端末版のサイズは53GBとなり、Bfloat16のクラウド版から80%減少した。

圧縮後のコーディング課題を2種類で評価

モデルのサイズを減らした後も、評価対象は実際のコーディング課題となる。Microsoftの評価では、500課題からなるベンチマークSWE-Bench Verifiedで、端末量子化版は70.80%、非量子化版は72.6%を記録した。

もう一つのベンチマークTerminal-Bench 2.1では、89課題に対して端末量子化版が66.29%、非量子化版が62.9%となった。量子化版の評価値は、SWE-Bench Verifiedでは非量子化版を下回り、Terminal-Bench 2.1では上回る結果だった。

推論先を自動選択する方法と直接指定する方法

端末で動くモデルを開発支援AIのGitHub Copilotへ組み込む際には、推論先を自動で選ぶ方法と、利用者が直接指定する方法を用意する。自動選択機能は10月末までに導入する予定で、Autoが複数ターンのセッションにおけるタスクの文脈とキャッシュの状態を考慮し、ローカルとクラウドのモデルへ処理を振り分ける。

直接指定する場合は、Windows ML経由で端末向けモデルを選ぶほか、OpenAI互換のローカル接続先につなぎ、その接続先が公開するモデルを選択する方法を追加する。ただし、ローカル推論の選択だけでセッション全体がオフラインになるわけではなく、モデルの実行場所とツールの実行権限は別に制御される。

ツールの権限をOSの隔離境界で制御

ツールの実行には、Windowsチームが開発したオープンソースライブラリーMicrosoft Execution Containers(MXC)を使う。設定されたポリシーをOSの制御へ変換し、ファイル、ネットワーク、認証情報などへのアクセスを制限する仕組みだ。WindowsではProcessContainerのBaseContainer、macOSではSeatbelt、Linuxではbubblewrapを使い、別の仮想マシンやコンテナーイメージを用意する必要はない。

サンドボックスを有効にすると、シェルコマンドと、既定では外部ツール連携のModel Context Protocol(MCP)サーバーおよび言語サーバーが、ローカルのプロセス隔離境界内で動く。一方、組み込みファイルツールはCopilot内部でポリシーを検査し、OSによる子プロセス隔離の対象にはならない。リモートのMCPサーバーもローカルの隔離境界外にあり、対応する制御が適用される場合は接続ポリシーをCopilot内部で検査する。