ローカルLLMの返答が遅い?tokens/sと体感速度の違い

CHATGPT / AIChatGPTなどの生成AIを活用して運営・記事制作・更新を行っています。制作方針

tokens/sのベンチマークと画面の待ち時間がずれる理由を、初回ロード、長い入力、思考表示、待ち行列、配信・描画に分けて解説。数値の読み方と、モデル変更前の確認順をまとめます。

ベンチマーク速度と画面の待ち時間を、推論前後の各区間に分けて見直す図解

先に結論

  • TGのtokens/sは文章を生成する区間の平均速度です。送信から初回表示までや返答全体の時間とは別の指標です。
  • ベンチマークと体感が合わないときは、モデルを替える前に「初回ロード」「入力処理」「思考」「サーバー待ち」「配信・画面描画」を分けて観察します。
  • この記事は公式資料をもとにした調査記事です。筆者環境での計測や、掲載できる実測値はありません。手順の実行結果を示すものではありません。

おすすめ読者: ベンチマークでは速いモデルがチャット画面では遅く感じる人、どの段階が待ち時間を作るか整理したい人。

確認日: 2026年10月2日(Asia/Tokyo)
調査方法: llama.cpp公式のllama-bench・server資料を確認した机上調査です。実機ベンチマーク、API計測、各UIでの表示確認はしていません。掲載する速度値やログ例はありません。
固定した版: llama.cpp nightly release b11344(2026年10月2日 08:54 UTC公開)。以下の公式READMEはmasterではなく同release tagに固定して確認しました。

tokens/sが表す範囲

速度を比べるとき、まず「何を、どの区間で数えた値か」を確かめます。llama.cpp公式のllama-benchは、prompt processing(PP)、text generation(TG)、両方を続ける試験を分け、反復した結果を平均tokens/sとばらつきで出します。一方、公式READMEは、測定にtokenizationとsamplingの時間を含めないと明記しています。設定した入力・出力長や実行条件が、日常のチャットと一致するとも限りません。

したがってTGが高くても、「送信後すぐ文字が出る」とは限りません。初回表示までには入力のtoken化、prompt処理、最初のtoken生成、送信、受信と描画が関わります。PPも参考になりますが、ベンチマーク区間だけを実際のTTFT(最初のtokenまでの時間)と同一視しないでください。

症状から待ち場所を絞る

症状まず見る区間次に確かめること
起動直後や久しぶりの一回だけ遅いモデルのロードモデルがメモリから外れて再ロードされたか。2回目以降と比べてどうか。
長い会話や資料を入れたときだけ、最初の文字が遅い入力のtoken化・prompt処理送った内容と会話履歴を短くして差が出るか。prompt token数や、利用可能なら処理時間を確認する。
最初の文字は早いが、返答が終わるまで長い生成と出力長TGだけでなく、出力token数、生成の平均時間、返答が長くなっていないかを見る。
画面の待ち時間に比べ、生成timingsが短いqueue・stream・UI要求が処理待ちだったか、stream配信に間があるか、描画や整形が遅れていないかを分ける。
「考え中」の後に回答が始まる思考時間と表示モデルがthinking/reasoningを生成しているか、UIがその欄を表示するか確認する。

thinkingを隠しても、モデルが思考出力を生成しているなら、その時間は残り得ます。長い思考表示も故障と決めつけず、思考と最終回答の時間を分けて考えます。表示欄はモデルとクライアントにも依存します。

モデルを変える前の確認順

  1. 同じ依頼を続けて送り、初回だけのロード差があるかを見ます。
  2. 長い会話は、新規チャットで短い依頼をした場合と比べます。promptには過去の会話も含まれ得ます。
  3. 画面の送信から初回表示まで、返答完了まで、生成中の文字の流れを別々に計ります。
  4. APIの区間別時間・token数と画面の経過時間を比べます。llama.cpp serverにはprompt_ms、predicted_ms、token数、tokens/sの応答例があります。timings_per_tokenは既定で無効です。streamでは統計が最終chunkに含まれる場合があるため、完了応答も見ます。
  5. 複数要求のときだけ遅いなら、同時実行やserver queueを確認します。llama.cppの/metrics(有効化が必要)には処理中・待機中の要求数があります。

区間を特定してから、長いpromptなら履歴や入力、生成なら出力長、初回ロードなら常駐方法を検討します。設定変更より先に遅れている場所を確かめます。

数値を比べるときの限界

モデル、量子化、backend、hardware、context、同時実行数、warm/cold状態が違う結果を単一のtokens/sで順位づけできません。UIのqueue、通信、Markdown整形、描画はserver値に含まれない場合があります。APIの計測範囲も実装・版ごとに確認し、同条件で比較してください。

llama.cppの設定そのものを見直す場合はllama.cppが遅い原因と高速化設定へ。この記事の役割は設定値を推奨することではなく、「ベンチマークと体感の差がどの区間で生じたか」を切り分けることです。

公式資料

表を拡大

左右にスワイプして読めます