WebLLMとは?ブラウザでLLMを動かすWebGPU活用の仕組みを解説

サーバー不要で、Webブラウザの中だけでLLMを動かす「WebLLM」とは何か。WebGPUとWebAssemblyを使った仕組み、OpenAI互換API、プライバシーやオフラインといった利点を、公式論文やリポジトリをもとに非専門家向けに解説します。

WebLLMとは?ブラウザでLLMを動かすWebGPU活用の仕組みを解説

ChatGPTやClaudeのようなAIチャットは、入力した文章をインターネット越しに事業者のサーバーへ送り、そこで処理した結果を受け取る仕組みが一般的です。これに対して、文章を一切サーバーに送らず、目の前のパソコンのブラウザの中だけで大規模言語モデル(LLM)を動かす——そんな技術が WebLLM です。

WebLLMは、ウェブブラウザ上でLLMを動作させることができるJavaScriptライブラリで3、アプリのインストールも専用サーバーも必要ありません。鍵を握るのは、ブラウザからパソコンのGPU(画像処理装置)を直接使う WebGPU という新しい技術です。この記事では、WebLLMとは何か、なぜサーバーなしでAIが動くのか、その仕組みと利点・弱点を、公式論文やリポジトリをもとに非専門家向けに整理します。前提となるLLM(大規模言語モデル)の基礎とあわせて読むと、全体像がつかみやすくなります。

WebLLMとは:ブラウザの中だけで動くAI

WebLLMは、MLC(Machine Learning Compilation)プロジェクトが公開している、高性能なブラウザ内LLM推論エンジンです2。「推論エンジン」とは、学習済みのAIモデルを実際に動かして回答を生成する部分のことです。WebLLMの特徴は、この処理を事業者のサーバーに頼らず、利用者のブラウザの中だけで完結させる点にあります2

仕組みをイメージで言えば、AIモデル本体(数百MB〜数GB程度のファイル)を最初に一度だけブラウザにダウンロードし、以降はそのモデルを手元で動かす、という流れです。ダウンロード済みのモデルはブラウザのキャッシュストレージに保存されるため、次回からは読み込み時間が短縮されます3

この技術の土台は、2024年12月に公開された論文「WebLLM: A High-Performance In-Browser LLM Inference Engine」(Charlie F. Ruan他)に整理されています1。論文は、WebLLMが「WebGPUによる効率的なローカルGPU加速と、WebAssemblyによる高性能なCPU計算」を活用し、サーバーの設置や専用GPUを必要とせずに動作することを示しています1

仕組み:WebGPUとWebAssemblyが支える

WebLLMがブラウザだけで動くのは、近年ブラウザに加わった2つの技術のおかげです。

1つ目が WebGPU です。これは「ブラウザからGPUに直接アクセスすることで、高速な計算処理を実現」する技術で3、LLMが必要とする大量の行列計算をブラウザ内で高速に実行できます。AIの処理は本来GPUの得意分野ですが、従来のブラウザはGPUをここまで自由に使えませんでした。WebGPUの登場が、ブラウザ内でのLLM実行を現実的にしたといえます。

2つ目が WebAssembly(Wasm) です。WebLLMは、GPU加速にWebGPUを、CPU計算には高性能なWebAssemblyを使い分けています4。さらに内部では、メモリ効率や速度を高めるPagedAttentionやFlashAttentionといった技術も取り入れられています4

処理を支える構造も工夫されています。WebLLMは2つのエンジンに分かれており、フロントエンド側のServiceWorkerMLCEngineが後述するOpenAIライクなAPIを提供し、バックエンド側のMLCEngineがWeb Worker上で動いて重い計算処理を画面表示(UIスレッド)から分離します4。これにより、AIが考えている間も画面の操作が固まりにくくなります。こうしたモデルの最適化には、MLC-LLMとApache TVMという機械学習コンパイラが使われ、ブラウザ向けに最適化されたWebGPUカーネルが提供されています1

