🕸️

WebLLM(Wasm上で動くLLM)は何が凄い?3種のLLM実行環境を徹底比較〜ローカルブラウザ型、ローカルネイティブ型、クラウド型〜

に公開

近年、プライバシー確保の重要性が高まり、ローカル環境で動作するLLMへの需要が増加しています。その選択肢の一つとしてWebLLMが台頭してきました。

でも、プライバシー確保が目的ならOllamaでいいんじゃないの?
この記事では、そんな疑問を深掘りしていきます!

WebLLMとは

WebLLMは、Webブラウザ上で直接LLMを実行できるJavaScriptライブラリです。利用可能なLLMモデルが複数用意されており、ユーザーが実行時に必要なモデルをダウンロードして利用する仕組みになっています。[1]

技術要素

WebLLMは以下の技術で支えられています。[1:1]:

  • WebAssembly (Wasm): C/C++などで書かれたコードをブラウザ上で高速に実行するための技術を採用
  • WebGPU: ブラウザからGPUに直接アクセスすることで、高速な計算処理を実現
  • キャッシュストレージ: 一度ダウンロードしたモデルはブラウザのキャッシュストレージに保存され、再利用時のダウンロード時間を短縮

WebAssemblyについて詳しく知りたい、実際に動かしてみたい方は、以下の記事も参考になります。
https://zenn.dev/optimisuke/articles/b96ecf48ee08af
https://zenn.dev/mi2valley/articles/1cd5efc05a5433

動作フロー

WebLLMの動作フロー

  1. (初回のみ)WebLLMライブラリがクラウド上のLLMをブラウザのキャッシュストレージにダウンロード
  2. ユーザーがWebブラウザのUIにプロンプトを入力
  3. プロンプトがWebLLMライブラリに送信される
  4. WebLLMライブラリがキャッシュストレージからモデルを読み込む
  5. Wasmエンジンが推論処理を開始
  6. WebGPUが、OS上のGPUに演算命令を送信
  7. GPUが行列演算を実行し、結果をWebLLMに返す
  8. WebLLMライブラリが生成されたレスポンスをまとめる
  9. レスポンスがUIに表示される

WebLLMの利点

  1. 完全なプライバシー保護: すべての処理がブラウザ内で完結するため、プロンプトや生成結果が外部サーバーに送信されることがありません。機密情報や個人情報を扱う場合でも安心して利用できます。
  2. 導入の手軽さ: インストール不要でURLにアクセスするだけで利用開始できます。ユーザーは特別なセットアップや環境構築を行う必要がありません。
  3. オフラインで利用可能: 一度モデルをダウンロードすれば、インターネット接続がなくても利用できます。

WebLLMの制約

  1. モデルサイズの制限: ブラウザのメモリ制限により、大規模なモデルの実行は困難です。現実的には数GB程度の軽量化されたモデルが中心となります。
  2. デバイス性能への依存: ユーザーの端末に十分なGPUやメモリが必要です。低スペック端末では動作が遅い、または動作しない可能性があり、すべてのユーザーが快適に利用できるとは限りません。

3種のLLM実行環境の比較

LLM実行環境の分類

近年、LLMの利用方法も多様化してきました。この記事では、「LLMがどこで動くか」 という観点で、3つに分類しました。

  1. クラウド型:クラウドサーバーでLLMが動作する
    • 例:ChatGPT、Claude、Gemini等のAPIサービス
  2. ローカルネイティブ型:ユーザーのPC上(OS上)でLLMが動作する
    • 例:Ollama、LM Studio等のネイティブアプリ
  3. ローカルブラウザ型:ユーザーのブラウザ内でLLMが動作する
    • 例:WebLLM

注: 「ローカルネイティブ型」「ローカルブラウザ型」は、この記事での造語です。3つの違いを明確にするため、このように分類しています。

クラウド型との比較

クラウド型の概要

クラウド型は、OpenAIのChatGPT、AnthropicのClaude、GoogleのGeminiなど、多くの主要なLLMサービスで採用されているアーキテクチャです。ユーザーはWebインターフェースやAPIを通じてプロンプトを送信し、クラウド上の強力なサーバーで推論処理が実行され、結果が返されます。

クラウド型の動作フロー

クラウド型の動作フロー

  1. ユーザーがWebブラウザのUIにプロンプトを入力
  2. プロンプトがインターネット経由でクラウド上のLLMサービス(ChatGPT、Claudeなど)に送信される
  3. クラウド上のサーバーで推論処理が実行される
  4. 生成されたレスポンスがインターネット経由でWebブラウザのUIに返される

