瀏覽代碼

dsv41-flash-1017-4x-vllm032: DSpark K5 on stock vLLM matches production decode (52.9 c1 / 66.4 c2)

Same checkpoint, same four Sparks: upstream vLLM main + DSpark k5 gives 52.9
t/s single-request and 66.4 aggregate at c2 (production SGLang: 47.8-50.7 and
64.2-68.3), acceptance 4.79 of 5. The remaining gap is prefill - 605 t/s vs
2,800-3,127 - which is what agentic TTFT is made of.
Alexander Korolev 7 小時之前
父節點
當前提交
c48f50a6ba
共有 2 個文件被更改,包括 27 次插入 和 3 次删除
  1. 23 0
      recipes/dsv41-flash-1017-4x-vllm032/NOTE.md
  2. 4 3
      recipes/dsv41-flash-1017-4x-vllm032/recipe.toml

+ 23 - 0
recipes/dsv41-flash-1017-4x-vllm032/NOTE.md

@@ -30,3 +30,26 @@ see how much of the gap is speculation and how much is the engine.
   loader.
 - `--engram-config '{"cpu_offload":false,"table_memory":"disk"}'` is accepted
   and the engine starts with the tables streamed from the checkpoint.
+
+## With DSpark K5 (2026-10-23) — decode reaches production, prefill does not
+
+`--speculative-config '{"method":"dspark","num_speculative_tokens":5}'` (MTP
+heads in-checkpoint, no drafter repo). KV pool drops 8.73M → 7.07M tokens.
+
+| measure | **stock vLLM + DSpark k5** | stock vLLM, no spec | production SGLang EP2 4x |
+|---|---|---|---|
+| decode c1 | **52.9 t/s** (25.5 cold) | 29.7 | 47.8–50.7 |
+| decode c2 (agg) | **66.4 t/s** | 45.6 | 64.2–68.3 |
+| prefill (~4K) | **605 t/s** | ~750 | 2,800–3,127 |
+| acceptance | 4.79 of 5 | — | — |
+
+So on the same checkpoint and the same four Sparks, **upstream vLLM main plus
+DSpark matches and slightly beats the production lane's decode** (52.9 vs
+47.8–50.7, 66.4 vs 64.2–68.3) — while its **prefill is 4–5× slower** (605 vs
+2,800–3,127 t/s), which is the whole remaining gap for agentic traffic where
+TTFT dominates.
+
+Next levers for the prefill side, in order of cheapness: `--max-num-batched-tokens`
+(4096 now — SGLang chunks larger), the lab fork's `--prefill-compute-share`, and
+the b12x A4-prefill patch (todo #23) if `B12X_W4A16_MXFP4_PREFILL_MIN_TOKENS`
+exists in this image.

+ 4 - 3
recipes/dsv41-flash-1017-4x-vllm032/recipe.toml

@@ -63,9 +63,10 @@ args = [
     "--reasoning-parser", "deepseek_v41",
     "--tool-call-parser", "deepseek_v41",
     "--enable-auto-tool-choice",
-    # No --speculative-config on the first boot: MTP heads are in the
-    # checkpoint, add {"method":"dspark","num_speculative_tokens":5} after a
-    # clean baseline.
+    # DSpark K5 (the production lane's shape): the MTP heads are in the
+    # checkpoint (num_nextn_predict_layers=3), no drafter repo needed.
+    "--speculative-config", """
+'{"method":"dspark","num_speculative_tokens":5}'""",
 ]
 
 [env]