HelloSun commited on
Commit
83b8b5b
·
verified ·
1 Parent(s): e68c32f

Merge strict and tool-use RAM results into one table

Browse files
Files changed (1) hide show
  1. README.md +12 -22
README.md CHANGED
@@ -64,33 +64,23 @@ RAM_BUDGET_MB=4096 ./sdq-ling/serve.sh
64
  | expert 權重 | gate/up Q4_K,down Q6_K;約 4.2 GiB | GGUF tensor metadata |
65
  | context metadata | 131,072 | GGUF metadata |
66
 
67
- ## 實際工具使用 workload(10 輪平均)
68
 
69
- 另外完成 1/2/4/8/16 GiB 各 10 輪的 tool-use benchmark。每輪模型實際輸出 `get_weather` 與 `compile_project` 呼叫;harness 查詢 Open-Meteo 東京天氣、每輪清除 build directory 並重新執行 CMake fixture 編譯,再將 tool result 交回模型摘要。每個模型回合都在相同硬記憶體上限下啟動。
70
 
71
- | RAM 上限 | 成功輪次 | decode tok/s 平均 ± SD | SSD MiB/token 平均 ± SD | hot rate % 平均 ± SD | anon 峰值 MB 平均 | 全輪耗時秒平均 |
72
- |---:|---:|---:|---:|---:|---:|---:|
73
- | 1 GiB | 10/10 | 7.71 ± 0.12 | 205.4 ± 0.1 | 9.6 ± 0.0 | 432 | 34.7 |
74
- | 2 GiB | 10/10 | 11.09 ± 0.36 | 71.3 ± 0.1 | 43.7 ± 0.0 | 1,423 | 33.0 |
75
- | 4 GiB | 10/10 | 15.19 ± 0.81 | 22.1 ± 0.0 | 58.0 ± 0.1 | 3,404 | 39.8 |
76
- | 8 GiB | 10/10 | 16.81 ± 0.64 | 7.1 ± 0.0 | 74.8 ± 0.0 | 7,076 | 49.8 |
77
- | 16 GiB | 10/10 | 17.60 ± 0.45 | 6.5 ± 0.0 | 75.5 ± 0.0 | 14,612 | 78.2 |
78
 
79
- 完整說明與原始結果見 [`results/tool_use_levels.md`](results/tool_use_levels.md) 和 [`results/tool_use_levels.json`](results/tool_use_levels.json),可重跑腳本為 [`sdq-ling/tool_use_bench.py`](sdq-ling/tool_use_bench.py)。天氣資料是即時 API 回應,因此依每輪查詢時間而變。benchmark 的每個 model call 獨立啟動,工具結果以新的 prompt 交回,不保留跨回合 KV cache。
 
 
 
 
 
 
80
 
81
- ## 嚴格 RAM 上限實測(基準 prompt)
82
 
83
- 每輪都由 `prlimit --data=<bytes>` 設定 RLIMIT_DATA;不是只有傳 pager budget。測試用 ctx=256、ubatch=32、threads=4、temperature=0,每輪生成 32 tokens、每級兩次。使用 Intel Xeon Platinum 8559C 主機,CPU-only,192 threads;上層 cgroup `memory.max=104000000000`、`memory.swap.max=2936848384`。build 關閉 `GGML_CPU_REPACK` 與 AMX;每輪前對模型檔呼叫 `posix_fadvise(DONTNEED)`。
84
-
85
- | RAM 上限 | 結果 | arena GiB | slots | anon 峰值 MB | RSS 峰值 MB | decode tok/s (兩輪平均) | SSD MiB/token | hot % | swap MB |
86
- |---:|:---:|---:|---:|---:|---:|---:|---:|---:|---:|
87
- | 1 GiB | PASS | 0.30 | 225 | 421 | 905 | 8.25 | 199.8 | 16.7 | 0 |
88
- | 2 GiB | PASS | 1.30 | 979 | 1,412 | 1,895 | 11.88 | 73.8 | 49.5 | 0 |
89
- | 4 GiB | PASS | 3.30 | 2,486 | 3,404 | 3,888 | 16.38 | 24.8 | 66.7 | 0 |
90
- | 8 GiB | PASS | 7.01 | 5,279 | 7,064 | 7,548 | 18.65 | 7.1 | 76.3 | 0 |
91
- | 16 GiB | PASS | 14.62 | 11,012 | 14,600 | 15,084 | 19.24 | 7.1 | 76.3 | 0 |
92
-
93
- anon 峰值是 RLIMIT_DATA 主要管制並用來判斷 PASS 的欄位;檔案對映頁會讓 RSS 高於匿名量。16 GiB 相較 8 GiB 的 hot% 與每 token SSD 讀取已無明顯改善,表示在本次 prompt/解碼長度下 8 GiB 已容納幾乎相同的 expert working set。tok/s 受共享主機負載影響,請視為本機觀測值。
94
 