比較

ローカルブラウザ型(WebLLM)とクラウド型の最大の違いは、データの処理場所です。
クラウド型では、プロンプトもレスポンスもすべてインターネット経由でクラウドサーバーに送信され、サーバー側で処理されます。そのため、機密情報を扱う場合はデータ漏洩のリスクを考慮する必要があります。一方、ローカルブラウザ型はすべての処理がブラウザ内で完結するため、データが外部に送信されることはありません。
また、クラウド型は最新かつ大規模なモデルを利用でき、高品質な出力が期待できます。WebLLMは軽量化されたモデルに限定されるため、出力品質が劣ります。

ローカルネイティブ型との比較

ローカルネイティブ型の概要

ローカルネイティブ型は、OllamaやLM Studioなど、ユーザーのPC上で直接動作するネイティブアプリケーションです。これらはOSレベルでインストールされ、システムリソースに直接アクセスしてLLMを実行します。完全にオフラインで動作し、プライバシーも保護されます。

ローカルネイティブ型の動作フロー

ローカルネイティブ型の動作フロー

  1. (初回のみ)PCにOllamaとLLMをダウンロードする
  2. ユーザーがWebブラウザのUIにプロンプトを入力する
  3. プロンプトがlocalhost API経由でOS上のOllamaアプリに送信される
  4. Ollamaアプリがストレージから必要なモデルを読み込む
  5. Ollamaアプリの推論エンジンが推論処理を開始
  6. OllamaアプリがOS経由でGPUに演算命令を送信
  7. GPUが行列演算を実行し、演算結果をOllamaアプリに返す
  8. Ollamaアプリが生成されたレスポンスをまとめる
  9. レスポンスがlocalhost API経由でWebブラウザのUIに返される

比較

ローカルブラウザ型(WebLLM)とローカルネイティブ型は、どちらもローカル環境でLLMを実行し、プライバシーを保護できる点で共通しています。
最大の違いは、導入の手軽さです。WebLLMはブラウザでURLにアクセスするだけで利用開始できますが、ローカルネイティブ型はアプリのインストールとモデルのダウンロードという事前セットアップが必要です。
実行環境の違いも重要です。ローカルネイティブ型はOSレベルでシステムリソースに直接アクセスできるため、ある程度大規模なモデルの実行や最適化が可能です。WebLLMはブラウザのサンドボックス内で動作するため、リソースアクセスに制限があり、実行できるモデルサイズや性能面で劣る傾向があります。
配布の観点では、WebアプリケーションにWebLLMを組み込めば、ユーザーは常に最新版を利用できます。ネイティブアプリは各ユーザーがアップデートする必要があり、バージョン管理が複雑になります。

比較表

項目 クラウド型 ローカルネイティブ型 ローカルブラウザ型
(WebLLM)
データプライバシー △ サーバーに送信 ◎ 完全ローカル ◎ 完全ローカル
導入の手軽さ ◎ アカウント登録のみ △ インストール必要 ◎ URLアクセスのみ
コスト △ 従量課金 ◎ 無料(端末負担) ◎ 無料(端末負担)
モデルサイズ ◎ 大規模モデル可 ○ 中〜大規模 △ 小〜中規模
出力品質 ◎ 高品質 ○ 中〜高品質 △ 中品質
オフライン動作 × 不可 ◎ 可能 ◎ 可能
更新・メンテナンス ◎ 自動 △ 手動更新必要 ○ 自動更新可
実行環境 クラウド ローカル(OS上) ローカル(ブラウザ内)

まとめ

この記事では、LLM実行環境を3種類に分類し、WebLLMにどんな強み、制約があるのか深掘りしました。
WebLLMは、プライバシー保護と導入の手軽さを両立した技術です。ブラウザ上で完結するため、データ送信の懸念がなく、インストール作業も不要です。一方で、ブラウザの制約により、モデルサイズや出力品質では他の実行環境に劣る面もあります。
WebLLMを支えるWebAssembly(Wasm)やWebGPUはまだまだ発展途上の分野であり、現時点でのユースケースは限られますが、他の実行環境にはないことも実現可能な技術で、今後の発展に大いに期待できます。ビジネスで利用可能になる日も近いかもしれません、、!

脚注
  1. ブラウザで動作するLLM:WebLLMの解説と入門ガイド - モナカプレス ↩︎ ↩︎

Discussion