本地部署常見問題
都是實際會遇到的。按症狀查,不按概念分類。
顯存相關
1. 啟動就 OOM(記憶體不足)
- 先降上下文長度 —— KV cache 常是最大佔用,從 32K 降到 8K 可能就夠了
- 降量化檔位,Q6 換 Q4_K_M
- llama.cpp 用
-ngl只卸載部分層到 GPU,其餘留在 CPU - 確認沒有其他程式佔用顯存(瀏覽器硬體加速也會吃)
2. 明明夠卻說不夠
兩個常見原因:① 顯存被其他程式佔用 ② 計算的是「空閒顯存」而非「總顯存」。
用 nvidia-smi 確認實際空閒量。
3. 想跑更大模型但顯存不夠
三條路:降量化(品質有損)、降上下文(能力受限)、CPU 卸載(速度慢 5-10 倍)。 三者可以組合,但要清楚各自代價。
模型相關
4. 下載到一半失敗
- 確認磁碟空間足夠(模型動輒幾十 GB,且下載時是雙倍佔用)
- 用支援斷點續傳的工具下載
- 分片(split)模型要全部下載,缺一片就跑不起來
5. 模型載入失敗:格式不匹配
GGUF 給 llama.cpp / Ollama;safetensors 給 vLLM / Transformers。 下載前看清格式,不要混用。
6. 跑起來了但效果很差
最常見三個原因:① 量化太低(Q2/Q3) ② 上下文被截斷但模型沒說 ③ 用了不適合任務的模型規模。 建議先換 Q4_K_M 重測,再確認上下文設定。
效能相關
7. 速度慢到無法用
| 現象 | 可能原因 | 解法 |
|---|---|---|
| 每秒幾個 token | 整機在 CPU 上跑 | 檢查是否真的用了 GPU |
| 比預期慢一半 | 量化偏高或上下文太長 | 降量化、降上下文 |
| 前幾秒慢之後快 | 模型載入中,正常現象 | 等載入完 |
| 越跑越慢 | 歷史累積,KV cache 變大 | 定期清空對話或限制輪次 |
8. 為什麼我的 4090 速度不如別人
檢查:① 是否被限功耗 ② 是否 PCIe 頻寬不足 ③ 是否同時有其他負載 ④ 模型量化檔位是否相同。 同樣的卡在不同的散熱與供電條件下速度差異可達 20%。
9. 多張卡怎麼配
llama.cpp 用 --split-mode;vLLM 用 --tensor-parallel-size。
注意不是所有模型都適合張量平行,且多卡間的 PCIe 頻寬會成為瓶頸。
工具選擇
10. Ollama 還是 llama.cpp
| 需求 | 選 |
|---|---|
| 快速上手、不想碰編譯 | Ollama |
| 要精細控制參數 | llama.cpp |
| 要 GPU+CPU 混合推理 | llama.cpp |
| 多人併發、追求吞吐 | vLLM |
11. 換了工具後效果變差
不同框架的預設參數不同(尤其 temperature、top_p、上下文長度、系統提示處理方式)。 換框架時要重新確認這些設定,不能假設行為一致。
與 API 的對比
12. 為什麼本地跑的不如官方 API
三個原因:① 參數量差距(本地跑的是小版本) ② 量化損失 ③ 官方做了額外優化(提示詞模板、工具調用、安全對齊)。 這是預期內的差距,不是設定問題。
13. 本地能完全替代 API 嗎
取決於任務。分類、抽取、翻譯可以;複雜推理、代碼重構、長文深度分析通常不行。 建議混用:簡單任務本地,複雜任務走 API。
其他
14. 模型檔案太大,硬碟不夠
一個 32B Q4 模型約 20 GB,跑多個版本很快佔滿。建議:只保留在用的版本、用外接 SSD、或雲端儲存按需下載。
15. 長時間運行會不穩嗎
會有兩個問題:① 顯存碎片累積,需要定期重啟 ② 消費級卡長時間滿載會過熱降頻。 生產環境建議用專業卡並設定監控與自動重啟。