コンテンツにスキップ

ブラウザ内LLM 対話・計測

ブラウザの中だけでAI(LLM)を動かして対話するページです。授業を担当する先生が、どのモデルなら使えるかを試すための場所で、 生徒に使わせる教材ではありません。 入力した内容も応答もこの端末から出ません。 ただしモデルの本体はネットワークからダウンロードします(数百MB〜数GB)。 初回は時間がかかり、2回目からは端末に残ったものを読みます。

この画面で使っている実装(エンジン)について

ブラウザの中でAIを動かす方法は1つではありません。候補は次の3つで、いま動かせるのは WebLLM だけです(残りは未実装なので選べません)。WebLLM は GPU(WebGPU)専用で、CPU では動きません。WebGPU が使えない端末では、CPU で動く実装(wllama など)がどこまで遅くなるかを 測ることになります。

候補どこで動くかこの画面で備考
WebLLM(MLC)GPU(WebGPU)のみ使えるモデルを WebGPU 用にコンパイルしたものを GPU で動かす。CPU では動かないので、WebGPU が使えない端末では起動もしない
transformers.js(ONNX Runtime Web)GPU(WebGPU)と CPU(Wasm)の両方未実装端末に合わせてGPUとCPUを使い分けられる。未実装
wllama(llama.cpp の Wasm)CPU(Wasm)のみ未実装GPU を使わない。WebGPU が使えない端末で、どこまで遅くなるかの下限を測る役。未実装

モデルの本体は、どの実装でもネットワークから落として端末の中に置きます。 入力も応答も端末から出ません。

1. モデルを読み込む

読み込みが始まらない・応答が返ってこないときは「立て直す」を押してください (最初の読み込みからやり直します)。

端末に残っているモデル

読み込んだモデルはブラウザのキャッシュに残ります(次からは速く開けます)。 1つ数百MB〜数GBあるので、試すほど溜まります。保存先はサイトのアドレスごとに別です(別のアドレスで開くと、同じ端末でももう一度ダウンロードになります)。 端末の空きが足りなくなると、ブラウザの判断で勝手に消えることもあります。

モデル大きさ(目安)ファイル数操作
調べています…

2. 役割(system prompt)

見本を選ぶと入れ替わります。書き換えても構いません。変更は次の送信から効きます。指示が変わると待ち時間も変わるので、変えて送ると計測はやり直しになります(下の「生成の設定」を変えたときも同じです)。

3. 対話する

モデルは指示しなくても Markdown で返してきます。外すと、届いた文字をそのまま出します(記法が壊れていないかを見るとき用)。 生成中はいつも素のまま出して、返答が終わったところで整えます。

まだやり取りはありません。

「先読みで温める」は、system prompt だけを先に1トークン分流して待ち時間を減らす試みです。 押したあとで TTFT が下がるかどうかを見ます(下がらなければ、その実装では効かないという結果)。 「中断」は生成の区切りまで待つことがあります。

生成の設定

ここを変えると待ち時間も生成の長さも変わるので、変えて送ると計測はやり直しになります。 報告には「そのとき測った設定」が入ります。

0 に近いほど毎回同じ答えになります(比較するときは 0 にする)。

長くすると生成速度の平均は安定しますが、待ち時間が伸びます。

4. 計測

モデルの読み込み
読み込み時間
先読み初期化
TTFT(1回目)
TTFT(2回目以降の平均)
生成速度(1回目)
生成速度(2回目以降の平均)

1回ごとの計測

#TTFT生成終了までプロンプトトークン数生成速度
まだ計測していません。

5. 結果を書き出す

試した結果(モデル・設定・待ち時間・やり取り)を、そのまま貼り付けられる形でコピーします。 端末によって結果が変わるので、どの端末で試したかを書き添えてください。

学校と家では、回線もフィルタリングも違います。

モデル・生成の設定・計測に加えて、やり取りの中身と応答ごとの待ち時間を 折りたたみで入れます。数字だけでは中身の良し悪しが判断できないので、既定で入れています (長い会話のときや、中身を出したくないときは外してください)。