Prhub

#36519 GLM-5.3-Flash cookbook: default Blackwell recipes to FP8 KV + TRT-LLM DSA

原始 PR 作者 JustinTong0323 合并时间 2026-08-27 00:51 文件变更 4 提交数 7 评论 0 代码增减 +74 / -53

执行摘要

GLM-5.3-Flash cookbook 默认切换 FP8 KV + TRT-LLM DSA,并修复多单元格配置问题

PR body 明确指出:#36513 合并时遗漏了默认切换的提交;此后发布的 cookbook 又暴露出三个问题:一是每个单元格都缺失 --disable-shared-experts-fusion,开启融合时模型在最终权重上退化(空内容、重复循环、不停顿),通过 4x GB300 隔离实验确认;二是 HiCache + MTP 启动崩溃(AttributeError: DSATokenToKVPool has no attribute full_kv_pool),需暂时禁用;三是 HiCache L1+L2 没有测量数据。因此本 PR 需要一次性修正这些发行内容。

值得精读:它展示了如何在文档/部署面板中做硬件条件化的默认推荐,以及如何用隔离实验和基准数据支撑配置决策。特别关注 isRecommendedSelection、verificationStatus 的写法,以及“临时禁用已知缺陷组合”的处理方式。对于需要维护相似 cookbook 或部署面板的工程师有很好的借鉴价值。

讨论亮点

本 PR 没有公开的 review 评论线程,两位 reviewer(zijiexia、ShangmingCai)均直接 APPROVED。从提交信息看,作者在 final-review 阶段自行修正了 HT FP8 卡片的精度数据、披露额外标志、恢复 fusion 标志、重新测量 LL 行等,说明讨论主要发生在评审前或离线沟通中。

实现拆解

整个变更围绕部署面板的配置对象和 cookbook 文档展开,核心是让 Blackwell 默认采用 FP8 KV + TRT-LLM DSA 配对,同时修复多个影响用户实际运行的配置问题。

  1. 默认配对切换与硬件条件化推荐(docs/src/snippets/configs/zai-org/glm-5.3-flash.jsx):将 kvDsaPair 的 default 从 bf16-tilelang 改为 fp8-trtllm;isRecommendedSelection 改为硬件条件判断(Hopper 用 bf16-tilelang,其余用 fp8-trtllm);调整选项顺序,为 FP8 选项补充实测 hint(GB300 上比 BF16 + TileLang 更快且 KV 容量约 1.8 倍);verificationStatus 不再依赖 isRecommendedSelection 的单一配对,而是允许两种配对均为 verified。

  2. 禁用 HiCache 于 Low Latency 策略(同一文件):给 hicache 的 l2 与 l3 选项增加 disabled 条件(strategy 为 low-latency 时禁用)和 disableReason,说明当前构建中 HiCache 与 MTP 推测解码会在启动时崩溃,仅建议在 High Throughput 下使用。

  3. 恢复 --disable-shared-experts-fusion 标志(glm-5.3-flash.jsx 的 flags 数组中):所有单元格命令重新加入该标志,避免共享专家融合导致最终权重上模型退化,并同步修订基准 notes 中对此的披露(包括 LL 行重新测量后的数字)。

  4. 基准数据与文档同步(glm-5.3-flash-benchmarks.jsx、GLM-5.3-Flash.mdx、_deployment.jsx):更新 Low Latency 行的 TTFT/TPOT/吞吐数字(以带融合标志的服务器为准),HT 行 notes 补充测量服务器实际使用的额外标志(--max-running-requests 等)与 HiCache L1+L2 开销数据;mdx 文档改写 Precision 行、KV/DSA 配对说明,增加 'Final Verification In Progress' 徽章说明;_deployment.jsx 的 Reproduce modal 摘要中把 sel.kvDsaPair 纳入显示。

  5. 验证配套:PR 中说明完成了 12/12 组合命令断言、GSM8K 精度对比、HiCache 启动与 18/18 bench 运行、cookbook 配置检查与 mint validate,但未新增独立测试文件(当前仓库的 cookbook 检查脚本已覆盖)。

文件 模块 状态 重要度
docs/src/snippets/configs/zai-org/glm-5.3-flash.jsx 部署配置 modified 6.52
docs/src/snippets/configs/zai-org/glm-5.3-flash-benchmarks.jsx 基准数据 modified 5.55
docs/src/snippets/_deployment.jsx 部署面板 modified 3.78
docs/cookbook/autoregressive/GLM/GLM-5.3-Flash.mdx cookbook modified 2.84

关键符号

isRecommendedSelection verificationStatus buildBenchCommands

关键源码片段

docs/src/snippets/configs/zai-org/glm-5.3-flash.jsx core-logic

核心配置对象:切换默认 KV/DSA 配对、硬件条件化推荐、禁用 HiCache 于 Low Latency、恢复 fusion 标志,影响部署面板生成的命令。

