Prhub

#36496 Add Qwen3.8-Flash-Next cookbook

原始 PR 作者 yhyang201 合并时间 2026-08-26 20:37 文件变更 7 提交数 7 评论 0 代码增减 +1027 / -10

执行摘要

新增 Qwen3.8-Flash-Next Day-0 部署 cookbook 文档

PR body 明确这是 Day-0 cookbook page,目标是让用户在模型发布当天就能按硬件 × 量化 × 策略生成已验证的启动命令。实现完全复用配置驱动模板(per-model config + benchmarks,由共享的 _deployment.jsx / _playground.jsx 消费,no engine edits),文档侧零侵入;同时通过替换 popular-models.jsx 首位与 intro.mdx 卡片链接,把新模型推上首页曝光位。源码安装段落引用 <PR-NUMBER> 占位符,说明文档先于模型支持 PR 落地,属于典型发布流程配套。

值得精读配置驱动模板的数据契约设计:单一字面量导出、反规范化 cell、overlayDimsshowWhen 拨杆机制,对后续新增模型文档有直接参考价值。合并前必须解决两个问题:回填 <PR-NUMBER> 模型支持 PR 编号、确认 Extra CI 失败原因。由于无引擎改动,不必作为架构评审重点,但可作为文档发布流程与模板复用的样例。

讨论亮点

本 PR 没有任何 review 评论线程,唯一评审是 JustinTong0323 的 APPROVED 空评审。可讨论内容集中在 7 个 commit 的自我迭代中:FP8 配方被拆成 high-throughput 与 low-latency 两个 operating point,使 FP8 与 BF16、NVFP4 对齐为两层;NVFP4 从 TP4 降为 TP1 单卡,因为 server_args 断言 ep_size * moe_dp_size <= tp_size,TP1 下 --ep 4 会让启动直接失败;最后一轮把 NVFP4 配方与实测命令对齐,去掉 --mem-fraction-static--chunked-prefill-size--max-running-requests,避免文档与真实跑测配置漂移。这些是文档与运行时约束互动的典型样例。

实现拆解

  1. 新增模型配置 snippetdocs/src/snippets/configs/Qwen/qwen3.8-flash-next.jsx(+723 行)导出单一 config 字面量,声明 supportedHardware(6 平台)、quantizations(BF16 / FP8 / NVFP4)、strategies(low-latency / balanced / high-throughput)、nodesOptionsoverlayDims(PLE Offload 拨杆,CUDA-only,AMD 隐藏)、modelNames(三种精度对应不同 HF repo,NVFP4 指向 RadixArk)、placeholderscurl 模板、benchmarkCommandsaccuracyLabels。cell 采用反规范化写法,分布式参数由 _deployment.jsx 引擎注入,避免命令重复。
  2. 新增基准数据qwen3.8-flash-next-benchmarks.jsx(+72 行)导出 benchmarks 数组,每项以 match 声明 cell key(hw × variant × quant × strategy × nodes),附 sglang_versionaccuracy(GSM8K / AIME26 / MMMU-Pro)。11 个 NVIDIA cell 有实测数据(qwen4-main @ e17062a1d),FP8 low-latency、NVFP4 与 AMD cell 留空,页面据此显示“待测量”。
  3. 新增 MDX 页面docs/cookbook/autoregressive/Qwen/Qwen3.8-Flash-Next.mdx(+222 行),包含安装引导(Python 源码安装含 <PR-NUMBER> 占位符、NVIDIA / AMD Docker 镜像)、<Deployment> / <Playground> 组件接线、模型介绍,以及 4 轴 Playground(TP、MoE EP、reasoning / tool-call parser、NEXTN / MTP 预设)。
  4. 接线与入口替换docs/docs.json 将页面插入 Qwen 分组;popular-models.jsx 首页轮播第一条由 Qwen3.8-27B 替换为 Qwen3.8-Flash-Next;intro.mdx 的 Qwen 卡片链接指向新页;Qwen3.8-27B.mdx 删除 1 行旧引用,避免失效入口。
  5. 测试与 CI 配套:无新增测试文件,属于纯文档链路;CI 状态 Base run 通过、Extra run 失败(x),合并前需确认失败原因与文档无关。
文件 模块 状态 重要度
docs/src/snippets/configs/Qwen/qwen3.8-flash-next.jsx 文档配置 added 7.07
docs/src/snippets/configs/Qwen/qwen3.8-flash-next-benchmarks.jsx 基准数据 added 6.24
docs/src/snippets/configs/popular-models.jsx 热门入口 modified 5.7
docs/cookbook/autoregressive/Qwen/Qwen3.8-Flash-Next.mdx 页面正文 added 5.59
docs/docs.json 站点导航 modified 2.36
docs/cookbook/autoregressive/intro.mdx 入门首页 modified 2.31
docs/cookbook/autoregressive/Qwen/Qwen3.8-27B.mdx 旧页清理 modified 2.17

关键符号

export const config export const benchmarks export const popularModels

