Prhub

#36827 [Docs] Add GLM-5.3 cookbook

原始 PR 作者 Fridge003 合并时间 2026-08-28 22:56 文件变更 4 提交数 12 评论 1 代码增减 +1509 / -0

执行摘要

新增 GLM-5.3 部署 cookbook,含多硬件实测数据

PR body 明确说明动机:GLM-5.3 keeps the GLM-5.2 base architecture, so the existing deployment recipes can be reused with the released GLM-5.3 checkpoints。即 GLM-5.3 与 GLM-5.2 架构同源,部署配方可复用,只需对齐新 checkpoint(FP8 使用 zai-org/GLM-5.3、BF16 使用 zai-org/GLM-5.3-BF16)与发布仓库中的生成默认值(temperature=1.0、top_p=0.95)、reasoning-effort 指引和 clear_thinking 行为。文档还承担澄清 DSA 部署约束的职责,例如 LayerSplit 需要带 prefill context parallelism 的 Mooncake PD prefill worker。后续 commit 又补充了实测性能数据与 NVFP4 实验性单元格,使文档从纯占位升级为可用配方加实测参考。

值得精读。虽然是文档变更,但它的数据治理方式很有参考价值:如何用 match 元组把 benchmark 与部署单元格绑定、如何用 verified/experimental/pending 表达数据可信度、如何用环境变量说明隔离“机制验证”与“正确性”数据。对部署工程师,建议直接使用 cookbook 中的 FP8 配方,但注意版本绑定与 NVFP4 的 Experimental 标注;对文档维护者,建议先同步 PR body 与内容的差异,并考虑为旧 benchmark 数据增加“于某版本失效”的提示。

讨论亮点

PR 没有任何人工 review 评论(review_comments_count=0),仅有一条 Mintlify 预览 bot 评论和 JustinTong0323 的 APPROVED 审核。实质的“讨论”发生在 12 个 commit 的演进链中:JustinTong0323 先加入 RadixArk NVFP4 单元格,随后因官方未发布 FP4 权重将其标记为 experimental;zijiexia 的吞吐扫描显示 FP8 balanced 在各类 GPU 上总吞吐超过 high-throughput(H200 2558 vs 1762、B200 5025 vs 3997、B300 5259 vs 4067),从而做了配方升格;mmangkad 最后把准确率字段切换到 AIME26。此外,PR body 声称“移除 NVFP4 与实测数据、保留 39 个 pending 占位”,但合并结果相反,二者未同步,是本次合并的一大隐患。

实现拆解

  1. 新增 cookbook 页面 docs/cookbook/autoregressive/GLM/GLM-5.3.mdx:front matter 声明 title: GLM-5.3descriptiontag: NEW;正文依次渲染安装 Accordion、部署矩阵、Playground,并导入三个组件或数据源(/src/snippets/_deployment.jsxglm-5.3.jsxglm-5.3-benchmarks.jsx)完成交互式命令生成。页面用 Warning 注明 DSA indexer top-k 目前只在 --dsa-topk-backend sgl-kernel 上验证。
  2. 新增部署配置数据源 docs/src/snippets/configs/zai-org/glm-5.3.jsx(1028 行,新增):导出单一字面量 config。它定义硬件列表 supportedHardware(H200/B200/GB300/B300/MI355X/MI325X/MI300X)、量化选项 quantizations(FP8/BF16/NVFP4(Experimental))、checkpoint 映射 modelNames、命令占位符 placeholdersbenchmarkCommands、各硬件 dockerImages 以及 playgroundFeatures 中的 Attention Parallelism knob(DSA CP 在 ROCm 与多节点场景被 disable,并给出原因文案)。关键设计是单元格反规范化:不写 --nnodes--node-rank--host--port 字面量,由引擎在渲染时注入,避免多节点复制出错。
  3. 新增 benchmark 数据源 glm-5.3-benchmarks.jsx(221 行,新增):用 match 元组(hw/variant/quant/strategy/nodes)与部署单元格一一对应。合并前由 zijiexia 等补测了 15 个 NVIDIA 单节点单元格(H200/B200/B300/GB300 的 FP8 与 B300 BF16,三种策略),并明确标注 sglang_version: main @ 20a491d1d311notes 字段说明速度数据在 SGLANG_SIMULATE_ACC_LEN 固定接受长度下测得,仅代表吞吐机制而非正确性证据。NVFP4 单元格来自第三方 RadixArk/GLM-5.3-NVFP4,部分标记为 experimental / pending。
  4. 导航接入与配置校验 docs/docs.json(+1 行):在 GLM 分组中把 cookbook/autoregressive/GLM/GLM-5.3 插到 GLM-5.3-Flash 之前,并依赖 Mintlify 的 mint validate、broken-links 检查和部署矩阵一致性检查(早期提交状态为 39 个单元格与 39 个 benchmark 占位对齐)。
  5. 数据决策演进(commit 级):FP8 Balanced 配方经吞吐对比后提升为 High-Throughput(如 H200 上 2558 vs 1762 tok/s/GPU);NVFP4 先加入验证单元格后整体退回 Experimental;最后一个 commit 把准确率指标切换为 AIME26 并补录 NVFP4 分数。这些决策只体现在数据和提交信息中,没有独立的运行时代码逻辑。
