# PR #23943 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[Docs] Add single-node H200 DeepSeek-V4-Pro low-latency recipe
- 合并时间：2026-04-28 23:03
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/23943

---

## 执行摘要
本 PR 为 DeepSeek-V4-Pro 低延迟部署文档（cookbook）新增 H200 单节点 (TP=8, Marlin 后端 ) 变体，与已有的多节点命令并列显示。仅修改一个 JSX 源码文件 `deepseek-v4-deployment.jsx`。

## 功能与动机
用户希望在 H200 单节点上以低延迟运行 DeepSeek-V4-Pro，而现有 cookbook 仅提供多节点方案。PR Body 指出："Add a TP=8 single-node variant (Marlin backend) for H200 + DeepSeek-V4-Pro low-latency cookbook recipe"。

## 实现拆解

1. **新增条件分支**：在 `buildAllinoneCommand` 函数中原有 `verifyKey` 逻辑之前，插入 `if (hardware === "h200" && isBig && recipe === "low-latency")` 分支，精确命中 H200 大模型低延迟场景。
2. **构造单节点命令数组**：定义 `singleFlags` 数组，包含 11 项参数，涵盖模型路径、并行度 (`--tp 8`)、Marlin 后端 (`--moe-runner-backend marlin`)、EAGLE 投机解码配置、分块预填充大小、FlashInfer 自动调优禁用以及静态内存比例等。同时根据 UI 开关追加可选的解析器参数（tool-call-parser / reasoning-parser）。
3. **拼接输出**：将单节点命令与原有多节点命令 (`withMultinode`) 通过注释头拼接为两个独立代码块，分别标注 "Single-Node (TP=8, Marlin)" 和 "Multi-Node (2 nodes, TP=16, DP-Attn + DeepEP)"。
4. **验证状态复用**：沿用原有的 `VERIFIED_RECIPES` / `TBD_RECIPES` 映射决定最终显示为已确认、待确认或注释状态。

### `docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx`

唯一变更文件，新增 H200 单节点低延迟命令生成分支

### 关键源码片段

### `docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx`

唯一变更文件，新增 H200 单节点低延迟命令生成分支

```jsx
// 在 buildAllinoneCommand 函数中，原有 verifyKey 逻辑前插入
// 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",  // 注意：review 指出 H200 需要 FP8 模型，此处路径可能错误
    "  --tp 8",                                       // 单节点 8 卡 TP
    "  --moe-runner-backend marlin",                  // Marlin 后端适用于 H200 (FP8)
    "  --speculative-algo EAGLE",                     // 使用 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",                   // 静态内存分配比例
  ];
  // 根据 UI 开关追加可选的解析器参数
  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 \\
${singleFlags.join(" \\
")}`;
  // 拼接单节点和多节点命令，用注释分隔
  const combined =
    `# --- Single-Node (TP=8, Marlin) ---\n${singleNodeCmd}

` +
    `# --- Multi-Node (2 nodes, TP=16, DP-Attn + DeepEP) ---\n${withMultinode}`;

  // 复用验证状态检查，但 reviewer 指出此逻辑与后续重复
  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)}`;
}

```

## 评论区精华
> **模型路径兼容性问题**：reviewer gemini-code-assist[bot] 指出 `deepseek-ai/DeepSeek-V4-Pro` 路径可能无法在 H200 上正常运行。因为 H200 仅支持 FP8 权重，而该仓库的权重包含 FP4 混合精度。建议使用 `sgl-project` 提供的 FP8 兼容模型。
> **代码重复**：新分支中的 TBD/VERIFIED 验证逻辑与第 517-521 行原有逻辑完全相同，若未来状态列表更新需同步修改两处。
> 以上问题均未在公开评论中回应，PR 已被批准合并。

## 风险与影响
- **模型兼容性**：若用户直接复制文档中的 `--model-path deepseek-ai/DeepSeek-V4-Pro` 命令，在 H200 上执行可能因 FP4 权重重载失败。这是 review 中明确指出的高风险问题。
- **文档误导**：不兼容的命令会使用户首次部署失败，降低对 SGLang 文档的信任。
- **影响范围**：仅影响 cookbook 页面中 H200+big+ 低延迟这一个组合的渲染逻辑，其他硬件和配方不受影响。

## 关联脉络
- 本 PR 与 #23883 (Enable DeepGemm warmup in DeepSeek-V4 cookbook) 同为 DeepSeek-V4 cookbook 的文档扩充，修改同一 JSX 文件，扩展命令行参数集合。
- 与 #23836 (diffusion 默认种子变更 ) 同属文档 / 配置微调类 PR，展示了 SGLang 团队持续优化文档以支持更多硬件部署方式的趋势。