Prhub

#33481 Add NVIDIA Nemotron 3.5 Lightning cookbook

原始 PR 作者 faradawn 合并时间 2026-08-11 21:00 文件变更 5 提交数 11 评论 11 代码增减 +537 / -1

执行摘要

为 Nemotron 3.5 Lightning 新增 cookbook 页

Nemotron 3.5 Lightning 是 NVIDIA 的 30B-A3B 混合推理 LLM,模型支持由 PR#33554 落地。PR body 说明目标是为用户提供可直接运行的部署指引:“Adds a cookbook page for NVIDIA Nemotron 3.5 Lightning with single-GPU NVFP4 recipes for H100 and DGX Spark, each covering base serving plus MTP, DFlash, and DSpark speculative decoding, along with playground axes for TP, MoE backend, parsers and speculative decoding.” 同时该页面承担 NVIDIA 模型族 cookbook 入口,intro.mdx 的 NVIDIA 卡片 href 从 Nemotron3-Ultra 切换到新页面印证了这一点。

建议精读 nemotron-3.5-lightning.jsx 的 cells 设计:它展示了如何把“每个硬件 × 策略的已验证命令”压缩成可匹配、可生成、可维护的结构化数据,以及如何利用引擎默认值解析来精简 flag。对要新增模型 cookbook 的贡献者,这套模板和本次 review 中的 flag 精简讨论是直接可复用的经验。合并后建议跟进两点:安装命令是否已切换到 release 仓库、benchmark 数据是否已回填。

讨论亮点

Review 共 8 条评论全部来自 b8zhong,另有 b8zhong 与 JustinTong0323 两个 APPROVED。最有价值的交锋集中在两点:

  • 安装命令要对齐模型支持 PR:b8zhong 在 install 段落评论“Change this to pip install of the PR of https://github.com/sgl-project/sglang/pull/33554”,作者以 commit 9e92e39e 落实,把安装源改为该 PR 的 head。
  • 删除默认 flag、降低噪音:b8zhong 连续 6 条“Remove all flags that are set by default / Remove / Delete / Same here”,commit cc788103 的说明给出量化理由——每个 launch cell 原本带 26-34 个 flag,其他 cookbook 页面只有 6-13 个;已删除 --tp-size 1--ep-size 1--kv-cache-dtype auto--num-continuous-decode-steps 1--mamba-backend triton--mamba-track-interval 256--mamba-cache-philox-rounds 0 等与解析默认值相等的参数。

另有一条未决疑问:b8zhong 问“Why shorten the context length”,材料中没有捕获作者答复。合并后 b8zhong 还要求“update all commands to release repos”,作者回复已处理,但合并时文件仍引用 refs/pull/33554/head,与实际仓库状态可能存在出入,需以当前 main 为准。

实现拆解

  1. 新增 cookbook 页面docs/cookbook/autoregressive/NVIDIA/Nemotron3.5-Lightning.mdx(+162 行)是页面主体,包含安装 Accordion(Python 路径用 uv pip installrefs/pull/33554/head 安装以拿到 Nemotron 3.5 模型支持,Docker 路径拉取 lmsysorg/sglang:dev-nemotron3-5-lightning 多架构镜像)、checkpoint 对照表(NVFP4 主模型 / BF16 参考 / DFlash 与 DSpark 两个 W4A16 draft 模型,MTP 的 draft head 内嵌在目标模型内无需单独下载)、OpenAI 接口示例(--reasoning-parser nemotron_3 把思维链写入 message.reasoning_content--tool-call-parser qwen3_coder 返回结构化 message.tool_calls)。

  2. 新增配置驱动数据docs/src/snippets/configs/nvidia/nemotron-3.5-lightning.jsx(+355 行)导出单一 config 字面量(Mintlify hydration 时重新求值,因此不用 spread/IIFE)。声明 supportedHardware(b200/h100/dgx-spark)、strategies(balanced/mtp/dflash/dspark)、modelNames、dockerImages,核心是 cells 数组——每个元素用 match 键(hw × variant × quant × strategy × nodes)命中一条已验证配方。配方按平台分化:B200 显式加 --mamba-backend flashinfer 与 mamba 缓存随机舍入,投机解码时 target 验证切到 TRT-LLM MHA;H100 不加 mamba backend,依赖 FA3 默认 target attention;DGX Spark 用 --mem-fraction-static 0.78--cuda-graph-max-bs-decode 4 的保守组合。

  3. 新增基准数据脚手架docs/src/snippets/configs/nvidia/nemotron-3.5-lightning-benchmarks.jsx(+18 行)导出 12 条与 cells 一一对应的 match 记录,速度/准确率数值全部为 pending,卡片在数据回填前渲染 pending 占位。

  4. 注册与导航docs/docs.json 在 NVIDIA group 下追加 cookbook/autoregressive/NVIDIA/Nemotron3.5-Lightning 条目;docs/cookbook/autoregressive/intro.mdx 把 NVIDIA 卡片 href 从 Nemotron3-Ultra 切换到新页面,使新 cookbook 成为 NVIDIA 模型族首页入口。

  5. Review 驱动的演进与配套:11 个 commit 反映过程——先加 B200 配方再收敛到 H100/DGX Spark,按 COMMON_ARGS 对齐后重新加入 B200;commit cc788103 落实“删除等于默认值 flag”的 review 意见,把每个 cell 从 26-34 个 flag 降到 6-13 个量级;commit 9e92e39e 把安装命令指向 PR#33554;最后一笔修正 Docker tag 拼写(lighting → lightning)。纯文档改动,无测试配套;CI 主线通过、extra 线失败(具体原因未在材料中说明)。

