「昨日まで速かったローカルLLMが急に遅い」「GPUがあるのにCPUで動いている気がする」——ローカルAIでよくある詰まりの一つです。原因のほとんどはモデルがVRAMに載りきらず、一部(または全部)がCPUにあふれていること。切り分けと対処を、当サイトの実測とあわせて整理します。

30秒でわかる結論

  • まず ollama ps を見る。PROCESSOR が「100% GPU」でなければ、モデルはVRAMに載りきらずCPUにあふれている=これが遅さの主因。
  • 対処は3つ:①モデルを小さく/量子化を強く(Q4_K_M)②VRAMを食う同居プロセスを止める ③そもそも載るかを動くか診断で先に確認
  • CPUに落ちると激遅。当サイト実測では、JetsonでGPU 12.6 tok/s → CPUフォールバック時 約3.8 tok/sまで落ちた。

まず切り分け:本当にGPUで動いているか

「遅い」と感じたら、体感でなく数字で確認します。

  • ollama ps:実行中モデルの PROCESSOR 列を見る。100% GPU なら正常、XX% CPU / YY% GPU の混在や 100% CPU なら、VRAMに載りきっていない。
  • NVIDIA GPUnvidia-smi でGPUメモリ使用量と利用率を見る。モデルサイズよりVRAMが小さいと、llama.cppはレイヤーをCPUにオフロードする。
  • Jetsontegrastats でGR3D(GPU)利用率。Raspberry Pi 5はLLMのGPU推論に非対応でCPUのみ。

遅い・GPUが使われない原因と対処

  1. VRAM不足でCPUにオフロード(よくある原因):モデル+KVキャッシュがVRAMを超えると、あふれた分がCPU/RAMに回り激遅化する。→ 量子化を強める(Q8→Q4_K_M)/小さいモデルに変える。必要量は必要VRAM早見表で確認。
  2. 同居プロセスがVRAMを占有:別モデルの常駐・デモ・ブラウザのGPU使用などでVRAMが埋まっている。当サイトのJetson実測でも、同居プロセスの影響でGPUが使われずCPU推論にフォールバックし、約10W・3.8 tok/sまで落ちた。→ 不要なGPUプロセスを止める。
  3. モデルがそもそも大きすぎる:VRAMに対してモデルが大きい。→ 動くか診断で載るサイズを先に確認する。
  4. 長い文脈でKVキャッシュが膨張:コンテキストを長く使うほどKVキャッシュがVRAMを食い、途中からあふれる。→ 文脈長を絞る/モデルを小さくする。
  5. 初回だけ遅い(ロード時間):モデルの初回ロードはディスク読み込みで遅い。2回目以降の値で判断する。

実測:CPUに落ちるとどれだけ遅いか

同じ8B(granite3.3)の生成速度 tok/s(RTX A6000・自前実測)
  • GPU実行(A6000・検証DB)102
  • CPU実行(num_gpu=0・診断)10

黙読に追いつく目安 10 tok/s

GPUは検証DBの実測、CPUは同一プロトコルでnum_gpu=0に切替えた直接診断(ともにgranite3.3:8b・Q4_K_M・num_predict=256・2回平均・temp0)。載せる場所を変えただけで約10倍。AI PCのNPUは主要ランタイム(ollama/llama.cpp)が使わないため、実態はCPU側に近づく。

同じ8Bモデルでも、GPU実行とCPU実行で約10倍違います。つまり「動くか」と「実用速度で動くか」は別問題。CPUフォールバックは"動いてはいる"ので気づきにくく、体感だけだと見逃します。

遅さを防ぐ:載るかを先に確認

このトラブルの大半は「載らないものを無理に動かしている」ことが原因です。動かす前に:

  • 動くか診断:機材×モデルで、載るか・どのくらいの速度かを先に見る。
  • 必要VRAM早見表:パラメータ数×量子化で必要量を把握する。
  • 検証DB:実測tok/sで実用速度を確認する。
ローカルLLMが急に遅くなったのはなぜ?
多くはモデルがVRAMに載りきらず、あふれた分がCPUで動いているためです。ollama ps の PROCESSOR が 100% GPU か確認し、混在やCPUなら、量子化を強める・小さいモデルに変える・VRAMを食う同居プロセスを止めるのが対処です。
GPUがあるのにCPUで動いていないか確認するには?
ollama ps の PROCESSOR 列、NVIDIAなら nvidia-smi の利用率とメモリ、Jetsonなら tegrastats のGPU利用率で確認できます。100% GPU でなければ、モデルがVRAMに載りきらずCPUにあふれています。
CPUに落ちるとどのくらい遅い?
当サイトのA6000実測では、同じ8BモデルでGPU実行とCPU実行が約10倍(102→10 tok/s)でした。別途Jetsonでは、通常12.6 tok/sのGPU実行がCPUフォールバック時に約3.8 tok/sまで落ちました。版・量子化・入力長で変動します。
遅くならないようにするには?
モデルをVRAMに収めるのが基本です。動くか診断で載るサイズを先に確認し、量子化はQ4_K_Mを既定にすると多くの環境で収まりやすくなります。長い文脈を使う場合はKVキャッシュ分の余裕も見ます。
Raspberry Pi 5はGPUで速くなりますか?
Pi 5はLLMのGPU推論に対応せずCPUのみです。1B級の軽量モデルなら実用、4B級は遅くなります。ビジョンなどを速くしたい場合はAIカメラ等の別アクセラレータが必要です。

精度等について

  • 本記事の対処は一般的なケースの整理で、環境(ランタイム版・OS・ドライバ)により挙動は変わります。
  • 実測値は当サイトの保有機材での測定です。数値は版・量子化・入力長で変動します。