訪問30回では、キャッシュなしに比べてキャッシュありが10.2倍速い結果でした。
依頼150回を境に、サーバー往復よりブラウザ内のほうが速くなります。
ブラウザLLMは、WebGPUの計算能力を使ってサーバーなしで推論します。ただし初回の読み込みは重くなります。
ブラウザLLMは、サーバーへ送らずに推論する仕組みです。WebLLMは高性能なブラウザ内言語モデル推論エンジンで、WebGPUによるハードウェア加速を活かし、サーバー側の処理なしにブラウザの中で強力なLLMの動作を可能にすると説明されています。
この「サーバーなし」がどこから有利になるのか実際に計算して比べました。
ブラウザ内推論は初回に 70秒の読み込みが要る。以後は1回 200ms
サーバー方式は読み込み不要だが、1回ごとに往復 280ms + 処理 600ms
依頼回数 サーバー方式の合計 ブラウザ内の合計 速い方
1回 0.9秒 70.2秒 サーバー
5回 4.4秒 71.0秒 サーバー
20回 17.6秒 74.0秒 サーバー
50回 44.0秒 80.0秒 サーバー
100回 88.0秒 90.0秒 サーバー
150回 132.0秒 100.0秒 ブラウザ内
300回 264.0秒 130.0秒 ブラウザ内
依頼100回までは、初回読み込みの70秒が重くサーバーのほうが速い結果でした。
150回を境に逆転します。サーバー方式は毎回280msの往復を払い続けるのに対し、ブラウザ内は初回だけ払えば以後は1回200msで済むためです。
この形から、同じユーザーが同じセッションで何度も使う用途ほど有利だとわかります。1回きりの利用では逆に不利です。
依頼回数が増えるほど、初回読み込みの重さは相対的に薄まる。
WebLLM is a high-performance, in-browser language model inference engine that leverages WebGPU for hardware acceleration, enabling powerful LLM operations directly within web browsers without server-side processing.原文WebLLM 公式リポジトリ「mlc-ai/web-llm」README この内容の有効期限2027-02-19
モデルの重みはブラウザの中に保存できます。どの保存先を使うかは設定で選びます。
ブラウザLLMは、一度読み込んだモデルを保存して使い回します。公式はWebLLMはAppConfig.cacheBackendを通じて4種類のキャッシュの保存先をサポートすると説明しています。
保存先の候補は、ブラウザのCache API(既定)・IndexedDB・Origin Private File System・実験的なCross-Origin Storage APIの4つです。
モデル 4200MB。初回はダウンロード、2回目以降はキャッシュから読み込む
回線 60MB/s、キャッシュ読み込み 900MB/s
訪問回数 キャッシュなしの合計 キャッシュありの合計 差
1回 70.0秒 70.0秒 1.0倍
2回 140.0秒 74.7秒 1.9倍
5回 350.0秒 88.7秒 3.9倍
10回 700.0秒 112.0秒 6.3倍
30回 2100.0秒 205.3秒 10.2倍
初回は差がありません。どちらも70.0秒のダウンロードが要るためです。
2回目以降はキャッシュ読み込みの4.7秒だけで済み、訪問30回では10.2倍の差になりました。
既定のCache APIで足りない場合は、より大きな容量を扱えるIndexedDBやOPFSを検討します。保存先を変えても、効果そのものの構造は変わりません。
WebLLM supports four cache backends through AppConfig.cacheBackend:原文WebLLM 公式リポジトリ「mlc-ai/web-llm」README この内容の有効期限2027-02-19
初回の読み込みは大きな待ち時間になります。設計段階でこの時間を織り込む必要があります。
ブラウザLLMの費用は、サーバー代ではなく初回の待ち時間として現れます。公式はモデルの読み込みにはダウンロードが必要で、事前にキャッシュしていない最初の実行では長い時間がかかることがあると述べています。
この待ち時間は、前段の実測でも70.0秒として現れています。ユーザーがこの間に離脱しないよう、進捗表示や非同期処理での案内が要ります。
サーバー方式では、この重さはサービス側のGPU費用として現れます。ブラウザLLMでは同じ重さがユーザーの初回の待ち時間として現れる、という違いです。この分岐点の考え方はWebGPUの記事で見た、送信の固定手間が割に合うかどうかの判断とも近い形をしています。
同じセッションで使い続ける前提の機能に絞って導入すれば、この初回コストを何度も払わずに済みます。
loading models requires downloading and it can take a significant amount of time for the very first run without caching previously原文WebLLM 公式リポジトリ「mlc-ai/web-llm」README この内容の有効期限2027-02-19
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る