Add tool-use benchmark report
Browse files- results/tool_use_levels.md +20 -0
results/tool_use_levels.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Ling-3.0-tiny:實際工具使用 workload(10 輪平均)
|
| 2 |
+
|
| 3 |
+
每一輪都包含兩段真實 tool-use 往返:
|
| 4 |
+
|
| 5 |
+
1. 模型產生 `get_weather(city=Tokyo)` 呼叫,harness 查詢 Open-Meteo geocoding/current-weather API,將即時結果再交給模型摘要。
|
| 6 |
+
2. 模型產生 `compile_project(project=tiny_fixture)` 呼叫,harness 清除前次 build 目錄、執行 CMake configure 與 `cmake --build -j 1`,再將 build 結果交給模型摘要。
|
| 7 |
+
|
| 8 |
+
每個模型生成/摘要子行程都使用指定 `prlimit --data` 匿名記憶體上限;每次啟動前逐出 GGUF page cache。每一級 10 輪全部成功。模型每個回合按 EOG 停止生成,工具呼叫從 Ling chat template 的 `<tool_call>` 格式辨識。回合分開啟動 process,因此不保留跨工具呼叫的模型 KV 對話狀態;工具結果以新 prompt 送入。這讓每次推論的記憶體峰值可對照,並實際驗證工具使用與結果摘要。
|
| 9 |
+
|
| 10 |
+
decode tok/s、SSD MiB/token 與 hot rate 先在單輪的 4 個模型階段取平均,再跨 10 輪計算平均 ± 樣本標準差。anon/RSS 欄位是每輪所有模型階段的峰值,再取 10 輪平均。weather 工具輸出按輪保存,天氣是查詢當時的即時資料。RSS 含不受 RLIMIT_DATA 限制的 file-backed pages。
|
| 11 |
+
|
| 12 |
+
| RAM 上限 | 成功輪次 | decode tok/s 平均 ± SD | SSD MiB/token 平均 ± SD | hot rate % 平均 ± SD | anon 峰值 MB 平均 | RSS 峰值 MB 平均 | 全輪耗時秒平均 |
|
| 13 |
+
|---:|---:|---:|---:|---:|---:|---:|---:|
|
| 14 |
+
| 1 GiB | 10/10 | 7.71 ± 0.12 | 205.4 ± 0.1 | 9.6 ± 0.0 | 432 | 916 | 34.7 |
|
| 15 |
+
| 2 GiB | 10/10 | 11.09 ± 0.36 | 71.3 ± 0.1 | 43.7 ± 0.0 | 1423 | 1906 | 33.0 |
|
| 16 |
+
| 4 GiB | 10/10 | 15.19 ± 0.81 | 22.1 ± 0.0 | 58.0 ± 0.1 | 3404 | 3888 | 39.8 |
|
| 17 |
+
| 8 GiB | 10/10 | 16.81 ± 0.64 | 7.1 ± 0.0 | 74.8 ± 0.0 | 7076 | 7560 | 49.8 |
|
| 18 |
+
| 16 GiB | 10/10 | 17.60 ± 0.45 | 6.5 ± 0.0 | 75.5 ± 0.0 | 14612 | 15096 | 78.2 |
|
| 19 |
+
|
| 20 |
+
原始每輪 tool calls、weather/build 結果與每次 decode 指標:[`tool_use_levels.json`](tool_use_levels.json)。可重跑腳本:[`../sdq-ling/tool_use_bench.py`](../sdq-ling/tool_use_bench.py)。CMake 工具實際編譯的 fixture:[`../tools/tiny_fixture`](../tools/tiny_fixture)。工具失敗的嘗試保留在 `tool_use_runs/` log;修正後的正式 10 輪皆成功。
|