Prhub

#28437 docs(cookbook): add GLM-5.2 deployment cookbook

原始 PR 作者 JustinTong0323 合并时间 2026-06-16 21:49 文件变更 6 提交数 1 评论 4 代码增减 +970 / -2

执行摘要

新增 GLM-5.2 部署 cookbook 文档

用户需要一份针对 GLM-5.2 模型的详细部署指南,涵盖不同硬件和策略的启动命令以及基准性能数据,以简化部署过程并帮助选择配置。

该文档 PR 结构清晰,数据详实,建议合并。对于 B300 和 BF16 的推断数据,可在页面添加警告横幅说明未经验证。值得关注的设计决策是使用 --enable-dp-attention 实现单节点 DP+TP 共存,以及通过 Playground 组件提供可扩展的配置实验能力。

讨论亮点

代码审查机器人(gemini-code-assist[bot])提出了三点建议:

  1. 单节点 TP+DP 冲突(high 优先级):认为 --tp 8--dp 8 同时使用需要 64 GPU,实际会失败。作者回应解释这是 --enable-dp-attention 下的标准 DeepSeek 配置,实测通过。该问题已澄清,配置保持正确。
  2. b300 缺少 Docker 镜像(medium 优先级):建议添加 b300: "lmsysorg/sglang:latest" 以防止回退到开发镜像。作者未直接回复,但从最终代码看已包含。
  3. b300 禁用 Context Parallelism(medium 优先级):由于 Blackwell Ultra 的 rope 内核可能不支持 DSA CP,建议将 b300 加入 disable 列表。作者未回复,但最终代码已采纳。

实现拆解

  1. 新增面板配置文件 docs_new/src/snippets/configs/zai-org/glm-5.2.jsx:定义模型名称、支持的硬件、变体、量化、策略、多节点选项、命令模板、基准命令、准确率默认值、Docker 镜像和 Playground 功能(注意力并行、MoE 并行、解析器等)。
  2. 新增基准数据文件 docs_new/src/snippets/configs/zai-org/glm-5.2-benchmarks.jsx:为每个硬件(H200/B200/GB300)和策略组合提供实测的 speed(TTFT、TPOT、tokens_per_sec_per_gpu)数据,并附注调优说明。B300 数据为推断(标记 verified: false)。
  3. 新增文档页面 docs_new/cookbook/autoregressive/GLM/GLM-5.2.mdx:包含安装指引、Deployment 组件嵌入、Playground 实验区域、模型介绍(DSA、MoE 架构)、推荐推理和工具调用配置、DSA Context Parallelism 说明、HiCache 推荐。
  4. 注册页面到导航 docs_new/docs.json:在 GLM 分组中新增 GLM-5.2 条目,并调整排序使其位于首位。
  5. 更新入口链接 docs_new/cookbook/autoregressive/intro.mdx:将 GLM 卡片链接从 GLM-5.1 修改为 GLM-5.2;同时从 GLM-5.1.mdx 移除 tag: NEW 标记。
    没有测试、配置或部署配套改动;仅依赖 Mintlify 框架。
文件 模块 状态 重要度
docs_new/src/snippets/configs/zai-org/glm-5.2.jsx 面板配置 added 7.64
docs_new/src/snippets/configs/zai-org/glm-5.2-benchmarks.jsx 面板配置 added 7.09
docs_new/cookbook/autoregressive/GLM/GLM-5.2.mdx 部署文档 added 5.94
docs_new/docs.json 导航配置 modified 2.76

关键源码片段

docs_new/src/snippets/configs/zai-org/glm-5.2.jsx core-logic

核心配置文件,定义 GLM-5.2 的部署命令生成逻辑、支持硬件、策略、Docker 镜像、Playground 功能等所有交互元素。

