Qwen3.8-27B:SSD Streaming 低記憶體 CPU 推理

本 repo 是推論程式、patch 與驗證證據,不包含模型權重。它使用 unsloth/Qwen3.8-27B-GGUF/Qwen3.8-27B-UD-Q4_K_M.gguf(約 15.33 GiB), 透過 file-backed mmap、背景 page reclaim 與 SSD-backed KV cache,讓 dense 27B 模型在約 3 GiB RAM、swap=0 的環境中運行。

這不是 MoE expert paging,也不是 EPQ:Qwen3.8-27B 是 dense 模型,每個 token 都需要讀取整份權重。這個專案的核心機制是 SSD Streaming + KV SSD Paging, 以 I/O 時間換取 RAM 容量,而不是利用稀疏專家跳過計算。

驗證摘要

項目 結果
1K context 峰值總 RSS 0.35–0.67 GiB
理論最高 context 262,144;峰值約 2.118 GiB
swap 0(驗證紀錄)
decode 0.022 tok/s,每 token 約 45 秒
模型權重 15.33 GiB,保留在 SSD
KV cache @262144 約 4.78 GiB,使用 SSD mmap

1K 測試的區間上緣 0.67 GiB 才是部署應參考的最壞情況。完整證據在 validate/、STATUS.md 與 AGENTS.md。

為什麼速度很慢

Dense 模型的每個 token 都會使用全部權重,專家沒有可利用的重複使用工作集。 因此每個 decode token 近似需要從 SSD 重讀 15.33 GiB。文件中的實測速度是 儲存裝置與模型的結果,不是一般 CPU 速度保證。

這個機制與 HelloSun/qwen35a3b-moe-expert-paging-q4 不同:後者是 MoE, 每個 token 只載入被選中的 experts;兩者不可直接以 tok/s 比較。

使用方法

git clone https://huggingface.co/HelloSun/qwen38-27b-ssd-streaming
cd qwen38-27b-ssd-streaming

# 編譯、下載模型、啟動並驗證 1K context
./installpi.sh

# 只重跑驗證
./installpi.sh --validate-only

# 額外驗證 262144 context
./installpi.sh --probe-maxctx

必要條件:Linux x86-64、Git、CMake、C++ toolchain、Python 3、約 16 GiB 磁碟空間。 HF_TOKEN 僅作為環境變數傳給下載工具,公開模型不需要認證。

Patch

Patch 功能
0001-ssd-mmap-release.patch 背景 madvise(MADV_DONTNEED) 釋放權重頁
0002-kv-ssd-pager.patch 將 KV buffer 改成檔案 mmap,讓 KV 留在 SSD

llama.cpp 固定 commit 為 0504396140d1c882f5f6ee34466a42db7ae90114;換版本前 必須重新驗證 patch。

已知限制

  • --ram-budget 類似的部署保證必須用 OS/cgroup 硬限制與 swap.max=0 複驗。
  • SSD、page cache、CPU、NUMA、context 與 prompt 都會改變速度。
  • 262144 context 的數字是已有驗證紀錄,不代表所有機器都能在相同 RAM 中完成。
  • 不能把 dense SSD streaming 的結果解讀成 MoE expert paging 或 EPQ 效能。

參考

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support