文件 模块 状态 重要度
docs/src/snippets/configs/zai-org/glm-5.3.jsx 文档配置 added 7.81
docs/src/snippets/configs/zai-org/glm-5.3-benchmarks.jsx 基准数据 added 7.31
docs/cookbook/autoregressive/GLM/GLM-5.3.mdx 文档页面 added 6.02
docs/docs.json 导航配置 modified 2.36

关键源码片段

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

GLM-5.3 部署矩阵的唯一数据源,1028 行新增配置定义硬件、量化、checkpoint 映射、复现命令和 Playground knob,是整个 cookbook 的核心契约。

// GLM-5.3 部署配置的核心契约(docs/src/snippets/configs/zai-org/glm-5.3.jsx)
// Mintlify 在 hydration 时会对该字面量重新求值,因此不能用 spread / 调用 / IIFE;
// 单元格是反规范化的,--nnodes、--node-rank、--host、--port 等由引擎注入。
export const config = {
  modelName: 'GLM-5.3',  // 硬件矩阵覆盖 NVIDIA H200/B200/GB300/B300 与 AMD MI300X/MI325X/MI355X。
  supportedHardware: ['h200', 'b200', 'gb300', 'b300', 'mi355x', 'mi325x', 'mi300x'],  // 官方只发布单一 checkpoint,不做 size/mode 拆分;
  // FP8 与 BF16 走官方仓库,NVFP4 来自第三方 RadixArk,标记为 Experimental。
  variants: [{ id: 'default', label: 'GLM-5.3', subtitle: 'MoE · DSA' }],
  quantizations: [
    { id: 'fp8', label: 'FP8' },
    { id: 'bf16', label: 'BF16' },
    { id: 'nvfp4', label: 'NVFP4 (Experimental)' },
  ],
  modelNames: {
    'default|fp8': 'zai-org/GLM-5.3',
    'default|bf16': 'zai-org/GLM-5.3-BF16',
    'default|nvfp4': 'RadixArk/GLM-5.3-NVFP4',
  },  // 命令占位符:页面按用户选择的单元格替换后生成可执行命令。
  placeholders: {
    HOST_IP: { target: 'command', label: 'Bind host', default: '0.0.0.0' },
    PORT: { target: 'command', label: 'Bind port', default: '30000' },
    NODE0_IP: { target: 'command', label: 'Head node IP', default: '<node0-ip>' },
    NODE_RANK: { target: 'command', label: 'This node rank', default: '<node-rank>' },
    CURL_HOST: { target: 'curl', label: 'Server host', default: 'localhost' },
    CURL_PORT: { target: 'curl', label: 'Server port', default: '30000' },
  },  // Playground 中 Attention Parallelism 卡片的 DSA CP knob:
  // DSA prefill CP(context parallelism)在 H200/B200/GB300/B300 上可用,
  // 但 ROCm 上该路径尚未验证,因此对 MI300X/MI325X/MI355X 直接禁用。
  playgroundFeatures: {
    attention: {
      knobs: [
        { id: 'tp', label: 'TP', values: [null, 4, 8] },
        { id: 'cp', label: 'CP (DSA prefill)', values: [null, { value: 1, label: 'Off' }, 4, 8],
          disable: [
            { when: { hw: ['mi355x', 'mi325x', 'mi300x'] },
              reason: 'ROCm DSA-CP 路径尚未在 AMD 上验证,保持 CP 关闭。' },
            // 另有针对 multi-2 节点的 disable 条件(reason 原文不可见,省略)。
          ] },
      ],
    },
  },
};
docs/src/snippets/configs/zai-org/glm-5.3-benchmarks.jsx core-logic

