※本ページにはプロモーション(広告)が含まれています
【2026年最新版】OllamaでローカルLLMの推論速度が遅い・レスポンスが遅い原因と対処法【完全ガイド】
Ollamaでローカル LLM(Llama 3、Mistral、Gemmaなど)を動かしているのに、レスポンスが極端に遅い。1トークンごとに数秒かかる…。本記事では、OllamaでのLLM推論速度が遅い原因を徹底解説し、GPUアクセラレーションの有効化から最適な量子化レベルの選択まで、速度を劇的に改善する方法をまとめました。
この記事でわかること
- Ollama推論が遅い主な原因(GPU未使用・量子化・コンテキスト長など)
- GPU加速の有効化(CUDA・ROCm・Metal)の確認と設定方法
- 量子化レベルの選択方法(Q4_K_M推奨の理由)
- コンテキスト長(num_ctx)削減によるVRAM節約と速度向上
- RAM実行とVRAM実行の速度差と対処法
- OLLAMA_NUM_GPU環境変数の設定方法
- モデルサイズと速度のトレードオフ比較表

Ollama推論速度が遅い主な原因
Ollamaの推論速度が遅い場合、最も多い原因はGPUが使われていないことです。CPUだけで処理するとGPUの100倍以上遅くなることも珍しくありません。
| 原因 | 症状 | 速度への影響 |
|---|---|---|
| GPU加速が無効 | CPU使用率100%・GPU使用率0% | 10〜100倍遅い |
| モデルがRAMで実行 | VRAMに収まらずRAMに溢れた | 5〜20倍遅い |
| 量子化レベルが高すぎる | Q8やfp16モデルを使っている | 2〜4倍遅い |
| コンテキスト長が長すぎる | num_ctxが大きくメモリを圧迫 | 2〜5倍遅い |
| モデルが大きすぎる | 70Bモデルを低スペックPCで実行 | 実質使用不可レベル |
| 並列処理の競合 | 他のAIアプリが同時起動中 | 2〜3倍遅い |
対処法1:GPU加速が有効になっているか確認する
まず最初にGPUが使われているか確認します。これが最も重要なステップです。
Ollamaがどのデバイスで実行されているか確認する
# Ollamaのログを確認(ターミナルでOllamaを起動した場合) ollama run llama3 # または別のターミナルで実行中のOllamaプロセスを確認 ps aux | grep ollama
NVIDIAのGPU使用率を確認する(Windows/Linux)
# リアルタイムでGPU使用率を確認 nvidia-smi dmon -s u # 結果で「sm」の値が0%のままなら、GPUが使われていない
MacのGPU(Metal)使用率を確認する
- アクティビティモニタを開く(Finder → アプリケーション → ユーティリティ)
- 「GPU履歴」タブで使用率を確認する
- ollama実行中にGPU使用率が上昇すればMetalが有効
NVIDIA GPU(CUDA)のセットアップ確認
Windowsの場合
- NVIDIAドライバーが最新かどうかを確認する(デバイスマネージャー → ディスプレイアダプター → プロパティ)
- ドライバーバージョンが古い場合は、nvidia.com/downloadからダウンロード
- OllamaをアンインストールしてGPUドライバー更新後に再インストールする
Linuxの場合
# NVIDIAドライバーとCUDAの確認 nvidia-smi nvcc --version # CUDAが入っていない場合 sudo apt install nvidia-cuda-toolkit # Ollamaを再インストール curl -fsSL https://ollama.com/install.sh | sh
AMD GPU(ROCm)のセットアップ確認(Linux)
# ROCmのインストール確認 rocm-smi # ROCmが未インストールの場合 # AMD公式サイト(rocm.docs.amd.com)のインストール手順に従う
対処法2:OLLAMA_NUM_GPU環境変数を設定する
OllamaがGPUを正しく認識していても、モデルの一部がCPUで処理されている場合があります。OLLAMA_NUM_GPUで明示的にGPUを指定することで速度が改善します。
Windowsでの設定方法
- 「スタート」→「環境変数の編集」を検索して開く
- 「システム環境変数」の「新規」をクリック
- 変数名:
OLLAMA_NUM_GPU、変数値:1(GPUが1枚の場合) - OKを押してPCを再起動する
Mac/Linuxでの設定方法
# 一時的に設定(ターミナルで実行) export OLLAMA_NUM_GPU=1 ollama run llama3 # 永続的に設定(~/.bashrc または ~/.zshrc に追加) echo 'export OLLAMA_NUM_GPU=1' >> ~/.zshrc source ~/.zshrc
複数GPUがある場合
# GPU 2枚で実行 export OLLAMA_NUM_GPU=2 # 特定のGPUを指定(0番目のGPUを使用) export CUDA_VISIBLE_DEVICES=0

