~/ / AI 文章 / 在 VPS 上跑本機 LLM / 在 VPS 上跑本機 LLM 需要多少記憶體?模型檔加上 KV cache
在 VPS 上跑本機 LLM 需要多少記憶體?模型檔加上 KV cache
在租伺服器來跑本機模型之前,你得先知道它要用多少記憶體。答案分成兩部分:模型本身,以及一份會隨對話長度與同時處理的請求數增加的快取。本文整理 Ollama 函式庫、Ollama FAQ 與官方模型設定檔的說明,為六個常見模型計算快取大小,並讓你輸入自己的數字試算。
發布: · 約 5 分鐘讀完 · 模型資料已於 2026-10-26 對照官方來源確認。大小與預設值會變動,選方案之前請再確認。
佔滿記憶體的兩樣東西
第一個是模型權重,佔用的記憶體大約與下載檔相當。第二個是 KV cache,存放模型已為上下文中的文字算好的 key 與 value。Ollama FAQ 指出,所需的 RAM 會依 OLLAMA_NUM_PARALLEL 乘以 OLLAMA_CONTEXT_LENGTH 而成比例增加。
快取的大小可以由模型的設定算出:2 × 層數 × KV 頭數 × 頭維度 × 每個值的位元組數,就是一個 token 的位元組數,再乘以上下文長度與平行請求數。在 f16 中,一個值佔 2 位元組。以 Qwen3 8B 為例,它有 36 層、8 個 KV 頭、頭維度為 128,一個 token 需要 2 × 36 × 8 × 128 × 2 = 147,456 位元組。在 4,096 個 token 時是 576 MiB,在 32,768 個 token 時是 4,608 MiB。這個公式是我們依設定值算出的,並不是 Ollama 公布的數字。
官方來源對各模型的說明
下載大小與量化方式,取自 Ollama 函式庫為各標籤顯示的內容,下列六個標籤顯示的都是 Q4_K_M 量化。層數、KV 頭數與頭維度,則取自各模型在 Hugging Face 上的 config.json。
| 模型 | 下載大小 (GB) | 層數 | KV 頭數 | 頭維度 |
|---|---|---|---|---|
| Qwen3 0.6B | 0.523 | 28 | 8 | 128 |
| Qwen3 1.7B | 1.4 | 28 | 8 | 128 |
| Qwen3 4B | 2.5 | 36 | 8 | 128 |
| Qwen3 8B | 5.2 | 36 | 8 | 128 |
| Qwen3 14B | 9.3 | 40 | 8 | 128 |
| Mistral 7B (v0.3) | 4.4 | 32 | 8 | 128 |
Mistral 7B 的設定沒有給出頭維度,所以取隱藏層大小除以注意力頭數,即 4096 ÷ 32 = 128。Ollama 函式庫中的 Qwen3 4B 標籤列出 256K 的上下文視窗。Hugging Face 上 Qwen3 4B 的 2507 版本,其層數、KV 頭數與頭維度與原版相同。
對記憶體來說代表什麼
依上述公式,下表列出各模型在兩種上下文長度下的快取大小,以及 4,096 個 token 時的預估總量。總量是權重、一次一個請求的 f16 快取,再加上留給作業系統與其他服務的 1 GiB 預留空間。最後一欄是能容納它的最小常見記憶體大小。
| 模型 | 4,096 個 token 時的 KV cache (MiB) | 32,768 個 token 時的 KV cache (MiB) | 4,096 個 token 時的預估總量 (GiB) | 最小的常見記憶體大小 (GiB) |
|---|---|---|---|---|
| Qwen3 0.6B | 448 | 3584 | 1.92 | 2 |
| Qwen3 1.7B | 448 | 3584 | 2.74 | 4 |
| Qwen3 4B | 576 | 4608 | 3.89 | 4 |
| Qwen3 8B | 576 | 4608 | 6.41 | 8 |
| Qwen3 14B | 640 | 5120 | 10.29 | 12 |
| Mistral 7B (v0.3) | 512 | 4096 | 5.60 | 8 |
這些是估算值,不是實測值。在 4,096 個 token 時只勉強放得下的模型,一旦調高上下文長度就放不下了:在 32,768 個 token 時,光是 Qwen3 8B 的快取就有 4,608 MiB。
更長的上下文、更多的平行請求
- Ollama FAQ 指出,所需的 RAM 會依 OLLAMA_NUM_PARALLEL 乘以 OLLAMA_CONTEXT_LENGTH 而成比例增加,並舉例:2K 的上下文搭配 4 個平行請求,會得到 8K 的上下文以及額外的記憶體。
- OLLAMA_NUM_PARALLEL 的文件記載預設值為 1,所以單人使用的伺服器一開始是一次處理一個請求。
- FAQ 也指出,以 q8_0 量化 key-value 快取,使用的記憶體約為 f16 的一半,q4_0 則約為四分之一。依 FAQ 的比例換算,Qwen3 8B 在 4,096 個 token 時以 q8_0 計,快取會縮小到約 288 MiB。
- Ollama 文件的上下文長度頁面指出,較大的上下文長度會增加模型所需的記憶體,而且你可以查看 ollama ps 的 PROCESSOR 欄,確認模型是否已被卸載到 CPU。
輸入你自己的數字試算
下方的計算工具使用相同的公式與相同的資料。你可以選擇模型或輸入自己的數值,設定上下文長度、平行請求數、快取類型與預留空間,再輸入你正在比較的方案的記憶體,看看估算值放不放得下。
實際試試: Local LLM Memory Estimator
估算結果
- 模型權重
- 4.84 GiB
- KV cache
- 0.56 GiB
- 保留量
- 1.00 GiB
- 合計
- 6.41 GiB (6.88 GB)
- 容得下的最小常見記憶體容量
- 8 GiB
這是估算值。其中不包含執行環境的運算緩衝區,並假設每一層的 KV 形狀都相同。在選擇方案之前,請先量測實際執行的情況。
模型資料確認日期:2026-10-26。
資料來源: Ollama library · 模型設定 (config.json) · Ollama FAQ
所有處理都在你的瀏覽器中進行,不會上傳任何內容。
選方案之前
- 這個估算沒有計入執行環境自己用於運算緩衝區的工作記憶體。我們的建議:在測試用的伺服器上執行模型,以你打算使用的上下文長度觀察記憶體用量,並保留一些餘裕。
- 1 GB 是 1,000,000,000 位元組,1 GiB 是 1,073,741,824 位元組。業者所說的「GB」可能指其中任一種,所以比較之前請先確認業者的計算方式。
- 記憶體並不是唯一的限制。表中的模型檔也需要磁碟空間,而且我們查閱的文件沒有提供僅用 CPU 運作時的速度數字。
- 如果模型只是剛好放得下,請改選下一個等級或較小的模型,而不是一直調低上下文長度直到能啟動為止。
來源
- Ollama library: qwen3
- Ollama library: mistral
- Ollama documentation: FAQ
- Ollama documentation: Context length
- Qwen3-0.6B config.json (Hugging Face)
- Qwen3-1.7B config.json (Hugging Face)
- Qwen3-4B config.json (Hugging Face)
- Qwen3-8B config.json (Hugging Face)
- Qwen3-14B config.json (Hugging Face)
- Mistral-7B-Instruct-v0.3 config.json (Hugging Face)
接著閱讀
- 在自己的程式中呼叫本機模型:Ollama 的結構化輸出與 OpenAI-compatible API用 JSON Schema 限制本機模型的輸出,並從 OpenAI 風格的用戶端呼叫 Ollama:官方文件怎麼說,以及哪些功能不支援。
- 本機模型能做什麼?Ollama 的 tools、thinking、vision 與 embedding,以及 VPS 跑得動什麼tools、thinking、vision、embedding:Ollama 模型庫中的標籤代表什麼、哪些模型帶有這些標籤,以及下載大小有多大。
- 在 VPS 上安裝 Ollama 並讓它持續運作:安裝、systemd 服務、設定與更新在 Linux VPS 上安裝 Ollama 並讓它持續運作:依官方文件整理安裝指令、systemd 服務、環境變數、模型儲存位置與更新方式。
- 在自己的 VPS 上跑 AI:該預留多少記憶體,哪些東西不能對外開放打算在 VPS 上跑 Ollama 或 Dify?整理官方文件對記憶體、僅用 CPU 推論以及必須關閉的連接埠的說明。