9月6日、Vetted Consumerが「Why Is My Local LLM Slow? 6 Bottlenecks Ranked (2026 Fix)」と題した記事を公開した。ローカルLLMの遅さの原因を影響度順に6つランク付けし、それぞれの診断と対処法を解説した内容だ。「なぜか遅い」と感じているユーザーの多くは、最初の2つのボトルネックのどちらかに該当するという——ただし残り4つも、状況によっては見逃せない速度損失の原因となる。
最大の原因はメモリの「崖」
ローカルLLMの速度問題は、大半が原因を特定できる。記事は6つのボトルネックを影響度の大きい順に列挙しており、最初の2つで全体の大半を占めると指摘している。
第1位:モデルがVRAMに収まっていない
これが「なぜこんなに遅いのか」の最多原因だ。モデルとKVキャッシュ(過去のトークン計算を再利用するための一時領域)の合計がVRAMに収まらないと、ランタイムはあふれた分をシステムRAMやディスクに逃がす。これが「崖」で、速度は十数tok/sから1.6tok/s以下に一気に落ちる。坂道ではなく崖なのがポイントだ。
対処法は明快だ。量子化(クオント)を下げてモデル全体をVRAMに収めるか、Mixture-of-Experts(MoE)モデルのエキスパート部分をRAMに意図的にオフロードする(ディスクへの流出は致命的だがRAMへの流出は許容できる)。
第2位:メモリ帯域幅が低い
モデルがVRAMに収まった後、生成速度を決めるのはほぼメモリ帯域幅だ。1トークン生成するたびに、アクティブな重みをメモリ全体からストリーミング読み出しする必要がある。このためTFLOPSやコア数ではなく帯域幅が律速となる。
具体例として記事が挙げるのは以下のような比較だ。
- RAMをシングルチャネルで使うと帯域幅が半減し、速度が落ちる
- DDR4-2400はDDR5に比べ明らかに遅い
- 24GB・936 GB/sのGPUは、128GB・256 GB/sのミニPCより高速に推論できる
購入時にTOPSやコア数で比較するのではなく、帯域幅で比較するべきだという主張だ。
モデル選びで速度は10倍変わる
第3位:モデルが密すぎる(Dense vs MoE)
生成速度は1トークンあたりに読み出す「アクティブパラメータ数」に比例する。Dense(密)な30Bモデルは毎トークン30B分全部を読む。一方、スパースMoEの30B-A3Bモデルは3B分しか読まない。同じハードウェアで約10倍の速度差が生まれる計算だ。
「小さいDenseモデルの方が速い」とは限らない。総パラメータ数が大きくてもスパースなMoEモデルの方が実際には速く動くケースがある。
「生成は速いのに最初の1トークンが出るまで遅い」場合
第4位:プリフィル(プロンプト処理)のボトルネック
モデルが走り出せば速いのに、応答開始まで異様に時間がかかる場合は、プリフィル(入力プロンプトを処理する段階)がボトルネックだ。長いドキュメント、コードベース全体、長いエージェント履歴を入力すると、この処理は非常に計算集約的になる。記事によれば、ユニファイドメモリ(CPUとGPUでメモリを共有する設計)のマシンでは最初のトークンが出るまで10分以上かかったとの報告もある。
対処法は、コンテキストを短くする、プリフィル処理に強いマシン(記事では行列演算ハードウェアを追加したM5 Macを挙げている)を使う、またはプリフィル専用に外付けGPUを追加する、の3択だ。
見落とされがちな2つの改善点
第5位:ランタイム・バックエンドが最適でない
同じモデル・同じハードウェアでも、ランタイムを変えると2〜5倍の速度差が出ることがある。OllamaはUIが便利だがチューニング済みのllama.cppより遅い場合がある。AMDのGPUではROCmよりVulkanバックエンドが速いことがある。Apple SiliconではMLXが汎用ビルドより速いことがある。そして、ほとんどのユーザーが有効にしていないスペキュラティブデコーディング(投機的デコード:小さなドラフトモデルで複数トークンを先読みしてメインモデルで検証する手法)は、適切なワークロードで1.5〜2倍の無料の高速化になる。
第6位:設定が足を引っ張っている
KVキャッシュを16ビット・フル精度のまま大きなコンテキストで使うとVRAMを無駄に消費する。8ビットに量子化するだけで改善できる。またランタイムによってはデフォルトのGPUレイヤー数が低く、本来GPUで処理できる計算をCPUに回している場合がある。
症状別の診断表
記事は以下の対応表を提示している。症状を観察するうえで最初に確認すべきは「最初のトークンが出るまでが遅いのか、生成中が遅いのか」という区別だ。この一点だけで、原因がプリフィルか生成フェーズかに絞り込める。
| 症状 | 最有力な原因 |
|---|---|
| ほぼ使えないほど遅い(<2 tok/s) | モデルがVRAMに収まらずディスクに流出(第1位) |
| 安定しているが遅い | 帯域幅不足(第2位)またはDenseモデル(第3位) |
| 最初の出力まで遅く、出始めると速い | 長い入力のプリフィル処理(第4位) |
| 他人の報告より遅い(同じハードウェアなのに) | ランタイム・バックエンド(第5位)または設定(第6位) |
詳細はWhy Is My Local LLM Slow? 6 Bottlenecks Ranked (2026 Fix)を参照していただきたい。