目錄
Ollama GPU 設定與效能調校:為什麼這麼慢?
本機模型最常見的抱怨就是「太慢」。大多數情況下,原因不是電腦不夠好,而是模型沒有完整放進 GPU。
第一步:確認有沒有用到 GPU
先執行一個模型,再查看:
ollama run qwen3:8b "你好" --verbose
ollama ps
ollama ps 的 PROCESSOR | 意思 | 速度 |
|---|---|---|
100% GPU | 完整放在顯示卡上 | 最快 |
30%/70% CPU/GPU | 顯示卡放不下,部分放在系統記憶體 | 明顯變慢 |
100% CPU | 完全沒用 GPU | 最慢 |
--verbose 輸出的 eval rate 是每秒產生的 token 數,可以拿來比較調整前後的差異。
NVIDIA 顯示卡沒有被使用
-
更新驅動程式。過舊的驅動程式是最常見的原因。
-
確認系統認得顯示卡:
nvidia-smi -
查看 Ollama 的日誌,搜尋 GPU 相關訊息:
- Linux:
journalctl -u ollama --no-pager | grep -i -E "gpu|cuda" - Windows:
%LOCALAPPDATA%\Ollama\server.log - macOS:
~/.ollama/logs/server.log
- Linux:
-
筆電若有內顯與獨顯,確認 Ollama 使用的是獨立顯示卡(Windows 的「圖形設定」可以指定應用程式使用高效能 GPU)。
-
多張顯示卡時,可以用
CUDA_VISIBLE_DEVICES=0指定使用哪幾張。
AMD 顯示卡
Ollama 透過 ROCm 支援部分 AMD 顯示卡,支援的型號清單請見官方文件。不在清單中的顯示卡,有時可以透過 HSA_OVERRIDE_GFX_VERSION 環境變數強制指定相近的架構,但不保證穩定。
Apple Silicon Mac
M 系列晶片會自動使用 GPU。Mac 的「統一記憶體」由 CPU 和 GPU 共用,但系統預設只讓 GPU 使用其中一部分(大約三分之二到四分之三),模型加上上下文不能超過這個額度。
模型放不進 GPU 怎麼辦
依效果排序:
1. 換小一點的模型或量化版本
例如從 14b 換成 8b,或從 q8_0 換成 q4_K_M。速度通常會比「大模型但一半在 CPU」快很多。詳見 模型選擇與硬體需求。
2. 縮短上下文長度
上下文需要的記憶體(KV cache)會隨長度增加。如果 ollama ps 的 CONTEXT 很大,試著調小 OLLAMA_CONTEXT_LENGTH 或 num_ctx。
3. 量化 KV cache
OLLAMA_FLASH_ATTENTION=1
OLLAMA_KV_CACHE_TYPE=q8_0
q8_0 可以讓上下文的記憶體用量約減半,品質影響很小;q4_0 省更多,但品質影響較明顯。KV cache 量化需要 Flash Attention。
4. 關閉其他佔用顯示卡記憶體的程式
瀏覽器、遊戲、其他 AI 工具都會佔用 VRAM。用 nvidia-smi 可以看到各程式的用量。
5. 一次只載入一個模型
同時載入多個模型會互相搶記憶體:
ollama ps
ollama stop 不需要的模型
或設定 OLLAMA_MAX_LOADED_MODELS=1。
其他影響速度的因素
| 現象 | 原因與對策 |
|---|---|
| 第一次回答特別慢 | 模型正在載入。提高 OLLAMA_KEEP_ALIVE 讓它常駐 |
| 開始回答前停頓很久 | 輸入(提示詞)很長,模型需要先處理。這段時間主要受 GPU 運算能力影響 |
| 推理模型回答很慢 | 它在「思考」。不需要深度推理時可以關閉思考模式 |
| 多人同時使用時變慢 | 請求在排隊,見 OLLAMA_NUM_PARALLEL |
粗略的速度參考
產生速度主要受記憶體頻寬限制,大致規律是:
- 同一張顯示卡上,模型越大越慢,大約和模型檔案大小成反比。
- 每秒 20 token 以上,閱讀起來就很順暢;10 token 以下會覺得在等待。
如果你的速度遠低於同級硬體的一般水準,幾乎可以確定是模型溢出到 CPU,回到第一步檢查。
更新於 2026年10月12日