소스 검색

dsv41: 1M ctx, gmu 0.85, thinking+max-effort default, served as deepseek-v4-flash

- max-model-len 300K -> 1M (KV pool 8.45 -> 11.39 GiB ~ 1.6M tokens)
- thinking on + reasoning_effort=max by default (request can override)
- served-model-name dsv41 -> deepseek-v4-flash (gateway alias, no config
  churn); boot #4 clean, 377K-token needle test passes at 377K width
Alexander Korolev 1 개월 전
부모
커밋
093a945f1f
2개의 변경된 파일과 42개의 추가작업 그리고 8개의 파일을 삭제
  1. 23 0
      history/night-shifts/2026-09-11.md
  2. 19 8
      recipes/dsv41-flash-4x/recipe.toml

+ 23 - 0
history/night-shifts/2026-09-11.md

@@ -104,3 +104,26 @@ second production lane.
 - dgx5 left powered on (used for the DSV4.1 build).
 - sparkring 2x re-run (memory-guard image), 386B infra decision, gpuflip
   probe — all still queued for a window.
+
+## DSV4.1 reconfig per operator (06:42 local, boot #4)
+
+Requested: 512K/1M context "как везде", +5GB KV (they saw ~10GB free),
+thinking ON + reasoning_effort=max by default, served alias
+`deepseek-v4-flash` (gateway config stays untouched).
+
+- `--max-model-len 1048576` (1M; their boot7-go proof = 1,078,380-token pool
+  at gmu 0.80/eager — ours at graphs), `--gpu-memory-utilization 0.85`
+  (+2.9 GiB KV: 8.45 → 11.39 GiB pool ≈ 1.6M tokens = 1.6x the 1M seq).
+  Caveat from their RECIPE.md: the top-k fix was validated at row widths up
+  to 300K, "the full 1M-wide case has not been re-run" — even for them.
+- `--default-chat-template-kwargs '{"thinking": true, "reasoning_effort":
+  "max"}'` (verified accepted per-request on the running server first).
+- `--served-model-name deepseek-v4-flash`.
+- Boot #4: clean. KV 11.39 GiB. Thinking on by default (16 reasoning tokens
+  on a simple query). **Needle test: 377,063-token prompt, secret word at
+  the very end → "KILORK-42" exact** (3m56s total, ~1.6K t/s effective
+  prefill) — 377K-wide decode path verified working.
+
+Note: the 156/176 bench above was measured at thinking OFF (their default);
+thinking-on + max-effort scoring is unmeasured — offer a re-bench if the
+operator wants the apples-to-apples number for the new default.

+ 19 - 8
recipes/dsv41-flash-4x/recipe.toml

@@ -12,12 +12,21 @@
 # (48 GB, engram-local.json) accelerate decode once created (DSV41_ENGRAM_DIR
 # below, added after the copies exist — first boot reads straight from NFS).
 #
-# Config mirrors their boot-10 serving setup (launch/dsv41-tp4.sh):
+# Config mirrors their boot-10 serving setup (launch/dsv41-tp4.sh) with
+# local deviations:
 #   CUDA graphs FULL_AND_PIECEWISE + exact DSpark capture sizes (no padded
 #   rows — padded speculative batches hang SM120 sparse MLA, FlashInfer
-#   #5015), DSpark k=5 with the checkpoint's own draft layers, GMU 0.80,
-#   300K ctx (KV pool ~1.07M tokens = 3.57x headroom), tools + vision on,
-#   thinking off by default.
+#   #5015), DSpark k=5 with the checkpoint's own draft layers, tools +
+#   vision on.
+#   * GMU 0.85 (their 0.80): the ~1M indexer prefill buffer (~5.2 GiB)
+#     needs the extra budget; KV pool grows ~6 GiB over 300K.
+#   * 1M ctx (their boot7-go proof: 1,078,380-token pool at gmu 0.80/eager;
+#     at graphs + gmu 0.85 the pool has headroom). Note: their top-k fix
+#     was validated at row widths up to 300K — the full 1M-wide decode is
+#     unproven territory even for them; watch long prompts.
+#   * thinking ON + reasoning_effort=max by default (request can override
+#     via chat_template_kwargs), served as "deepseek-v4-flash" (gateway
+#     alias, no config churn).
 
 engine = "vllm"
 name = "DeepSeek-V4.1-Flash MXFP4 (dsv41 img, 4x, DSpark k=5, Engram-on-disk)"
@@ -33,11 +42,13 @@ shm_size = "32gb"
 # (vllm/vllm-openai), so the launcher's CMD (model + flags) completes it.
 
 args = [
-    "--served-model-name", "dsv41",
+    # Stable gateway alias — clients/gateways keep the DeepSeek-V4-Flash
+    # model name; no per-deployment config churn.
+    "--served-model-name", "deepseek-v4-flash",
     "--trust-remote-code",
     "--distributed-executor-backend", "mp",
-    "--gpu-memory-utilization", "0.80",
-    "--max-model-len", "300000",
+    "--gpu-memory-utilization", "0.85",
+    "--max-model-len", "1048576",
     "--max-num-seqs", "8",
     "--max-num-batched-tokens", "8192",
     # boot-4 fix: the V4 indexer backend refuses the smallest-listed block
@@ -52,7 +63,7 @@ args = [
     "--enable-auto-tool-choice",
     "--reasoning-parser", "deepseek_v41",
     "--default-chat-template-kwargs", """
-'{"thinking": false}'""",
+'{"thinking": true, "reasoning_effort": "max"}'""",
 ]
 
 [env]