先週の話になりますが、大手町プレイスで開催された Azure OpenAI Service Dev Day にフロントエンドのスペシャリストである @nahoko_ushiro さんと共同で SLM と Azure Functions の活用について話をしました。
コミュニティでの開催という規模ではないなというぐらいスピーカー陣が豪華で、Keynote で登壇した Marco はもちろんのこと Cosmos DB の Vector Search について話してくれた James など Microsoft 本社からのゲストも参加してくれていました。
https://azureai.connpass.com/event/319491/
Togetter にまとめが出来ていたので紹介しておきますが、参加していた自分から見てもこの規模のイベントでここまでの熱量があるのは最近では珍しいと感じました。それほど Azure OpenAI Service や LLM の活用に注目している方が多いということだと思います。
その中で私と nahoko さんのセッションは現在主流の LLM ではなく SLM にフォーカスを当てた内容になります。スライドは公開されているので、こちらも参照してください。
Keynote でも Marco がブラウザで動作する Phi-3 やマルチモーダル対応の Phi-3 Vision について触れていましたが、Azure OpenAI で Global Standard が導入された意味を考えると、現在の LLM が消費するリソースは非常に多く 1 リージョン内で到底賄いきれるものではないことが窺い知れます。
そうなると必然的に軽量、あるいは低レイテンシが必要となるタスクは SLM を使う形になると考えています。Copilot+ PC によって NPU が標準搭載され始めているので、SLM は更に使いやすくなるでしょう。
Phi-3 Vision の Fine-tuning
控室で準備をしていると Marco と少し話をする機会があり、セッションで Phi-3 など SLM の話をすると言うと Phi-3 Vision は Fine-tuning 出来るからめっちゃいいぜ!みたいなことを教えてくれました。
タイミングよく Phi-3 のアップデートが公開され、Fine-tuning についても情報が揃ってきた感があります。
Phi-3 Vision の Fine-tuning については GitHub でドキュメントが公開されているので、こちらを参考にすると行えそうですが GPU リソースはかなり必要になるようですね。マルチモーダルの Fine-tuning は通常のテキストよりも需要は高そうなので弄ってみたいところですね。
GPU で処理してもまだ遅さは感じるので、この辺りは NPU も使うようになれば改善するのかもしれません。今は DirectML での NPU 対応を待ち望んでいます。
Copilot+ PC (DirectML + NPU) / Phi-Silica
最近の生成 AI 処理の Cloud から Edge への移行を象徴するのが Copilot+ PC の登場でしょう。40 TOPS 以上の NPU が必須となっているのと、Phi-Silica という NPU に最適化されたモデルが最初から入っているので、利用できるようになると大きな動きになりそうです。
ただし現在では Phi-Silica の API が公開されていないという問題があり、Windows App SDK のアップデート待つ必要があります。Phi-Silica がどのくらいの速度でワークロードを処理してくれるのかは未知数ですが、ライブキャプションなど組み込みの AI 機能を試すとかなり高速に見えますので期待しています。
将来的には Phi-Silica を含む Windows Copilot Runtime は、OS と同様に定期的な更新が行われていくのではないかと考えていますので、SLM の利用がかなり容易になりそうです。
Phi-3 を ONNX Runtime で動かす
デモは ONNX Runtime Web を利用してブラウザ上で行いましたが、ONNX Runtime を使えば Phi-3 mini / medium / vision を Windows 上で GPU アクセラレーションが効く形で実行できます。既に何回か試しているので詳細は以下のエントリを参照してください。
Hugging Face で公開されているモデルは ONNX 用を選ぶ必要があるため、そこだけは注意が必要です。自分が試している範囲では GPU ドライバによっても若干精度が変わる印象がありました。
AI Toolkit for VS Code でお手軽に試す
一番手っ取り早く SLM を試す方法は Visual Studio Code に AI Toolkit をインストールして、Model playground を利用することです。利用できるモデルは Mistral 7B と Phi-3 mini だけで少ないですが、Windows であれば何もしなくても DirectML でのアクセラレーションが有効になります。
AI Toolkit を使うと自動的に OpenAI 互換のエンドポイントが起動するため、対応する SDK を使っていれば少しの修正で Phi-3 などの SLM をアプリケーションから試すことが出来ます。ONNX Runtime を直接使うのは意外に大変なので、このエンドポイントは地味ですがかなり強力な機能だと思います。
セッションの風景
最後はセッション中のツイートを少し拾ってきました。会場はかなり広いのですが、大勢の方が参加してくれていましたので、SLM への注目度が高くなっていることを実感しました。
しばや〜ん、なほこさ〜ん #AOAIDevDay pic.twitter.com/w8UmShOQmI
— fujimori (@masatoru) 2024年7月25日
#AOAIDevDay 次のセッションはキーノートで Marco も紹介していた SLM についてのセッションを Geek なふたり( @shibayan, @nahoko_ushiro )からお話しいただきます! pic.twitter.com/wpMKqaGzlG
— miyake | ZEN (@kazuyukimiyake) 2024年7月25日
ベンダーに一切の忖度のないトークで清々しい😊 大好物#AOAIDevDay pic.twitter.com/oIPawQdyvv
— Yoichi Kawasaki (@yokawasa) 2024年7月25日
人生初の松葉杖で立った状態でのセッションとなりましたが、これが最後になることを祈ります。