ローカルLLMが落ちる、または極端に遅いとき、原因はたいてい「載りきっていない」ことにある。
モデルの大きさだけでなく、コンテキスト長や同時に動かしている数でも必要な量は変わる。
ここでは、いまどこに載っているかを確かめてから、減らす順番を決める流れを整理する。
コマンドと既定値は2026年9月20日にOllamaの公開ドキュメントを確認したものである。
まず、どこに載っているかを見る
同じ「遅い」でも、GPUに載っているか、システムメモリに落ちているかで対処が変わる。
Ollamaを使っている場合は、次のコマンドで確かめられる。
ollama ps公式ドキュメントには、出力の例としてこの形が載っている。
NAME ID SIZE PROCESSOR UNTIL
llama3:70b bcfb190ca3a7 42 GB 100% GPU 4 minutes from nowPROCESSORの欄が、どこに載っているかを示している。
| 表示 | 意味 | 次に見るところ |
|---|---|---|
| 100% GPU | すべてGPUに載っている | メモリ以外の原因を見る |
| 100% CPU | すべてシステムメモリに載っている | GPUに載る大きさまで減らす |
| 48%/52% CPU/GPU | 両方に分かれて載っている | GPU側に収まる量まで減らす |
分かれて載っている状態は動きはするが、システムメモリ側の処理が足を引っ張るため遅くなる。
「落ちる」ではなく「遅い」という症状のときは、まずここを見る。
手元の機械が何を積んでいるかを見る
減らす量を決めるには、搭載量を知っておく必要がある。
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 4096APIから使う場合は、optionsの中で渡す。
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "Why is the sky blue?",
"options": {
"num_ctx": 4096
}
}'長い文章を一度に渡す使い方をしていると、既定より大きい値に設定していることがある。
その設定のまま別の作業をすると、必要な量だけが増えたままになる。
量子化を下げる
同じモデルでも、量子化の段階が違えば必要な量が変わる。
段階を下げるとメモリは減るが、出力の質も下がる。
まず段階を1つ下げて、載り方と出力の両方を見比べるとよい。
- いまの段階で ollama ps を見て、どこに載っているかを控える
- 1つ下の段階を入れて、同じことを試す
- PROCESSORの表示が GPU 側に寄ったかを見る
- 出力を読んで、実用になるかを判断する
段階を下げても100% CPUのままなら、モデルの大きさ自体が合っていない。
同時に動かしているものを見る
モデルは、使い終わってもしばらくメモリに残る。
ollama ps のUNTILの欄に、いつまで保持されるかが出る。
別のモデルを続けて試していると、前のものが残ったまま次を読み込むことになる。
- ollama ps で、載っているモデルが1つだけかを見る
- ブラウザーや編集ソフトなど、メモリを多く使うアプリを閉じる
- モデルを切り替えたら、前のものが消えるまで待つ
手元の環境では、搭載15.4GBに対して空きが4GBという状態だった。
この状態では、モデルの大きさより先に、他のアプリが使っている分を見るほうが早い。
確かめる順番
- ollama ps で、PROCESSORの欄を見る
- 100% CPU なら、GPUに載る大きさまで減らす方向で考える
- コンテキスト長が既定より大きくないかを見る
- 量子化の段階を1つ下げて、載り方が変わるかを見る
- 同時に載っているモデルと、他のアプリを減らす
- それでも変わらなければ、モデルの大きさ自体を見直す
上から順に試すと、戻しやすいものから手を付けられる。
記録しておくこと
| 控える項目 | 確かめ方 |
|---|---|
| 搭載メモリとGPU | Get-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メソッドのまとめにも置いている。