存放 GLM-5.3 的全部 benchmark 条目,用 match 元组绑定部署单元格,并承载 verified/experimental/pending 三级数据标注;包含 SGLANG_SIMULATE_ACC_LEN 机制验证说明。

// GLM-5.3 benchmark 数据源(docs/src/snippets/configs/zai-org/glm-5.3-benchmarks.jsx)
// 每个条目用与 glm-5.3.jsx 部署单元格一致的 match 元组作键;
// 只有 match 而没有数据体的条目渲染为 pending,补上实测结果后才对外展示。
export const benchmarks = [
  {
    // H200 + FP8 + Low-Latency + 单节点:对应聊天场景的默认单元格。
    match: { hw: 'h200', variant: 'default', quant: 'fp8', strategy: 'low-latency', nodes: 'single' },
    sglang_version: 'main @ 20a491d1d311', // 数据与具体 commit 绑定,版本更新后需复测。
    accuracy: { gsm8k_pct: 97.42 },
    speed: [
      { workload: { dataset: 'random', isl: 8192, osl: 1024, max_concurrency: 1 },
        ttft_ms: 780, tpot_ms: 3.71, tokens_per_sec_per_gpu: 252 },
      { workload: { dataset: 'random', isl: 8192, osl: 1024, max_concurrency: 16 },
        ttft_ms: 5499, tpot_ms: 14.20, tokens_per_sec_per_gpu: 920 },
    ],
    notes:
      '速度数据在 SGLANG_SIMULATE_ACC_LEN=3.5 下用 EAGLE 5/1/6 draft 测得;' +
      '固定接受长度只验证吞吐机制,不能作为正确性证据,准确率数据不携带该环境变量。',
  },
  // 其余已验证单元格与 NVFP4 experimental / pending 项结构相同,依此类推。
];

评论区精华

Mintlify 文档预览部署 documentation

mintlify[bot] 自动发布预览:lmsysorg-codex-glm-5-3-cookbook.mintlify.site/cookbook/autoregressive/GLM/GLM-5.3,状态 🟢 Ready,并提示可开启 Workflows 自动更新。

结论:预览就绪供人工核对;PR 无人工 review 评论,由 JustinTong0323 直接 APPROVED。 · 已解决

风险与影响

  • 数据时效性:benchmarks 全部绑定 sglang main @ 20a491d1d311,SGLang 调度或内核变更后这些数字会失效,文档没有过期提示机制。
  • 误用风险SGLANG_SIMULATE_ACC_LEN 固定接受长度产生的速度数字被作者明确标注“不是正确性证据”,但普通用户可能当作真实性能对比。
  • 第三方权重:NVFP4 指向 RadixArk/GLM-5.3-NVFP4,非官方发布,一旦上游仓库改名或删除则文档断链。
  • 文档一致性:PR body 与实际内容矛盾(声称移除 NVFP4 与实测数据,实际保留),会让后续维护者与自动生成 changelog 的工具困惑。
  • 测试空白:纯文档变更无自动化测试,只有 mint 校验与 broken-links;CI Extra 状态为失败,具体原因在提供材料中不可见。
  • 对用户:获得可直接套用的 GLM-5.3 多硬件部署矩阵与“未验证 / Experimental / 已验证”三态性能数据,降低选型和调参成本。
  • 对文档体系:确立 cookbook 的 benchmark 数据标注规范(match 键对齐、pending/verified 状态、环境变量说明),与 Hy4-Preview cookbook 的 snippet 模式一致。
  • 对团队:四人协同的 12-commit 演进显示该 PR 实际承担了官方发布后的部署校准工作,后续需 follow-up 维护数据时效性。
  • 影响范围:仅 docs 域,不触及 SGLang 运行时代码,但将影响所有查阅 GLM-5.3 部署文档的用户。
PR body 与合并内容不一致 benchmark 绑定固定 commit 第三方 NVFP4 权重 模拟接受长度易误读 无自动化测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论