Prhub

#28448 docs(cookbook): tune GLM-5.2 MTP to 5-1-6 and simplify launch flags

原始 PR 作者 JustinTong0323 合并时间 2026-06-17 01:18 文件变更 4 提交数 3 评论 1 代码增减 +36 / -54

执行摘要

GLM-5.2 MTP 调优至 5-1-6 并简化部署参数

GLM-5.2 的 MTP 头很强,在低并发下接受长度接近饱和(GB300 上约 6/6),因此更长的 draft 有明显收益(PR body)。同时,模型已在 transformers 5.8.1+ 中原生集成且权重公开,因此 --trust-remote-codeHF_TOKEN 不再需要,简化部署。

值得精读:本 PR 不仅更新了性能数据,更展示了如何通过共享组件条件渲染来简化模型配置。开发者可以学习 _deployment.jsx 中根据配置动态选择是否注入环境变量的模式,保持基础组件通用性的同时适应不同模型的需求。

讨论亮点

无实质性讨论,PR 被 Reviewer 快速批准。

实现拆解

  1. 调整 MTP 配置:在 glm-5.2.jsxspeculative.options 中,将 low-latency 的 id 从 mtp-314 改为 mtp-516,对应 flags 改为 --speculative-num-steps 5--speculative-num-draft-tokens 6;balanced 选项 mtp-112 增加 (balanced) 标签。同步更新所有 cell(h200/b200/gb300 low-latency)中的 flags。在 GLM-5.2.mdx 中更新 MTP 示例参数并添加调优指导。
  2. 简化启动标志:从所有 cell 的 flags 数组中移除 --trust-remote-code(因模型无需远程代码)。从 glm-5.2.jsxplaceholders 中移除 HF_TOKEN 条目。在共享渲染组件 _deployment.jsx 的 docker 命令生成处,将原本硬编码的 --env "HF_TOKEN={{HF_TOKEN}}" 替换为条件渲染:仅在 config.placeholders.HF_TOKEN 存在时添加该行,从而避免公开模型带 token。
  3. 更新基准数据:在 glm-5.2-benchmarks.jsx 中重新测量 H200、B200、GB300 在 low-latency 策略下的性能,更新 TTFT、TPOT、吞吐量数字,并添加注释说明相对 3-1-4 的改进百分比(例如 +31%/+15% throughput)。
  4. 补充文档:在 GLM-5.2.mdx 的配置提示中新增“DSA KV-cache 自动默认”段落,说明 Blackwell 自动选择 fp8_e4m3 而 Hopper 自动选择 bf16,因此无需指定 --kv-cache-dtype
文件 模块 状态 重要度
docs_new/src/snippets/configs/zai-org/glm-5.2.jsx 配置数据 modified 6.65
docs_new/src/snippets/configs/zai-org/glm-5.2-benchmarks.jsx 基准数据 modified 5.92
docs_new/src/snippets/_deployment.jsx 部署脚本 modified 4.9
docs_new/cookbook/autoregressive/GLM/GLM-5.2.mdx 使用指南 modified 2.89

关键符号

Deployment

关键源码片段

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

核心配置,调整 MTP 方案并简化标志

// ...
speculative: {
  options: [
    { id: "current", label: "Inherited from base" },
    { id: "off", label: "Off (greedy)" },
    // 低延迟方案:5 个推理步骤,6 个草稿 token
    { id: "mtp-516", label: "EAGLE / MTP 5-1-6 (low-latency)",
      flags: ["--speculative-algorithm EAGLE", "--speculative-num-steps 5",
              "--speculative-eagle-topk 1", "--speculative-num-draft-tokens 6"] },
    // 均衡方案:1 个推理步骤,2 个草稿 token
    { id: "mtp-112", label: "EAGLE / MTP 1-1-2 (balanced)",
      flags: ["--speculative-algorithm EAGLE", "--speculative-num-steps 1",
              "--speculative-eagle-topk 1", "--speculative-num-draft-tokens 2"] },
  ],
},
// ...
// H200 low-latency cell 示例 flags(去除了 --trust-remote-code 和 HF_TOKEN)
{
  match: { hw: "h200", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" },
  verified: true,
  env: [],
  flags: [
    "--model-path {{MODEL_NAME}}",
    "--tp 8",
    "--speculative-algorithm EAGLE",
    "--speculative-num-steps 5",
    "--speculative-eagle-topk 1",
    "--speculative-num-draft-tokens 6",
    "--mem-fraction-static 0.8",
    "--cuda-graph-max-bs 32",
    "--host {{HOST_IP}}",
    "--port {{PORT}}",
  ],
},
docs_new/src/snippets/_deployment.jsx core-logic

共享部署渲染组件,条件化 HF_TOKEN env 变量

// 从 config.placeholders 中检查是否声明了 HF_TOKEN 占位符
// 仅当存在时才注入 --env "HF_TOKEN=...",从而允许公开模型(如 GLM-5.2)免填 token
const dockerLines = [
  "docker run --gpus all",
  "  --shm-size 32g",
  multinode ? "  --network host" : `  -p ${servePort}:${servePort}`,
  "  -v ~/.cache/huggingface:/root/.cache/huggingface",
  // 关键变更:原本硬编码为 "--env \"HF_TOKEN={{HF_TOKEN}}\"" ,
  // 现在改为有条件添加
  ...(config.placeholders && config.placeholders.HF_TOKEN
    ? [`  --env "HF_TOKEN={{HF_TOKEN}}"`]
    : []),
  ...cellEnv.map((e) => `  --env ${e}`),
  "  --ipc=host",
  `  ${image}`,
  "  sglang serve",
  ...flags.map((f) => "    " + f),
];

评论区精华

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

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

风险与影响

主要风险来自共享组件 _deployment.jsx 的条件逻辑变更:如果其他模型配置未正确声明 placeholders.HF_TOKEN 但原本依赖其始终生成的 token 环境变量,则可能缺少 token 导致无法拉取门控模型。本次修改已确保回归无影响(PR body 说明 gated models unaffected),但仍需在使用该组件的所有模型配置中保持声明一致性。此外,MTP 参数 5-1-6 在低并发场景下表现更优,但高并发场景可能需要不同配置,文档已给出接受长度调优指导,降低用户误用风险。

正面影响:用户部署 GLM-5.2 时可获得更优的低延迟默认性能,且命令行更简洁;开发者可复用 _deployment.jsx 的条件渲染模式以支持公开/门控模型的差异化处理。影响范围限于 cookbook 读者和部署者,无系统层影响。

共享组件条件逻辑 依赖模型配置声明

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论