Amazonで商品を見るセール会場へ

ローカルLLMでメモリが足りないときの切り分け|どこに載っているかを先に見る

ローカルLLMが落ちる、または極端に遅いとき、原因はたいてい「載りきっていない」ことにある。

モデルの大きさだけでなく、コンテキスト長や同時に動かしている数でも必要な量は変わる。

ここでは、いまどこに載っているかを確かめてから、減らす順番を決める流れを整理する。

コマンドと既定値は2026年9月20日にOllamaの公開ドキュメントを確認したものである。

目次

まず、どこに載っているかを見る

同じ「遅い」でも、GPUに載っているか、システムメモリに落ちているかで対処が変わる。

Ollamaを使っている場合は、次のコマンドで確かめられる。

ollama ps

公式ドキュメントには、出力の例としてこの形が載っている。

NAME        ID            SIZE    PROCESSOR   UNTIL
llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now

PROCESSORの欄が、どこに載っているかを示している。

表示意味次に見るところ
100% GPUすべてGPUに載っているメモリ以外の原因を見る
100% CPUすべてシステムメモリに載っているGPUに載る大きさまで減らす
48%/52% CPU/GPU両方に分かれて載っているGPU側に収まる量まで減らす
PROCESSOR欄の読み方

分かれて載っている状態は動きはするが、システムメモリ側の処理が足を引っ張るため遅くなる。

「落ちる」ではなく「遅い」という症状のときは、まずここを見る。

手元の機械が何を積んでいるかを見る

減らす量を決めるには、搭載量を知っておく必要がある。

WindowsのPowerShellでは次のように確かめられる。

$cs = Get-CimInstance Win32_ComputerSystem
"{0:N1} GB 搭載" -f ($cs.TotalPhysicalMemory/1GB)

Get-CimInstance Win32_VideoController |
  Select-Object Name,@{n='VRAM_GB';e={[math]::Round($_.AdapterRAM/1GB,1)}} |
  Format-Table -AutoSize

手元の環境で実行したところ、メモリ15.4GB、GPUは内蔵のもので表示上のVRAMは0.5GBだった。

内蔵GPUはシステムメモリの一部を使う仕組みのため、この表示だけで実際に使える量は決まらない。

専用のVRAMを持たない構成では、モデルの大きさがそのままシステムメモリを圧迫する。

減らせるものは4つある

必要な量を下げる手段は、効きやすい順に4つに分かれる。

減らすもの効き方失うもの
コンテキスト長すぐ効く一度に渡せる長さ
量子化の段階大きく効く出力の精度
モデルの大きさ最も効くできることの幅
同時に動かす数状況による並行して使えること
減らせるものと、その代償

上の2つは設定で変えられるため、モデルを入れ替える前に試せる。

コンテキスト長を下げる

コンテキスト長は、一度に扱える長さであり、必要なメモリに直接効く。

Ollamaの公式ドキュメントには、既定値が4096トークンだと書かれている。

この値は環境変数で変えられる。

OLLAMA_CONTEXT_LENGTH=8192 ollama serve

対話の途中で変える場合は、次のように指定する。

/set parameter num_ctx 4096

APIから使う場合は、optionsの中で渡す。

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "options": {
    "num_ctx": 4096
  }
}'

長い文章を一度に渡す使い方をしていると、既定より大きい値に設定していることがある。

その設定のまま別の作業をすると、必要な量だけが増えたままになる。

量子化を下げる

同じモデルでも、量子化の段階が違えば必要な量が変わる。

段階を下げるとメモリは減るが、出力の質も下がる。

まず段階を1つ下げて、載り方と出力の両方を見比べるとよい。

  1. いまの段階で ollama ps を見て、どこに載っているかを控える
  2. 1つ下の段階を入れて、同じことを試す
  3. PROCESSORの表示が GPU 側に寄ったかを見る
  4. 出力を読んで、実用になるかを判断する

段階を下げても100% CPUのままなら、モデルの大きさ自体が合っていない。

同時に動かしているものを見る

モデルは、使い終わってもしばらくメモリに残る。

ollama ps のUNTILの欄に、いつまで保持されるかが出る。

別のモデルを続けて試していると、前のものが残ったまま次を読み込むことになる。

  • ollama ps で、載っているモデルが1つだけかを見る
  • ブラウザーや編集ソフトなど、メモリを多く使うアプリを閉じる
  • モデルを切り替えたら、前のものが消えるまで待つ

手元の環境では、搭載15.4GBに対して空きが4GBという状態だった。

この状態では、モデルの大きさより先に、他のアプリが使っている分を見るほうが早い。

確かめる順番

  1. ollama ps で、PROCESSORの欄を見る
  2. 100% CPU なら、GPUに載る大きさまで減らす方向で考える
  3. コンテキスト長が既定より大きくないかを見る
  4. 量子化の段階を1つ下げて、載り方が変わるかを見る
  5. 同時に載っているモデルと、他のアプリを減らす
  6. それでも変わらなければ、モデルの大きさ自体を見直す

上から順に試すと、戻しやすいものから手を付けられる。

記録しておくこと

控える項目確かめ方
搭載メモリとGPUGet-CimInstance
モデル名と量子化の段階ollama ps の NAME
SIZE の値ollama ps
PROCESSOR の表示ollama ps
コンテキスト長設定した num_ctx または環境変数
比べられるように控えておく項目

この5つが揃っていれば、設定を変えたときに何が効いたのかを判断できる。

まとめ

  • まず ollama ps で、GPUとシステムメモリのどちらに載っているかを見る
  • 100% CPU や分割の表示が出ていれば、載りきっていない
  • Ollamaの既定のコンテキスト長は4096トークン
  • コンテキスト長、量子化、モデルの大きさ、同時実行の順に減らす
  • 内蔵GPUの構成では、表示上のVRAMだけで使える量は決まらない

コマンドと既定値は2026年9月20日時点の公開ドキュメントに基づいている。

搭載量の測定は手元のWindows環境で実行したものである。

コマンドの詳細はOllama公式のFAQにある。

ローカルLLMの話はAIメソッドのまとめにも置いている。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

生成AIのおすすめ書籍

周辺機器の優先度

目次