この 1 年間で Web AI は大きく変化しました。I/O 2024 では、次世代のウェブアプリ向けの新しいモデル、ツール、API について講演しました。
Web AI は、デバイスの CPU または GPU で実行されているウェブブラウザのクライアント側で ML モデルを使用するためのテクノロジーと手法のセットです。これは、JavaScript や WebAssembly、WebGPU などの他のウェブ テクノロジーで構築できます。これは、モデルがサーバーで実行され、API でアクセスされるサーバーサイド AI や「クラウド AI」とは異なります。
この講演では、以下の内容について説明しました。
- ブラウザで新しい大規模言語モデル(LLM)を実行する方法と、モデルをクライアントサイドで実行することの影響。
- ビジュアル ブロックの将来像を把握し、プロトタイプをより迅速に作成する。
- また、ウェブ デベロッパーが Chrome で JavaScript を使用して Web AI を大規模に操作する方法についても説明します。
ブラウザの LLM
Gemma Web は、Google の新しいオープンモデルです。Gemini の作成に使用されたものと同じ研究とテクノロジーに基づいて構築されており、ユーザーのデバイスのブラウザで実行できます。
LLM をデバイスに搭載することで、推論のためにクラウド サーバーで実行する場合と比較して、コスト削減、ユーザーのプライバシーの強化、レイテンシの短縮を実現できる可能性が大幅に高まります。ブラウザでの生成 AI はまだ初期段階ですが、ハードウェアの性能向上(CPU と GPU の RAM の増加)に伴い、利用可能なモデルが増えることが予想されます。
企業は、ウェブページでできることを再考できます。特に、タスク固有のユースケースでは、小規模な LLM(20 億~ 80 億のパラメータ)の重みを調整して、一般消費者向けのハードウェアで実行できます。
Gemma 2B は Kaggle Models でダウンロード可能で、Web LLM 推論 API と互換性のある形式で提供されます。その他のサポート対象アーキテクチャには、Microsoft Phi-2、Falcon RW 1B、Stable LM 3B があります。これらは、コンバータ ライブラリを使用して、ランタイムで使用できる形式に変換できます。
ビジュアル ブロックでプロトタイプを迅速に作成する
Google は Hugging Face と協力して、ビジュアル ブロック用の 16 個の新しいカスタムノードを作成しました。これにより、Transformers.js と Hugging Face エコシステム全体が Visual Blocks に導入されます。
これらの新しいノードのうち 8 つは、Web AI を使用して完全にクライアント サイドで実行されます。
また、Hugging Face の 7 つのサーバーサイド ML タスクを使用すると、Visual Blocks で API を使用して数千ものモデルを実行できます。Hugging Face Visual Blocks コレクションをご覧ください。
Chrome で Web AI に JavaScript を大規模に使用する
Gemma などの以前のインスタンスでは、モデルはウェブページ自体に読み込まれて実行されます。Chrome では、組み込みのオンデバイス AI の開発に取り組んでいます。この AI では、標準化されたタスク固有の JavaScript API を使用してモデルにアクセスできます。
これだけではありません。Chrome では、16 ビットの浮動小数点値をサポートする WebGPU も更新されています。
WebAssembly には、64 ビットのメモリアドレスをサポートする新しい提案 Memory64 があります。これにより、以前よりも大きな AI モデルを読み込むことができます。
ヘッドレス Chrome で Web AI モデルのテストを開始する
ヘッドレス Chrome を使用してクライアントサイド AI(または WebGL や WebGPU のサポートを必要とするアプリケーション)をテストできるようになりました。NVIDIA T4 や P100 などのサーバーサイド GPU をアクセラレーションに使用できます。詳細:
- Google Colab で実行する
- テストの詳細を読む
- また、GitHub のサンプルコードもご確認ください。
作成したものを共有する際は、#WebAI を追加して、より多くのコミュニティ メンバーに作品を見てもらいましょう。X、LinkedIn、またはお好みのソーシャル プラットフォームで、調査結果や提案を共有します。