// 单节点 8 GPU 下,--enable-dp-attention 使得 --tp 8 --dp 8 通过
// attention 层数据并行而其他层保持张量并行,实际无需 64 GPU。
export const config = {
  modelName: "GLM-5.2",
  supportedHardware: ["h200", "b200", "gb300", "b300"],
  quantizations: [
    { id: "fp8", label: "FP8" },
    { id: "bf16", label: "BF16" },
  ],
  strategies: [
    { id: "low-latency", label: "Low-Latency" },
    { id: "balanced", label: "Balanced" },
    { id: "high-throughput", label: "High-Throughput" },
  ],
  nodeOptions: [
    { id: "single", label: "Single Node" },
    { id: "multi-2", label: "Multi-Nodes" },
  ],
  // b300 已加入镜像映射,避免回退到 dev 镜像
  dockerImages: {
    h200: "lmsysorg/sglang:latest",
    b200: "lmsysorg/sglang:latest",
    gb300: "lmsysorg/sglang:latest",
    b300: "lmsysorg/sglang:latest",
  },
  // Playground 中禁用 b300 的 Context Parallelism,因 rope 内核未适配
  playgroundFeatures: {
    attention: {
      knobs: [{
        id: "cp",
        label: "CP (DSA prefill)",
        values: [null, 1, 2, 4, 8],
        disable: { hw: ["b200", "gb300", "b300"] },
        disableReason: "DSA prefill Context Parallel is verified on Hopper (H200); the Blackwell sm100 DSA-CP FP8 rope kernel is not yet adapted.",
      }],
    },
  },
};
docs_new/src/snippets/configs/zai-org/glm-5.2-benchmarks.jsx core-logic

包含每个硬件和策略组合的实测基准数据,是文档性能和准确度数据的来源。

// 每项包含 match 条件和对应版本、速度、准确度数据。
// 平衡策略使用了调优的 chunked-prefill(32768)和 max-running-requests 80。
export const benchmarks = [
  {
    match: { hw: "h200", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" },
    sglang_version: "0.5.13.post1",
    speed: [
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 1 },
        ttft_ms: 740, tpot_ms: 4.06, tokens_per_sec_per_gpu: 26 },
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 16 },
        ttft_ms: 5980, tpot_ms: 13.97, tokens_per_sec_per_gpu: 98 },
    ],
  },
  // ... 其他组合省略,B300 数据标注为推断
];
docs_new/docs.json configuration

文档导航配置文件,需要注册新页面并调整 GLM 分组顺序。

{
  "group": "GLM",
  "pages": [
    "cookbook/autoregressive/GLM/GLM-5.2", // 新增,置于首位
    "cookbook/autoregressive/GLM/GLM-5.1",
    // ... 其他 GLM 页面
  ]
}

评论区精华

单节点 TP8+DP8 的可行性 正确性

机器人认为 --tp 8 --dp 8 需要 64 GPU,会导致启动失败。作者解释这是 --enable-dp-attention 模式,attention 层数据并行,其余层张量并行,实际单节点 8 GPU 可用,且已通过实测验证。

结论:配置正确,无需修改。由于 --enable-dp-attention 的语义与传统 DP 不同,该用法合理。 · 已解决

b300 Docker 镜像缺失 设计

机器人指出 b300 被声明为支持硬件但未在 dockerImages 中映射,会导致回退到 dev 镜像。建议添加 `b300: "lmsysorg/sglang:latest"`。

结论:最终代码已添加 b300 镜像映射,建议已被采纳。 · 已解决

b300 应禁用 Context Parallelism 设计

机器人认为 B300 属于 Blackwell 家族,DSA CP 的 rope 内核可能尚未适配,建议在 disable 列表中增加 b300。最终代码已实现,b300 与 b200/gb300 一同被禁用。

结论:已采纳,b300 被加入 CP 禁用列表。 · 已解决

风险与影响

  1. 基准数据可靠性:B300 和 BF16 的数据为推断(verified: false),用户可能误认为已验证,需明确标注。
  2. 命令正确性--enable-dp-attention--tp/--dp 的组合在特定版本可能行为不一致,需与运行时对齐。
  3. Mintlify 依赖:配置文件中使用了 Mintlify 专用的 JSX 组件和 export const 语法,若文档构建环境变更可能失效。
  4. 硬件覆盖完整性:B300 的 Docker 镜像和 CP 禁用虽已添加,但未进行端到端测试,存在未发现的兼容性问题。
  1. 用户:获得 GLM-5.2 模型的完整部署指南,可直接生成启动命令并参考性能数据,降低部署复杂度。
  2. 开发团队:新增模型文档维护量小,但后续更新基准数据或修复推断配置时需要同步修改两个 JSX 文件。
  3. 系统:不影响运行时代码,仅文档变更,风险极低。影响程度仅限于文档使用者。
基准数据部分未验证(B300/BF16) 单节点 TP+DP 配置可能引起用户误解

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论