toolkitbox

~/ / 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.6B0.523288128
Qwen3 1.7B1.4288128
Qwen3 4B2.5368128
Qwen3 8B5.2368128
Qwen3 14B9.3408128
Mistral 7B (v0.3)4.4328128

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.6B44835841.922
Qwen3 1.7B44835842.744
Qwen3 4B57646083.894
Qwen3 8B57646086.418
Qwen3 14B640512010.2912
Mistral 7B (v0.3)51240965.608

這些是估算值,不是實測值。在 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

模型

Ollama 標籤 qwen3:8b,量化 Q4_K_M,下載大小 5.2 GB。

估算結果

模型權重
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 運作時的速度數字。
  • 如果模型只是剛好放得下,請改選下一個等級或較小的模型,而不是一直調低上下文長度直到能啟動為止。

來源

接著閱讀