Prhub

#25243 [Docs] update dsv4 cookbook with H100 deployment commands

原始 PR 作者 zijiexia 合并时间 2026-05-14 14:45 文件变更 2 提交数 1 评论 1 代码增减 +83 / -9

执行摘要

为 DSv4 文档添加 H100 部署选项和 Docker 镜像

为 DeepSeek-V4 部署文档增加 H100 (FP4) 的支持,满足用户在 H100 GPU 上部署的需求。PR body 明确提到需要新增 H100 硬件选项,并需要在 Docker 镜像表中添加 "NVIDIA H100 → lmsysorg/sglang:dev" 行。

建议快速合入。该 PR 是纯文档和数据展示层面的更新,逻辑清晰、改动集中,且已通过 review。对于文档类 PR 而言,这是一个规范的样例。

讨论亮点

本 PR 仅有 1 条机器人评论提示每日配额限制,无人工 review 评论。最终由 wisclmy0611 审核通过,未发现争议或讨论。

实现拆解

  1. 新增 H100 硬件选项docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx):在 hardware 配置对象的 items 数组中添加 { id: "h100", label: "H100 (FP4)", default: false },并在文件顶部的注释中增加 H100 的说明。
  2. 重构 Marlin 路径共享常量:将原先仅属于 H200 (FP4) 的 H200_FP4_UNSUPPORTED_RECIPES 重构为更通用的 MARLIN_UNSUPPORTED_RECIPES(包含 ["cp", "pd-disagg"]),新增 MARLIN_HARDWARE = new Set(["h200-fp4", "h100"])MARLIN_LABEL 映射,使 H100 能共享相同的 recipe 禁用和自动回退逻辑。
  3. 更新 resolveItems 和 handleRadioChange 逻辑:将条件判断从 vals.hardware === "h200-fp4" 改为 MARLIN_HARDWARE.has(vals.hardware),禁用提示消息也改为动态引用 MARLIN_LABEL。handleRadioChange 中的 fallback 逻辑同样改为检查 MARLIN_HARDWARE.has(value)
  4. 新增 H100 部署配置:在 deploymentConfig 对象中添加 "h100|small"(TP=8 单节点)和 "h100|big"(TP=16 双节点,带 SGLANG_SHARED_EXPERT_TP1=1、--mem-fraction-static 0.9 等参数)的配置。
  5. 更新 Docker 镜像表docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx):在 HTML 表格中新增一行 "NVIDIA H100 → lmsysorg/sglang:dev"。
文件 模块 状态 重要度
docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx 文档组件 modified 6.92
docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx 文档 modified 2.32

关键源码片段

docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx core-logic

核心变更文件,新增 H100 硬件选项并重构 Marlin 路径共享常量

// 以下是重构后的核心逻辑片段:// 定义 Marlin(FP4)硬件路径上不支持的 recipe
// 现为 H200 (FP4) 和 H100 (FP4) 共享
const MARLIN_UNSUPPORTED_RECIPES = new Set(["cp", "pd-disagg"]);// 所有使用 Marlin runner 的硬件 ID 集合
const MARLIN_HARDWARE = new Set(["h200-fp4", "h100"]);// 硬件 ID → 显示名称的映射,用于动态禁用提示
const MARLIN_LABEL = { "h200-fp4": "H200 (FP4)", h100: "H100 (FP4)" };// 根据当前选中的硬件,返回可用 recipe 列表
// 若硬件属于 Marlin 路径,则禁用 cp 和 pd-disagg
const resolveItems = (option, vals) => {
  if (option.name === "recipe" && vals && MARLIN_HARDWARE.has(vals.hardware)) {
    return option.items.map((it) =>
      MARLIN_UNSUPPORTED_RECIPES.has(it.id)
        ? {
            ...it,
            disabled: true,
            disabledReason: `Not supported on ${MARLIN_LABEL[vals.hardware]}`
          }
        : it
    );
  }
  return option.items;
};// 当用户切换到 Marlin 硬件时,若当前 recipe 不被支持,自动回退到 low-latency
const handleRadioChange = (optionName, value) => {
  setValues((prev) => {
    const next = { ...prev, [optionName]: value };
    if (
      optionName === "hardware" &&
      MARLIN_HARDWARE.has(value) &&
      MARLIN_UNSUPPORTED_RECIPES.has(next.recipe)
    ) {
      next.recipe = "low-latency";
    }
    // ... 其余处理
  });
};

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅涉及文档和部署生成器的前端逻辑,不涉及任何运行时代码或核心推理逻辑。主要风险是:(1)H100 部署命令可能因真实环境差异需要后续调整;(2)重构常量名可能影响其他引用该常量的未发现位置(但该常量是新增的,无此风险)。

直接影响:DeepSeek-V4 文档用户可在硬件选型中选择 H100 (FP4),并获得正确的部署命令。Docker 镜像表新增 H100 行,方便用户选择镜像。影响程度:小范围文档和 UI 组件更新,对系统无影响。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论