HelloSun/qwen3-0.6b-ssd-streaming
038
Qwen3-0.6B:SSD Streaming CPU 推理
這是使用 llama.cpp 純 CPU 執行 Qwen3-0.6B-Q8_0.gguf 的低記憶體推論專案。 模型權重約 639 MB,KV cache 使用 SSD 檔案 mmap;所有程式、建置資料與驗證結果 都留在本 repo 目錄中。
本專案是 SSD Streaming + KV SSD Paging,不是 MoE expert paging,也不是 EPQ。 它適合用來驗證「小模型在極低 RAM 下,以 SSD 映射換取可執行性」的路徑。
使用方法
git clone https://huggingface.co/HelloSun/qwen3-0.6b-ssd-streaming
cd qwen3-0.6b-ssd-streaming
# 編譯、下載模型、驗證並進入 chat
python3 demo.py
# 只做一次推論驗證
python3 demo.py --validate-only
# 多 prompt benchmark
python3 benchmark.pyBENCH_REPEATS 與 BENCH_MAX_TOKENS 可調整 benchmark 次數與生成長度。
實測條件與結果
目前驗證主機使用 8 threads、1024 context、權重與 K/V 都以檔案映射位於 NVMe。 8 次請求平均生成速度為 1.58 tokens/s,實測範圍 1.55–1.61 tokens/s; 峰值 RSS 約 125.82 MiB,server process VmSwap=0。
但該主機原本啟用了約 2 GiB system swap,因此這些數字是 SSD offload 效能記錄, 不是整機 swap=0 的通過證據。請以 `validate/validation.json` 中的主機狀態與驗證結果為準。
記憶體與 SSD 設定
- 權重:
mmap,搭配LLAMA_MMAP_RELEASE=1背景釋放頁面。 - KV:K/V 使用
q8_0,LLAMA_KV_SSD=1,放在models/kv-ssd.cache。 - page cache:定期對 GGUF 與 KV 檔呼叫
POSIX_FADV_DONTNEED。 - RAM:activations、compute buffer、OS 與 llama.cpp 執行狀態仍需 RAM。
- 設定:
LLAMA_CONTEXT、LLAMA_THREADS、MEMORY_LIMIT_GB可覆寫預設值。
swap=0 必須在實際推論主機上成立;程式會分開記錄 process VmSwap 與 system swap, 不會假裝替使用者關閉 swap。
證據
- `validate/validation.json`:smoke test 與驗證 verdict
- `validate/performance.json`:多 prompt 效能
- `validate/memory.json`:RSS / VmSwap 取樣
- `benchmark.py`:可重現 benchmark