关键源码片段

docs/src/snippets/configs/Qwen/qwen3.8-flash-next.jsx core-logic

核心配置数据源:定义模型名、平台、量化、策略、PLE Offload 拨杆、模型 repo 映射、curl / benchmark 模板与镜像标签,驱动 Deploy / Playground 面板生成 22 个 cell 的启动命令。

// 单例 `config` 字面量导出,不使用 spread / 函数调用 / IIFE,
// 因为 Mintlify 在 hydration 时会重新求值。
// cell 采用反规范化写法:不写 `--nnodes` / `--port` 等分布式参数,
// 由 `_deployment.jsx` 引擎统一注入。
export const config = {
  modelName: 'Qwen3.8-Flash-Next',  // 6 个平台:NVIDIA H200 / B200 / B300 / GB300 + AMD MI350X / MI355X
  supportedHardware: ['h200', 'b200', 'b300', 'gb300', 'mi350x', 'mi355x'],  variants: [{ id: 'default', label: 'Default' }],  // NVFP4 是 SGLang 自研的 Blackwell-only 量化(RadixArk),
  // SM90(H200)与 CDNA4(AMD)没有该路径,因此不生成对应 cell
  quantizations: [
    { id: 'bf16', label: 'BF16' },
    { id: 'fp8', label: 'FP8' },
    { id: 'nvfp4', label: 'NVFP4' },
  ],  // low-latency 在 high-throughput 基础上叠加 MTP 头(NEXTN 3/1/4),
  // AMD 两个平台各只有一条配方,归入 balanced
  strategies: [
    { id: 'low-latency', label: 'Low Latency' },
    { id: 'balanced', label: 'Balanced' },
    { id: 'high-throughput', label: 'High Throughput' },
  ],
  nodesOptions: [{ id: 'single', label: 'Single Node' }],  // 正交拨杆:叠加在匹配到的 cell 上,但不参与 cell key 匹配
  overlayDims: [
    {
      id: 'pleOffload',
      title: 'PLE Offload',
      // 把 51B 的 N-gram embedding 表卸载到 CPU pinned memory,
      // 并在旁路 CUDA stream 上预取;该路径仅 CUDA 可用,AMD cell 隐藏此行
      showWhen: (sel) => !['mi350x', 'mi355x'].includes(sel.hw),
      default: 'auto',
      options: [
        { id: 'auto', label: 'Auto', hints: ['PLE Offload: BF16 在 CUDA 上自动开启,其余关闭'] },
        { id: 'on', label: 'On', flags: ['--ple-offload-embedding'] },
        { id: 'off', label: 'Off', flags: ['--no-ple-offload-embedding'] },
      ],
    },
  ],  // 三种精度指向不同 repo,而不是同一 repo 的不同 revision
  modelNames: {
    'default|bf16': 'Qwen/Qwen3.8-Flash-Next',
    'default|fp8': 'Qwen/Qwen3.8-Flash-Next-FP8',
    'default|nvfp4': 'RadixArk/Qwen3.8-Flash-Next-NVFP4',
  },  placeholders: {
    HOST_IP: { target: 'command', label: 'Bind host', default: '0.0.0.0' },
    PORT: { target: 'command', label: 'Bind port', default: '30000' },
    HF_TOKEN: { target: 'command', label: 'HF token (Docker)', default: '<your-hf-token>' },
    CURL_HOST: { target: 'curl', label: 'Server host', default: 'localhost' },
    CURL_PORT: { target: 'curl', label: 'Server port', default: '30000' },
  },  accuracyLabels: [
    ['gsm8k_pct', 'GSM8K', '%'],
    ['aime26_pct', 'AIME26', '%'],
    ['mmmu_pro_pct', 'MMMU-Pro', '%'],
  ],
  // 其余字段:curl 模板、benchmarkCommands 与 launchImages 均在原文件中展开
};
docs/src/snippets/configs/Qwen/qwen3.8-flash-next-benchmarks.jsx core-logic

基准数据契约:按 cell key 声明 22 个部署组合的 GSM8K / AIME26 / MMMU-Pro 精度,11 个有实测、其余留空表示待测量,供页面卡片渲染。

