最近 Qwen 3.8 系列推出後,如果想透過 llama/vLLM 在本地端部署 Qwen 3.8 27B,第一個會遇到的問題通常就是:
到底需要多少 VRAM?
以下以 27B 級 Dense 模型為基準,整理不同精度與 GPU 配置所需要的顯示記憶體。
模型權重計算
27B 代表模型約有 270 億個參數,因此不同精度的模型權重大約為:
| 精度 | 理論權重大小 | 實際部署概估 |
|---|---|---|
| BF16 / FP16 | 約 54GB | 約 54~56GB |
| FP8 / INT8 | 約 27GB | 約 27~30GB |
| INT4 / AWQ / GPTQ | 約 13.5GB | 約 15~18GB |
例如 BF16 每個參數需要 2 bytes:
27B × 2 bytes ≈ 54GB因此 Qwen 3.8 27B 如果使用 BF16,光是載入模型權重就需要大約 54GB VRAM。
但這並不代表 54GB VRAM 就可以順利執行。
vLLM 不只有模型權重需要 VRAM
實際透過 vLLM 部署模型時,VRAM 大致可以分成:
模型權重 + Runtime / Activation / Workspace + KV Cache其中 KV Cache 特別重要。
Context Length 越長、同時處理的 Request 越多,KV Cache 所需要的 VRAM 就越大。
因此 BF16 版本大致可以這樣估算:
| 使用情境 | 建議 VRAM |
|---|---|
| BF16、短 Context | 至少 64GB |
| BF16、約 32K Context | 約 72~80GB |
| BF16、約 64K Context | 約 80~96GB |
| BF16、長 Context / 高並發 | 96GB 以上 |
| FP8 | 約 40~48GB |
| INT4 | 約 24~32GB |
所以 64GB 應該視為 Qwen 3.8 27B BF16 的入門容量,而不是理想容量。
96GB 顯示卡是相當理想的選擇
如果使用的是 RTX PRO 6000 Blackwell 96GB 這類大容量 GPU,Qwen 3.8 27B BF16 基本上可以直接使用單卡部署。
例如設定:
--tensor-parallel-size 1
--dtype bfloat16
--gpu-memory-utilization 0.9096GB × 0.90 約等於:
86.4GB
也就是讓 vLLM 最多使用大約 86GB VRAM。
扣掉約 54GB 模型權重,以及數 GB 的 Runtime Overhead 後,仍然可以留下相當大的空間給 KV Cache。
因此對 27B BF16 模型而言:
96GB ×1 + TP=1 是非常理想的配置。
而且單卡還有一個很大的優點,就是完全不需要處理 Tensor Parallel 所產生的 GPU 間通訊問題。
48GB 顯示卡適合 FP8
如果只有單張 48GB GPU,BF16 基本上無法使用:
54GB 模型權重 > 48GB VRAM
即使把:
--gpu-memory-utilization 0.95拉高也沒有用,因為光模型權重就已經超過 GPU 容量。
但如果有 FP8 版本:
模型權重 ≈ 27~30GB
那麼 48GB 就相當適合。
扣除模型後仍有十多 GB 可以提供 Runtime 與 KV Cache 使用。
所以可以簡單理解成:
48GB 單卡 → FP8 是比較合理的選擇。
32GB 顯示卡建議使用 INT4
單張 32GB 如果跑 BF16 當然不可能。
FP8 雖然模型權重大約只有 27GB,但再加上 Runtime 與 KV Cache 後也會非常吃緊。
比較實際的做法是使用:
AWQ
GPTQ
INT4
這類 4bit 量化模型。
27B INT4 實際模型大約會占:
15~18GB
如此還能留下約 10GB 左右供 Runtime 與 KV Cache 使用。
因此:
32GB → 建議 INT4。
24GB 可以跑嗎?
24GB 也不是完全沒有機會,但基本上只能考慮 INT4。
例如:
15~18GB 模型 + 3~4GB Runtime + KV Cache
這時候剩下的 VRAM 已經不多,因此 Context Length 與並發量都需要控制。
例如可以嘗試:
--gpu-memory-utilization 0.95
--max-model-len 8192如果還是 OOM,就必須進一步降低 max-model-len。
因此 24GB 比較適合:
INT4 + 較短 Context + 低並發
而不是拿來追求完整 BF16 體驗。
兩張 GPU 做 Tensor Parallel 呢?
如果有兩張 GPU,可以透過:
--tensor-parallel-size 2把模型分散到兩張顯示卡。
例如:
32GB ×2
BF16 模型權重約 54GB,平均到兩張 GPU:
54GB ÷ 2 ≈ 27GB / GPU看起來好像可以,但是每張只有 32GB,扣掉權重之後只剩約 5GB。
還必須容納:
Runtime
Activation
Workspace
KV Cache
因此 32GB ×2 跑 BF16 理論上有機會,但實際上非常緊繃。
很容易碰到 KV Cache 不足,或必須大幅降低 max-model-len。
48GB ×2
這就舒服很多。
模型平均約:
54GB ÷ 2 ≈ 27GB / GPU每張 48GB 還能留下相當充裕的空間。
因此:
48GB ×2 + BF16 + TP=2
是非常合理的配置。
缺點則是兩張 GPU 之間需要透過 NCCL 通訊,因此效能會受到 PCIe / NVLink 與主機平台架構影響。
結論
Qwen 3.8 27B 雖然只有 27B,但 BF16 光模型權重就需要約 54GB VRAM,因此不能看到「64GB GPU > 54GB 模型」就認為一定可以完整發揮。
真正需要考慮的是:
VRAM = 模型權重 + Runtime + KV Cache而 KV Cache 又受到 Context Length 與同時處理的 Sequence 數量影響。
因此如果要部署 Qwen 3.8 27B,可以簡單記成:
- 24GB:INT4 勉強可用
- 32GB:INT4 較合理
- 48GB:FP8 很適合
- 64GB:BF16 可以開始考慮
- 80GB:BF16 很適合
- 96GB:BF16 相當理想
如果手上已經有 RTX PRO 6000 Blackwell 96GB 這類大容量 GPU,Qwen 3.8 27B 基本上沒有必要特地使用兩張卡做 Tensor Parallel,直接 單卡 TP=1 + BF16,反而可以省去 NCCL 與 PCIe GPU 間通訊的問題。
最後要注意的是,上述 VRAM 是以 27B Dense 模型作為估算基準。實際部署時,仍應以正式模型的 config.json、Attention / KV Cache 架構、支援的資料精度,以及 vLLM 版本為準。尤其 Context Length 拉到 64K、128K 甚至更高之後,KV Cache 很可能成為真正決定 VRAM 是否足夠的關鍵。