OpenAI互換APIと対応モデル

開発者にとって扱いやすいのが、WebLLMが OpenAI APIと完全に互換 である点です2。ChatGPTのAPIと同じ書き方でコードを書けるため、すでにOpenAI向けに作られたアプリを、比較的小さな変更でブラウザ内実行に置き換えられます。ストリーミング表示(回答が少しずつ出てくる表示)やJSON形式での出力、乱数のシード設定などにも対応しています2

動かせるモデルも幅広く、Llama 3、Phi 3、Gemma、Mistral、Qwen(通義千問)など、複数のオープンモデルのファミリーに対応しています2。これらはHugging Faceなどで公開されているオープンモデルが中心で、GoogleのGemmaのような軽量モデルも含まれます。導入はNPMやyarnといったパッケージマネージャー経由でも、CDNから直接読み込む形でも可能です2。ライセンスはApache-2.0で公開されており2、商用利用も含めて扱いやすい形になっています。

どれくらいの速さで動くのか

「ブラウザの中で動く」と聞くと遅そうに感じますが、性能は意外なほど高く保たれています。論文によれば、WebLLMは同じデバイス上で ネイティブ性能の最大80% を維持できるとされています1。「ネイティブ性能」とは、ブラウザを介さずパソコンで直接モデルを動かしたときの速度のことです。

具体的な測定例も示されています。MacBook Pro(M3 Max)での計測では、Llama-3.1-8Bが毎秒41.1トークン(ネイティブ性能の71.2%)、より小さいPhi-3.5-miniが毎秒71.1トークン(同79.6%)を記録しています4。トークンとはAIが文章を扱う単位で、毎秒数十トークンであれば、文章が滑らかに表示される程度の実用的な速度です(実際の速度は端末の性能やモデルの大きさによって変わります)。

利点と向き・不向き

WebLLMの利点は、サーバーを介さない構造から生まれます。最大の利点はプライバシーで、「入力データがサーバーに送信されないため、機密情報の取り扱いも安心」できます3。社外に出せない文書をAIで扱いたい場面では、この性質が大きな意味を持ちます。

もう1つの利点がオフライン動作です。「一度モデルをダウンロードすれば、インターネット接続がなくても利用できる」ため3、通信環境に左右されずに使えます。さらに、処理を利用者の端末で行うため、事業者側がサーバーのAI処理コストを負担せずに済むという利点もあります。

一方で万能ではありません。ブラウザで動かす都合上、扱えるのは比較的小さなオープンモデルが中心で、最新の最大規模モデルをそのまま動かせるわけではありません。性能も利用者のパソコンのスペックに左右され、最初にモデルをダウンロードする手間や通信量も発生します。用途としては、機密性が重視される社内ツールや、軽量なチャット機能の組み込み、オフライン前提のアプリなどと相性がよいといえます。

LLMをどこで動かすかという観点では、クラウドのサーバーで動かす方式と、手元の端末で動かす方式の2つがあります。WebLLMは後者を、特別なアプリのインストールなしに「ブラウザだけで」実現する選択肢です。AIをより身近に、より安全に使うための土台のひとつとして、モデルの軽量化などの技術と並んで、今後も参照される基礎技術になっていくと考えられます。

Sources

  1. WebLLM: A High-Performance In-Browser LLM Inference Engine - Charlie F. Ruan他(ブラウザ内LLM推論エンジンを示した論文、2024年)
  2. mlc-ai/web-llm - MLC-AIによる公式リポジトリ(対応モデル・OpenAI互換API・ライセンス)
  3. ブラウザで動作するLLM:WebLLMの解説と入門ガイド - Monaca Pressによる日本語解説
  4. 【論文瞬読】WebLLM:ブラウザで動く高性能なLLM推論エンジン - AI Nestによる日本語の論文解説

最新のAIニュースを毎日お届けしています。

RSSで購読する 更新をいち早くチェックできます。

他のキーワードで探す →