// Deploy 面板的 benchmark 卡片数据源:每个条目用 `match` 声明
// cell key(hw × variant × quant × strategy × nodes),
// 附上实测 `accuracy`;没有 accuracy 的 cell 会显示为“待测量”。
export const benchmarks = [
  {
    match: { hw: 'h200', variant: 'default', quant: 'bf16', strategy: 'low-latency', nodes: 'single' },
    sglang_version: 'qwen4-main @ e17062a1d',
    accuracy: { gsm8k_pct: 97.73, aime26_pct: 97.92 },
  },
  {
    match: { hw: 'h200', variant: 'default', quant: 'bf16', strategy: 'high-throughput', nodes: 'single' },
    sglang_version: 'qwen4-main @ e17062a1d',
    accuracy: { gsm8k_pct: 97.57, aime26_pct: 99.17 },
  },
  // FP8 low-latency 与 high-throughput 在 H200 上暂无实测数据,
  // 只声明 cell key,页面将显示为“待测量”
  { match: { hw: 'h200', variant: 'default', quant: 'fp8', strategy: 'high-throughput', nodes: 'single' } },
  { match: { hw: 'h200', variant: 'default', quant: 'fp8', strategy: 'low-latency', nodes: 'single' } },
  // B200 / B300 / GB300 的 BF16 与 FP8 high-throughput 均有实测,
  // NVFP4 与 AMD(MI350X / MI355X)cell 均无 accuracy 字段
  { match: { hw: 'mi350x', variant: 'default', quant: 'bf16', strategy: 'balanced', nodes: 'single' } },
  { match: { hw: 'mi350x', variant: 'default', quant: 'fp8', strategy: 'balanced', nodes: 'single' } },
  { match: { hw: 'mi355x', variant: 'default', quant: 'bf16', strategy: 'balanced', nodes: 'single' } },
  { match: { hw: 'mi355x', variant: 'default', quant: 'fp8', strategy: 'balanced', nodes: 'single' } },
];
docs/src/snippets/configs/popular-models.jsx data-contract

首页 / cookbook 首页轮播数据源:把第一位从 Qwen3.8-27B 替换为 Qwen3.8-Flash-Next,放大新模型曝光。

// 首页与 cookbook 首页的轮播数据源:本 PR 把第一条从 Qwen3.8-27B
// 替换为 Qwen3.8-Flash-Next,使新模型在站点首页获得曝光
export const popularModels = [
  {
    name: 'Qwen3.8-Flash-Next',
    vendor: 'Qwen',
    href: '/cookbook/autoregressive/Qwen/Qwen3.8-Flash-Next',
    logo: '/cards/logos/qwen.png',
    badge: 'New',
    tags: ['6 platforms', 'GDN + QSA hybrid', 'BF16 / FP8 / NVFP4'],
    hero: {
      eyebrow: 'Featured model · New',
      headline: 'Meet Qwen3.8-Flash-Next on SGLang',
      blurb:
        'Qwen 对 Qwen4 架构的早期预览 —— 176B 总参数、6B 激活,四层中三层为 Gated DeltaNet、第四层为运行 Qwen Sparse Attention 的全局注意力,配合超稀疏 MoE 与随 checkpoint 的 MTP 头。cookbook 覆盖 H200 / B200 / B300 / GB300 的单节点 TP4 与 MI350X / MI355X 的 TP8 服务。',
      tags: ['176B / 6B active', '262K context', 'Single-node'],
      cta: 'Open the Qwen3.8-Flash-Next cookbook',
      caption: 'Qwen3.8-Flash-Next deployment guide',
    },
  },
  // MiniMax-H3、Kimi-K3 等后续条目保持原样
];

评论区精华

PR 审核与迭代过程 other

PR 无任何 review 评论,仅收到 JustinTong0323 的 APPROVED 空评审;7 个 commit 体现作者自我迭代:FP8 拆分为双 operating point、NVFP4 降为 TP1、去掉 NVFP4 配方中与实测命令不一致的启动参数。

结论:审核通过;合并前需处理 PR body 中 `<PR-NUMBER>` 占位符与 Extra CI 失败。 · 已解决

风险与影响

  1. 占位符风险:安装引导中的 <PR-NUMBER> 若未在合并前替换,用户按文档源码安装会失败;PR body 已注明待模型支持 PR 编号确定后填写。
  2. 数据覆盖风险:22 个 cell 中仅 11 个有精度数据,FP8 low-latency、全部 NVFP4 与 AMD cell 显示“待测量”,页面需避免用户误读为“不支持”。
  3. 外部依赖:NVFP4 cell 指向 RadixArk/Qwen3.8-Flash-Next-NVFP4 第三方 repo,且为 TP1 单卡配方,repo 可用性未在 PR 中独立验证。
  4. CI 状态:PR 的 Extra run 标记为失败(x),合入前需确认失败与文档改动无关。
  5. 一致性风险:PLE Offload 依赖服务端对 BF16 自动启用的行为,若模型支持 PR 落地时行为不一致,文档需同步修正。

影响范围为纯文档域,但辐射三处入口:站点首页轮播、cookbook 首页卡片与 Qwen 侧边栏目录。对用户而言,新模型发布当天即可获得覆盖 6 平台 × 3 量化 × 3 策略的可执行部署命令,降低采用成本;对团队而言,该 PR 验证了配置驱动 cookbook 模板在 Qwen 自回归模型 Day-0 场景下的复用性,后续新模型可复制此模式;对站点内容而言,Qwen3.8-27B 从首页轮播撤下但页面保留,入口被替换而非删除。整体影响中等偏轻,无运行时行为变化。

文档占位符待替换 精度数据覆盖不全 CI Extra 失败 依赖未发布模型支持 NVFP4 依赖第三方 repo

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论