From 4e1ef6b3cf9bf34b1886771219a561b4e272f66a Mon Sep 17 00:00:00 2001 From: Yuhao Yang <47235274+yhyang201@users.noreply.github.com> Date: Tue, 28 Apr 2026 23:03:26 +0800 Subject: [PATCH] [Docs] Add single-node H200 DeepSeek-V4-Pro low-latency recipe (#23943) --- .../autoregressive/deepseek-v4-deployment.jsx | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx index 741f8e619..d61b66e44 100644 --- a/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx @@ -482,6 +482,38 @@ export const DeepSeekV4Deployment = () => { cmd; } const withMultinode = multinode ? prependMultiNodeNote(cmd, nnodes) : cmd; + + // H200 Pro low-latency: show BOTH a single-node (TP=8 marlin) variant + // and the existing multi-node (TP=16 DP-attn + DeepEP) variant. + if (hardware === "h200" && isBig && recipe === "low-latency") { + const singleFlags = [ + " --trust-remote-code", + " --model-path deepseek-ai/DeepSeek-V4-Pro", + " --tp 8", + " --moe-runner-backend marlin", + " --speculative-algo EAGLE", + " --speculative-num-steps 3", + " --speculative-eagle-topk 1", + " --speculative-num-draft-tokens 4", + " --chunked-prefill-size 4096", + " --disable-flashinfer-autotune", + " --mem-fraction-static 0.88", + ]; + if (toolcall === "enabled") singleFlags.push(" --tool-call-parser deepseekv4"); + if (reasoningParser === "enabled") singleFlags.push(" --reasoning-parser deepseek-v4"); + singleFlags.push(" --host 0.0.0.0"); + singleFlags.push(" --port 30000"); + const singleNodeCmd = `sglang serve \\\n${singleFlags.join(" \\\n")}`; + const combined = + `# --- Single-Node (TP=8, Marlin) ---\n${singleNodeCmd}\n\n` + + `# --- Multi-Node (2 nodes, TP=16, DP-Attn + DeepEP) ---\n${withMultinode}`; + const verifyKey = `${hardware}|${modelSize}|${recipe}`; + if (TBD_RECIPES.has(verifyKey)) return TBD_PLACEHOLDER; + return VERIFIED_RECIPES.has(verifyKey) + ? combined + : `${BEING_VERIFIED_NOTE}\n${commentOutCommand(combined)}`; + } + const verifyKey = `${hardware}|${modelSize}|${recipe}`; if (TBD_RECIPES.has(verifyKey)) return TBD_PLACEHOLDER; return VERIFIED_RECIPES.has(verifyKey)