🎉

Copilot+PCでAI Toolkitを動かしてみる

2024/07/03に公開

はじめに

Copilot+PCを最大限活かすことを考えたときに思い浮かぶのはNPUの活用ですね。
現状Copilot+PCはSnapdragon社のCPU/GPU/NPUを搭載しており、ARMアーキテクチャを採用しています。

現状、Copilot+PC標準アプリ以外でARMのNPUを活用するアプリがほぼ無さそう且つアプリ開発もまだ難しそうです。アプリ開発においては、DirectMLがARMのNPUに対応すれば活用の場が広がりそうです。

AI Toolkit for Visual Studio Code

そんな中、いろいろ調べていくうちに見つかったのがMicrosoftが公開しているAI Toolkit for Visual Studio Codeというもの。現在(2024/6/30)Pre-Release版で公開されておりバージョンはv0.3.2です。
https://github.com/microsoft/vscode-ai-toolkit

PerplexityにAI Toolkitは?と聞いてみたところ下記回答が返ってきました。

vscode-ai-toolkitは、Microsoft社が開発したVisual Studio Code (VS Code)向けの拡張機能で、AIモデルの開発やデプロイを支援するツールです。以下にその主な特徴と機能をまとめます:

  1. 概要:

    • 2023年11月にリリースされた「Windows AI Studio」の進化版として位置付けられています。
    • クロスプラットフォーム対応で、WindowsとLinuxをサポートしており、macOSのサポートも予定されています。
  2. 主な機能:

    • AIモデルカタログ: Azure AI StudioとHugging Faceから厳選されたAIモデルを提供しています。
    • ローカル実行: 最適化されたAIモデルをローカルでダウンロードして実行できます。
    • プレイグラウンド: AIモデルの機能をテストするための環境を提供します。
    • 微調整(Fine-tuning): ローカルまたはクラウド上でAIモデルを微調整するためのガイド付きチュートリアルを提供します。
    • 評価: モデルとプロンプトの評価のための分析情報を提供します。
    • デプロイ: クラウドおよびローカルアプリケーションへのAI機能のデプロイをサポートします。
  3. 技術的特徴:

    • ONNX RuntimeとDirectMLを活用して、WindowsプラットフォームのGPU、NPU、CPUなど様々なアクセラレーターを利用可能です。
    • REST APIを使用してアプリケーションでAIモデルをテストできます。
  4. 入手方法:

    • Visual Studio Marketplaceから無料でダウンロードしてVS Codeにインストールできます。
    • GitHubリポジトリからもソースコードを入手可能です。
  5. 対象ユーザー:

    • AIモデルを使用したアプリケーション開発者。
    • ローカル環境でAIモデルの開発やテストを行いたい開発者。
    • オフライン環境でのAI開発が必要な組織(政府、教育機関など)。

vscode-ai-toolkitは、AIモデルの開発プロセスを簡素化し、ローカル環境でのAI開発を促進することを目的としています。この拡張機能を使用することで、開発者はより効率的にAIモデルを探索、テスト、微調整、そして統合することができます。

Copilot+PCで試してみる

下記記事を参考にAI Toolkitを試してみました。
https://zenn.dev/headwaters/articles/91085f6a165c4f

ただ、Model Catalogを確認したところARM版だとCPU演算のみしか使えないようです。

とりあえず使ってみましょう。
モデル「Phi-3-mini-4k-cpu-int-rtn-block-32-acc-level-4-onnx」を使います。
下記質問をしてみました。

Please explain the difference between a GPU and an NPU concisely.

サクッと回答を得られました。

パフォーマンスモニタを確認したところ、やはりCPUを使って回答しているようです。NPUは無風でした。

IntelのPCで試してみる

一方で、IntelのPCだとどうなるでしょう。
Model Catalogを見るとDirectMLを使うモデルも記載されています。これはGPU演算のようです。

使ってみましょう。
モデル「Phi-3-mini-4k-directml-int4-awq-block-128-onnx」を使います。
同じく下記質問をしてみました。

Please explain the difference between a GPU and an NPU concisely.

下記のように回答が得られました。Copilot+PCで使ったモデルが異なるのか生成が若干遅かったです。

パフォーマンスモニタを確認したところ、GPUをフルに使っていますね。

ARMのNPUに対応したDirectMLが待たれる?

結論、現状ARMのNPUに対応したDirectMLが無いのか、使えないのか?といった状況のようです。
少なくともAI ToolkitはARMのNPUに対応したモデルが使えない状況でした。
今後、使えるようになると、Copilot+PCの性能をフル活用したアプリがどんどん登場することになりそうです。

さいごに

引き続き、Copilot+PCの動向は追っていきます!
Copilot+PCはハードは可能性のかたまりなのですが、ソフトがまだまだこれからですね。
端末にSML(小規模言語モデル)を搭載することは、個人的にはインターネットやiPhoneと同じかそれ以上のパラダイムシフトを起こすのではと考えています。
今後の展開が非常に楽しみです!

Accenture Japan (有志)

Discussion