対処法3:量子化レベルを最適化する(Q4_K_M推奨)
量子化はモデルの精度を少し下げる代わりに、使用するメモリを大幅に削減する技術です。適切な量子化レベルを選ぶことで速度と品質のバランスが取れます。
量子化レベルの比較
| 量子化 | Llama 3 8B サイズ | 推論速度 | 品質低下 |
|---|---|---|---|
| fp16 | 約16GB | 基準 | なし(フル精度) |
| Q8_0 | 約8.5GB | fp16より1.5倍速 | ほぼなし |
| Q4_K_M(推奨) | 約4.8GB | fp16より3倍速 | わずか(実用レベル) |
| Q4_0 | 約4.4GB | fp16より3倍速 | 少し低下 |
| Q3_K_M | 約3.7GB | fp16より4倍速 | 目立つ低下 |
| Q2_K | 約2.9GB | fp16より5倍速 | 大きく低下 |
Q4_K_Mモデルをダウンロードする方法
# デフォルトで最適な量子化(通常Q4_K_M相当)が選ばれる ollama pull llama3 # 明示的にQ4_K_Mを指定する場合 ollama pull llama3:8b-instruct-q4_K_M # Mistralの場合 ollama pull mistral:7b-instruct-q4_K_M # 利用可能なタグ一覧を確認 ollama list
対処法4:コンテキスト長(num_ctx)を削減する
コンテキスト長(num_ctx)はLLMが一度に処理できるトークン数です。デフォルト値が大きい場合、VRAMを大量に消費し速度が遅くなります。
num_ctxとVRAM使用量の関係(Llama 3 8B Q4_K_Mの場合)
| num_ctx(コンテキスト長) | 追加VRAMコスト | 用途 |
|---|---|---|
| 2048(最小) | 約0.5GB | 短い会話・チャット |
| 4096(デフォルト) | 約1GB | 一般的な用途 |
| 8192 | 約2GB | 長い文書処理 |
| 32768 | 約8GB | 大量ドキュメント処理 |
| 128000(最大) | 約30GB以上 | 超長文処理(高スペック必須) |
num_ctxをModelfileで設定する
# Modelfileを作成 cat > Modelfile << 'EOF' FROM llama3 PARAMETER num_ctx 2048 PARAMETER num_gpu 1 EOF # カスタムモデルとして登録 ollama create llama3-fast -f Modelfile # 実行 ollama run llama3-fast
APIリクエスト時にnum_ctxを指定する(Python例)
import requests
import json
response = requests.post('http://localhost:11434/api/generate', json={
"model": "llama3",
"prompt": "こんにちは。自己紹介してください。",
"options": {
"num_ctx": 2048,
"num_gpu": 1
}
})