文件 模块 状态 重要度
docs/src/snippets/configs/nvidia/nemotron-3.5-lightning.jsx 文档配置 added 7.07
docs/src/snippets/configs/nvidia/nemotron-3.5-lightning-benchmarks.jsx 文档配置 added 5.17
docs/cookbook/autoregressive/NVIDIA/Nemotron3.5-Lightning.mdx 文档页面 added 4.91
docs/docs.json 导航配置 modified 2.36
docs/cookbook/autoregressive/intro.mdx 文档页面 modified 2.31

关键源码片段

docs/src/snippets/configs/nvidia/nemotron-3.5-lightning-benchmarks.jsx core-logic

为 Deployment 卡片提供与 cells 一一对应的基准数据骨架,当前全部 pending,决定页面性能数据的展示形态。

// 每个 match 记录与 config.cells 一一对应;数值尚未回填,卡片先渲染 "pending",
// 待实测跑完后再把速度 / 准确率数据填进来。
export const benchmarks = [
  { match: { hw: "b200", variant: "default", quant: "nvfp4", strategy: "balanced", nodes: "single" } },
  { match: { hw: "b200", variant: "default", quant: "nvfp4", strategy: "mtp", nodes: "single" } },
  { match: { hw: "b200", variant: "default", quant: "nvfp4", strategy: "dflash", nodes: "single" } },
  { match: { hw: "b200", variant: "default", quant: "nvfp4", strategy: "dspark", nodes: "single" } },
  { match: { hw: "h100", variant: "default", quant: "nvfp4", strategy: "balanced", nodes: "single" } },
  { match: { hw: "h100", variant: "default", quant: "nvfp4", strategy: "mtp", nodes: "single" } },
  { match: { hw: "h100", variant: "default", quant: "nvfp4", strategy: "dflash", nodes: "single" } },
  { match: { hw: "h100", variant: "default", quant: "nvfp4", strategy: "dspark", nodes: "single" } },
  { match: { hw: "dgx-spark", variant: "default", quant: "nvfp4", strategy: "balanced", nodes: "single" } },
  { match: { hw: "dgx-spark", variant: "default", quant: "nvfp4", strategy: "mtp", nodes: "single" } },
  { match: { hw: "dgx-spark", variant: "default", quant: "nvfp4", strategy: "dflash", nodes: "single" } },
  { match: { hw: "dgx-spark", variant: "default", quant: "nvfp4", strategy: "dspark", nodes: "single" } },
];

评论区精华

安装命令应直接 pip install PR#33554 documentation

b8zhong 在 Nemotron3.5-Lightning.mdx 第 20 行(install 部分)要求把安装命令改为对 PR#33554 的 pip 安装,确保用户拿到包含 Nemotron 3.5 模型支持的代码。

结论:作者新增 commit 9e92e39e,将 Python 安装路径改为 `git+https://github.com/sgl-project/sglang.git@refs/pull/33554/head#subdirectory=python`。 · 已解决

删除等于默认值的冗余 flag style

b8zhong 连续多条评论要求“Remove all flags that are set by default”、“Remove all redundant flags”、“Delete”,指向 config 中与默认解析结果重复的大量 flag;commit cc788103 记录了理由:每个 launch cell 带 26-34 个 flag,而其他 cookbook 页面只有 6-13 个,噪音大于信息量。

结论:删除 `--tp-size 1`、`--ep-size 1`、`--kv-cache-dtype auto`、`--num-continuous-decode-steps 1`、`--mamba-backend triton`、`--mamba-track-interval 256`、`--mamba-cache-philox-rounds 0` 等等于解析默认值的参数。 · 已解决

为什么缩短 context length question

b8zhong 提问“Why shorten the context length”,针对早期版本配置中与上下文长度相关的改动;材料中没有捕获作者的答复。

结论:未明确;可能是与默认解析值对齐或硬件显存约束有关,建议回查最终提交确认。 · unresolved

风险与影响

  • 安装源非发布形态:Python 安装命令固定到 refs/pull/33554/head,一旦该 PR 的 ref 变更或被回收,文档命令无法复现当时的运行环境;b8zhong 合并后也要求统一改为 release 仓库。影响面:跟随文档安装的用户。
  • 配方与运行时默认值耦合cells 里的 flags 依赖 SGLang 对 NemotronH 的默认解析(attention backend、mamba backend、MoE runner、mem-fraction 等)。这些默认值在后续版本调整时,文档配方会静默失效或偏离最优配置,属于持续维护成本。
  • 性能数据可信度:benchmarks 全部是 pending,H100 曾在 commit 中标记 unverified pending eval data;在数据回填之前,页面不构成任何吞吐/延迟选型依据。
  • 镜像 tag 语义:历史上发布过拼写错误的 dev-nemotron3-5-lighting tag,正确 tag 已发布且内容一致,但错误 tag 仍被保留刷新,存在用户误用旧 tag 的混淆风险。
  • 用户:获得 H100、B200、DGX Spark 三个单卡平台 × 4 种策略(base/MTP/DFlash/DSpark)的 NVFP4 部署路径,并能通过 Playground 组合 TP、EP、MoE backend(Marlin/DeepEP)、reasoning/tool parser 等选项,快速生成实验命令。
  • 文档站:NVIDIA cookbook 组新增一个入口,intro.mdx 的 NVIDIA 卡片主推对象从 Nemotron3-Ultra 切换到 Nemotron3.5-Lightning,直接影响模型族首页导航语义。
  • 团队:沉淀了“config + benchmarks + Deployment/Playground”的 cookbook 模板和“只写非默认 flag”的约定,后续模型文档可低成本复用;同时暴露了 cookbook 依赖运行时默认值、需要随版本维护的问题。
安装源依赖 PR 分支引用 基准数据未回填 文档与解析默认值强耦合 镜像 tag 拼写易错

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论