95
  ## I/O page-cache 對照
96
 
 
64
  | expert 權重 | gate/up Q4_K,down Q6_K;約 4.2 GiB | GGUF tensor metadata |
65
  | context metadata | 131,072 | GGUF metadata |
66
 
67
+ ## RAM 上限實測:基準 prompt 與實際工具使用
68
 
69
+ 兩組數據都使用 `prlimit --data=<bytes>` 設定 RLIMIT_DATA 硬上限,並量測匿名峰值、RSS、decode 速度、SSD paging 量與 hot rate。基準 prompt 每級跑兩輪:ctx=256、ubatch=32、threads=4、temperature=0、生成 32 tokens。工具使用 workload 每級跑 10 輪;每輪模型先呼叫 `get_weather(city=Tokyo)` 並查詢 Open-Meteo,再呼叫 `compile_project(project=tiny_fixture)`,清除 build directory 後重新執行 CMake build;兩項工具結果都交回模型摘要。工具測試每輪有四個獨立 model calls,摘要統計先取單輪四個 calls 的平均,再跨十輪取平均 ± 樣本標準差。
70
 
71
+ 主機為 Intel Xeon Platinum 8559C(CPU-only、192 threads),上層 cgroup `memory.max=104000000000`、`memory.swap.max=2936848384`。兩組都使用關閉 `GGML_CPU_REPACK` 與 AMX 的 build,每次模型啟動前以 `posix_fadvise(DONTNEED)` 驅逐模型檔 page cache。anon 峰值是 RLIMIT_DATA 的判定依據;RSS 包含不受 RLIMIT_DATA 限制的 file-backed pages。
 
 
 
 
 
 
72
 
73
+ | RAM 上限 | 基準結果 | 基準 arena / slots | 基準 anon / RSS 峰值 MB | 基準 decode tok/s | 基準 SSD MiB/token | 基準 hot / swap | 工具成功輪次 | 工具 anon / RSS 峰值 MB | 工具 decode tok/s 平均 ± SD | 工具 SSD MiB/token 平均 ± SD | 工具 hot rate % 平均 ± SD | 工具每輪耗時秒平均 |
74
+ |---:|:---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
75
+ | 1 GiB | PASS | 0.30 GiB / 225 | 421 / 905 | 8.25 | 199.8 | 16.7% / 0 MB | 10/10 | 432 / 916 | 7.71 ± 0.12 | 205.4 ± 0.1 | 9.6 ± 0.0 | 34.7 |
76
+ | 2 GiB | PASS | 1.30 GiB / 979 | 1,412 / 1,895 | 11.88 | 73.8 | 49.5% / 0 MB | 10/10 | 1,423 / 1,906 | 11.09 ± 0.36 | 71.3 ± 0.1 | 43.7 ± 0.0 | 33.0 |
77
+ | 4 GiB | PASS | 3.30 GiB / 2,486 | 3,404 / 3,888 | 16.38 | 24.8 | 66.7% / 0 MB | 10/10 | 3,404 / 3,888 | 15.19 ± 0.81 | 22.1 ± 0.0 | 58.0 ± 0.1 | 39.8 |
78
+ | 8 GiB | PASS | 7.01 GiB / 5,279 | 7,064 / 7,548 | 18.65 | 7.1 | 76.3% / 0 MB | 10/10 | 7,076 / 7,560 | 16.81 ± 0.64 | 7.1 ± 0.0 | 74.8 ± 0.0 | 49.8 |
79
+ | 16 GiB | PASS | 14.62 GiB / 11,012 | 14,600 / 15,084 | 19.24 | 7.1 | 76.3% / 0 MB | 10/10 | 14,612 / 15,096 | 17.60 ± 0.45 | 6.5 ± 0.0 | 75.5 ± 0.0 | 78.2 |
80
 
81
+ 表中基準 prompt tok/s 是兩輪平均;工具 workload 的速度與 paging 指標是每輪四個模型階段的平均,再列 10 輪平均 ± 樣本標準差。兩種 workload 的 token 內容與長度不同,速度和 I/O 數字應在各自 workload 內比較。兩組 swap 均為 0。工具測試每輪的即時天氣、build 結果及 raw metrics 收錄於 [`results/tool_use_levels.json`](results/tool_use_levels.json);工具報告見 [`results/tool_use_levels.md`](results/tool_use_levels.md),可重跑腳本為 [`sdq-ling/tool_use_bench.py`](sdq-ling/tool_use_bench.py)。基準逐輪數據見 [`results/strict_memory_levels.json`](results/strict_memory_levels.json)。
82
 
83
+ 在基準 prompt 下,8 GiB 到 16 GiB 的 hot rate 與 SSD MiB/token 已接近;工具 workload 也呈現相近趨勢。decode tok/s 受共享主機負載影響,請視為本機觀測值。
 
 
 
 
 
 
 
 
 
 
84
 
85
  ## I/O page-cache 對照
86