export const config = {
  modelName: "GLM-5.3-Flash",  supportedHardware: ["gb300", "h100", "h200", "b200", "b300", "gb200"],  // 推荐选择现在按硬件区分:Hopper 上 FP8 KV + TRT-LLM 不受支持,
  // 因此回退到 BF16 + TileLang;其余 Blackwell 硬件默认推荐 FP8 + TRT-LLM。
  isRecommendedSelection(s) {
    const pairing = ["h100", "h200"].includes(s.hw) ? "bf16-tilelang" : "fp8-trtllm";
    return (
      s.kvDsaPair === pairing &&
      s.mmTransport === "auto" &&
      s.hicache === "off"
    );
  },  overlayDims: [
    {
      id: "kvDsaPair",
      title: "KV Cache + DSA Backend",
      default: "fp8-trtllm",
      options: [
        {
          id: "fp8-trtllm",
          label: "FP8 + TRT-LLM",
          // Hopper 上禁用该组合,并给出明确的不可用提示。
          disabled: (s) => ["h100", "h200"].includes(s.hw),
          disableReason: "FP8 KV cache with TRT-LLM DSA is not supported on Hopper GPUs.",
          stripPrefixes: ["--kv-cache-dtype", "--dsa-prefill-backend", "--dsa-decode-backend"],
          flags: [
            "--kv-cache-dtype fp8_e4m3",
            "--dsa-prefill-backend trtllm",
            "--dsa-decode-backend trtllm",
          ],
          hints: ["Measured on GB300: faster than BF16 + TileLang with about 1.8x the KV token capacity."],
        },
        {
          id: "bf16-tilelang",
          label: "BF16 + TileLang",
          stripPrefixes: ["--kv-cache-dtype", "--dsa-prefill-backend", "--dsa-decode-backend"],
          flags: [
            "--kv-cache-dtype bfloat16",
            "--dsa-prefill-backend tilelang",
            "--dsa-decode-backend tilelang",
          ],
        },
      ],
    },
    {
      id: "hicache",
      title: "HiCache",
      default: "off",
      options: [
        { id: "off", label: "Off" },
        {
          id: "l2",
          label: "L1 + L2",
          subtitle: "Host memory",
          flags: ["--enable-hierarchical-cache", "--hicache-size 32"],
          // 当前构建中 HiCache 与 MTP 推测解码会在启动时崩溃,
          // 因此 Low Latency 策略下禁用,避免用户遇到 AttributeError。
          disabled: (s) => s.strategy === "low-latency",
          disableReason: "HiCache with MTP speculative decoding crashes at startup in the current build (DSA draft pool lacks full_kv_pool); use it with High Throughput only.",
          hints: ["32 GB host tier; the default ratio can demand more host RAM than the node has free."],
        },
        {
          id: "l3",
          label: "+ L3",
          subtitle: "Mooncake",
          flags: ["--enable-hierarchical-cache", "--hicache-size 32", "--hicache-storage-backend mooncake"],
          env: ["SGLANG_HICACHE_MOONCAKE_CONFIG_PATH={{MOONCAKE_CONFIG}}"],
          // 与 L1 + L2 相同的原因,Low Latency 下禁用。
          disabled: (s) => s.strategy === "low-latency",
          disableReason: "HiCache with MTP speculative decoding crashes at startup in the current build (DSA draft pool lacks full_kv_pool); use it with High Throughput only.",
          hints: ["Start Mooncake and place the configuration file on every serving node."],
        },
      ],
    },
  ],
  // ... 其余配置(modelNames、placeholders、curl 等)不变
};

评论区精华

无公开 review 评论 question

PR 没有记录 review 评论线程,两位 reviewer 直接 APPROVED。

结论:讨论主要在提交历史中体现为 final-review 修正提交。 · 已解决

风险与影响

  1. 默认配置变更风险:将 Blackwell 默认从 BF16+TileLang 切换为 FP8+TRT-LLM 后,未显式选择配对的用户会直接使用新默认。虽然实测精度在噪声范围内,但不同工作负载下 FP8 KV 的精度表现仍需验证,文档中 hints 已提示需要验证。
  2. 共享专家融合 flag:如果本次恢复不完整或未来重构遗漏,模型会因融合开启而退化(空输出、循环),这是严重功能性问题。需要确认所有 12 个单元格均包含该标志,后续对配置的改动需防止回归。
  3. HiCache 禁用是临时 workaround:当前 HiCache + MTP 崩溃问题尚未在代码层修复,文档中仅通过 disabled 逻辑规避,一旦 runtime 修复,需及时放开并同步更新 cookbook。
  4. 基准数字的准确性:LL 行和 HT 行数字随测量环境微调,若用户按 cookbook 复现,可能因 softwave 版本、环境差异得到不同结果,notes 中已披露模拟 accept length 和额外标志,但仍存在偏差风险。
  5. 硬件条件化逻辑:isRecommendedSelection 和 disabled 依赖 s.hw 与 s.strategy,若新增硬件型号或策略,可能导致条件不覆盖而出现错误推荐或未禁用的情况。

影响对象是使用 GLM-5.3-Flash cookbook 部署面板的用户(部署者、运维、模型服务团队):默认命令改变会直接影响 Blackwell 上的部署性能与 KV 容量;缺失 fusion 标志的恢复避免用户在使用最终权重时踩到生成退化问题;HiCache 在 Low Latency 下的禁用避免用户遇到启动崩溃。对团队来说,该 PR 完善了 cookbook 的数据真实性和可用性,为后续模型 cookbook 的默认配置决策提供了“实测数据驱动默认值”的样例。影响范围限定在文档与部署面板配置,不涉及运行时代码,因此整体影响可控。

默认配置变更 关键功能 flag 修复 临时禁用功能 缺少自动化测试 文档数据准确性

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论