対処法5:RAM実行とVRAM実行の速度差を理解する
モデルがVRAMに完全に収まらない場合、一部がシステムRAM(CPU RAM)で処理されます。これは速度に致命的な影響を与えます。
VRAM vs RAMの速度比較
| 実行場所 | 速度(tokens/秒の目安) | 帯域幅 |
|---|---|---|
| NVIDIA RTX 4080 VRAM | 50〜100 tokens/秒 | 716 GB/s |
| Apple M3 Max(統合メモリ) | 30〜80 tokens/秒 | 400 GB/s |
| DDR5 システムRAM(CPU) | 5〜15 tokens/秒 | 100 GB/s |
| DDR4 システムRAM(CPU) | 2〜8 tokens/秒 | 50 GB/s |
モデルの一部でもRAMで処理されると速度が急激に落ちます。解決策としては以下のいずれかです:
- より小さいモデルに切り替える(7B → 3B など)
- より軽い量子化に切り替える(Q8 → Q4 など)
- コンテキスト長を削減する
- Macの場合は統合メモリが大きいモデル(M3 Max 128GB等)にアップグレード
対処法6:モデルサイズと速度のトレードオフを理解する
使用するモデルのパラメータ数(7B、13B、70Bなど)は速度に直接影響します。用途に合ったモデルサイズを選ぶことが重要です。
モデルサイズ別の推奨環境と速度(Q4_K_M量子化)
| モデルサイズ | ファイルサイズ | 最低VRAM | 速度目安 | 品質 |
|---|---|---|---|---|
| 1B〜3B | 1〜2GB | 2〜3GB | 80〜150 t/s | △(単純タスク向け) |
| 7B | 約4〜5GB | 4〜6GB | 40〜80 t/s | ◎(実用レベル) |
| 13B | 約8GB | 8〜10GB | 20〜40 t/s | ◎(高品質) |
| 34B | 約21GB | 24GB | 8〜20 t/s | ◎(非常に高品質) |
| 70B | 約43GB | 48GB以上 | 3〜10 t/s | ◎(最高品質) |
用途別おすすめモデル
| 用途 | 推奨モデル | Ollamaコマンド |
|---|---|---|
| 日常会話・コード補完 | Llama 3.2 3B | ollama pull llama3.2:3b |
| 一般タスク全般 | Llama 3.1 8B | ollama pull llama3.1:8b |
| 日本語重視 | Gemma 2 9B | ollama pull gemma2:9b |
| コーディング専用 | Qwen2.5-Coder 7B | ollama pull qwen2.5-coder:7b |
| 高品質回答 | Mistral 7B | ollama pull mistral |
対処法7:Ollamaのその他の最適化設定
並列処理の数を制限する
# 同時処理数を1に制限(デフォルトは複数のリクエストを並列処理) export OLLAMA_NUM_PARALLEL=1 # リクエストキューのサイズ export OLLAMA_MAX_QUEUE=1
モデルのアンロード時間を調整する
# モデルを常時メモリに保持(次のリクエストを高速化) export OLLAMA_KEEP_ALIVE=-1 # 永続的に保持 # または5分間保持 export OLLAMA_KEEP_ALIVE=5m
フラッシュアテンション(Flash Attention)を有効化する
Ollama 0.3以降では、フラッシュアテンションのサポートが改善されました。これにより長いコンテキストでの処理が高速になります。最新版のOllamaを使っていることを確認してください。
# Ollamaのバージョン確認 ollama --version # 最新版に更新 curl -fsSL https://ollama.com/install.sh | sh
この記事に関連するおすすめ商品
GPU(RTX 4070 Ti SUPER 16GB)
約75,000円〜
16GB VRAMで13Bクラスのモデルも高速動作
DDR5 RAM 32GB×2枚(64GB)
約22,000円〜
VRAMに収まらない大型モデルをRAMで高速実行
NVMe SSD 2TB(高速読み込み)
約15,000円〜
大型LLMモデルのロード時間を短縮
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q1. nvidia-smiでGPUが表示されているのにOllamaがCPUで動いています
A. NVIDIAドライバーは認識されていてもCUDAライブラリが不足している可能性があります。OllamaをアンインストールしてCUDAドライバーを最新版に更新してから再インストールしてください。Linuxでは nvidia-cuda-toolkit のインストールも必要な場合があります。
Q2. MacBook Air(M1/M2)でOllamaを動かしていますが遅いです
A. MacBook Airは8GB統合メモリが多く、OSやその他のアプリが消費するため、実際にLLMに使えるメモリが少なくなります。7Bモデルより小さい3Bモデルを試すか、16GBモデルへのアップグレードを検討してください。
Q3. Ollamaのモデルはどこに保存されていますか?
A. Windowsでは C:\Users\[ユーザー名]\.ollama\models\、Mac/Linuxでは ~/.ollama/models/ に保存されています。使わないモデルは ollama rm モデル名 で削除してディスクスペースを節約できます。
Q4. 複数のモデルを切り替えると毎回ロードが遅いです
A. Ollamaはデフォルトで5分後にモデルをメモリから解放します。OLLAMA_KEEP_ALIVE=-1 を設定すると常時メモリに保持しますが、VRAMを占有し続けます。頻繁に切り替える場合は1つのモデルに集中するか、RAMが十分あれば OLLAMA_KEEP_ALIVE を長めに設定してください。
Q5. 日本語の処理が特に遅いです
A. 日本語はマルチバイト文字のため、1文字が複数トークンになります(英語の2〜4倍)。Gemma 2 9Bなど日本語特化チューニングされたモデルを使うと改善する場合があります。また日本語プロンプトは英語より多くのトークン数を使うため速度が遅く感じる側面もあります。
Q6. コンテキスト長を短くすると回答品質が落ちますか?
A. コンテキスト長を削減すると「過去の会話を覚えられる範囲」が短くなります。短い会話や単発の質問なら2048で十分ですが、長い会話が必要な用途では最低でも4096以上が推奨です。
Q7. Ollamaの代わりになる高速なローカルLLMツールはありますか?
A. llama.cpp(CLIベース)は速度面で非常に優れています。また、LM StudioはOllamaに似たGUIツールで、llama.cppをバックエンドに使うため速度が高いです。それぞれに特徴があるので用途に合わせて選んでください。
Q8. GPU温度が高くなって性能が下がります(サーマルスロットリング)
A. LLMの推論はGPUを継続的に高負荷で使用するため、サーマルスロットリングが起きやすいです。ケース内のエアフロー改善、GPUファンの設定調整(MSI Afterburnerなど)、またはサイドパネルを開けての動作をお試しください。
まとめ:Ollama推論速度改善の優先順位
速度改善の確認手順(優先度順)
- GPU使用率を確認 →
nvidia-smiでGPUが使われているか確認 - GPUが使われていなければドライバー更新+Ollama再インストール
OLLAMA_NUM_GPU=1を環境変数に設定- Q4_K_Mモデルを使う(重い量子化から軽量化)
- num_ctxを2048に削減(Modelfileで設定)
- モデルがVRAMに収まらない場合は小さいモデルに変更(7B→3Bなど)
- OLLAMA_KEEP_ALIVE=-1でモデルをメモリに常駐させる
- 根本解決はVRAMを増やす(GPU交換・Mac買い替え)
Ollamaの速度問題は多くの場合、GPUが正しく使われていないか、モデルサイズがVRAMに収まっていないかのどちらかです。本記事のチェックリストを順番に試すことで、多くの環境で劇的な速度改善が期待できます。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!