Prhub

#23907 [Docs] add Nemotron 3 Nano Omni cookbook

原始 PR 作者 zijiexia 合并时间 2026-04-29 01:24 文件变更 5 提交数 2 评论 1 代码增减 +746 / -1

执行摘要

新增 Nemotron 3 Nano Omni 部署 cookbook

从 sgl-cookbook 仓库 PR #258 迁移而来,旨在为 SGLang 用户提供 Nemotron 3 Nano Omni 模型的完整部署指南,支持多种量化、硬件和推理场景。

建议合并,同时鼓励 reviewer 验证 snippet 生成的命令是否准确,并检查文档中 API 用例的兼容性。对于希望了解 SGLang 文档架构的开发者,此 PR 是学习 snippet 与 cookbook 协作模式的好例子。

讨论亮点

本 PR 无 review 讨论或评论。

实现拆解

  1. 新增交互式部署 snippet:在 docs_new/src/snippets/autoregressive/nemotron3-nano-omni-deployment.jsx 中创建 Nemotron3NanoOmniDeployment React 组件,支持选择模型变体(Reasoning/BF16/FP8/NVFP4)、硬件平台、TP 大小、KV Cache 类型以及推理/工具调用解析器,并动态生成 sglang serve 命令。
  2. 新增 cookbook 文档:在 docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano-Omni.mdx 中撰写详细的模型介绍、架构特点、硬件要求、部署步骤和 API 使用示例,并引用上述 snippet。
  3. 调整文档导航:修改 docs_new/docs.json,在 NVIDIA 分组中新增 Nemotron3-Nano-Omni 页面条目,将其置于现有 Nemotron3-Nano 之前。
  4. 更新列表页:修改 docs_new/cookbook/autoregressive/intro.mdx 中的卡片链接和 docs_new/cookbook/intro copy.mdx 中的列表,将 Nemotron 3 Nano Omni 设为 NVIDIA 的默认入口。
文件 模块 状态 重要度
docs_new/src/snippets/autoregressive/nemotron3-nano-omni-deployment.jsx 文档片段 added 8.69
docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano-Omni.mdx cookbook added 5.62
docs_new/docs.json 文档配置 modified 2.36

关键符号

Nemotron3NanoOmniDeployment generateCommand getInitialState checkDarkMode handleRadioChange

关键源码片段

docs_new/src/snippets/autoregressive/nemotron3-nano-omni-deployment.jsx core-logic

核心交互组件,实现命令行生成逻辑,是 cookbook 的核心交互部分。

// 组件定义了模型路径、选项配置和命令生成逻辑
const MODEL_PATHS = {
  reasoning: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning',
  bf16: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-BF16',
  fp8: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-FP8',
  nvfp4: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-NVFP4',
};// generateCommand 根据用户选择生成 sglang serve 命令
const generateCommand = (values) => {
  const { tp, kvcache, model, hardware } = values;
  // 校验:NVFP4 必须搭配 B200
  if (model === 'nvfp4' && hardware !== 'b200') {
    return '# NVFP4 requires Blackwell hardware. Please select B200.';
  }
  // 校验:L40S 必须 TP > 1
  if (hardware === 'l40s' && tp === '1') {
    return '# TP=1 is not supported on L40S for this model. Please use TP=2 or higher.';
  }
  const modelPath = MODEL_PATHS[model] || MODEL_PATHS.reasoning;
  let cmd = 'sglang serve \\n';
  cmd += `  --model-path ${modelPath} \\n`;
  cmd += '  --host 0.0.0.0 \\n  --port 30000 \\n  --trust-remote-code \\n';
  cmd += `  --tp ${tp} \\n`;
  if (kvcache && kvcache !== 'none') {
    cmd += `  --kv-cache-dtype ${kvcache} \\n`;
  }
  // 动态追加 commandRule(如推理解析器和工具调用解析器)
  for (const [key, option] of Object.entries(options)) {
    if (option.commandRule) {
      const rule = option.commandRule(values[key]);
      if (rule) cmd += `  ${rule} \\n`;
    }
  }
  // 去除末尾的反斜杠和换行
  cmd = cmd.trimEnd();
  if (cmd.endsWith('\\')) cmd = cmd.slice(0, -1).trimEnd();
  return cmd;
};

评论区精华

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

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

风险与影响

风险极低:仅涉及文档和配置变更,不修改任何运行时逻辑。但 docs_new/docs.json 中页面顺序调整可能导致本地预览时导航顺序变化,但不会影响功能。

对用户:新增一份完整的模型部署指南,降低 NVIDIA Nemotron 3 Nano Omni 的使用门槛。对系统:无影响。对团队:增加了文档维护工作量,但 snippet 可复用模式便于后续模型添加。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论