Prhub

#30201 cookbook: add Hunyuan 3 (Hy3) Day-0 page

原始 PR 作者 JustinTong0323 合并时间 2026-07-06 13:30 文件变更 6 提交数 12 评论 9 代码增减 +944 / -2

执行摘要

新增 Hunyuan 3 (Hy3) Day-0 cookbook 配置与部署文档

便于用户快速部署 Hy3 模型,提供已验证的启动命令和调优参数。Hy3 是腾讯最新发布的约 295B/21B 激活参数的 MoE 模型,cookbook 通过配置模板统一了多硬件、多策略的部署体验。PR body 提到 'What Day-0 cookbook page for Hunyuan 3 (Hy3) on the config-driven template'。

该 PR 主要涉及文档编写,适合作为 SGLang cookbook 配置模板的参考样例。值得关注其基于 JSX 的配置驱动架构,以及如何通过共享组件实现多硬件策略覆盖。

讨论亮点
  • JSX 表格:reviewer zijiexia 要求将 Markdown 表格改为 JSX 表格以改善渲染,提交者遵照修改。
  • GB200 TP 缩放:zijiexia 指出 GB200 (192GB) 的 TP 值似乎使用了 B300/GB300 的更大值,可能无法容纳模型。提交者解释模型为 300B 参数量,所以当前 TP 配置可接受。
  • 模型名称:zijiexia 确认模型仓库是 tencent/Hy3 而非 tencent/Hy3-preview,提交者已在后续提交中更正。
  • 基准位置:reviewer 建议将准确率/速度数据移到部署卡内的 Benchmark 区域,避免重复的 §4 章节,提交者删除冗余 §4。

实现拆解

  1. 创建模型配置 (docs_new/src/snippets/configs/tencent/hy3.jsx):定义支持硬件、变体、量化、策略、模型名、命令占位符、基准测试命令、Docker 镜像等。所有字段遵循共享的 _deployment.jsx_playground.jsx 约定。
  2. 创建基准数据 (docs_new/src/snippets/configs/tencent/hy3-benchmarks.jsx):为每种硬件/量化/策略组合提供 GSM8K 准确率数据(H200 BF16 已验证,其余未验证)。
  3. 创建主页面 (docs_new/cookbook/autoregressive/Tencent/Hy3.mdx):使用 DeploymentPlayground 组件嵌入配置和基准,提供安装说明、硬件能力说明和参数解析器提示。
  4. 更新导航 (docs_new/docs.json):在 Tencent 分组下添加 cookbook/autoregressive/Tencent/Hy3 页面,位于 Hunyuan3-Preview 之前。
  5. 更新入口与标签:修改 docs_new/cookbook/autoregressive/intro.mdx 中的 Tencent 卡片链接指向 Hy3;移除 Hunyuan3-Preview.mdxtag: NEW 元数据。
文件 模块 状态 重要度
docs_new/src/snippets/configs/tencent/hy3.jsx 配置模板 added 7.52
docs_new/src/snippets/configs/tencent/hy3-benchmarks.jsx 基准数据 added 5.73
docs_new/cookbook/autoregressive/Tencent/Hy3.mdx 文档页面 added 6.02

关键源码片段

docs_new/src/snippets/configs/tencent/hy3.jsx core-logic

核心配置文件,定义模型名称、硬件支持、变体、量化、策略、命令占位符、基准命令等,是页面动态生成的基础。

// hy3.jsx — Hy3 cookbook 配置,驱动 _deployment.jsx 和 _playground.jsx
// 一份配置同时支持所有硬件、量化、策略组合,无需重复编写页面。export const config = {
  modelName: "Hy3",
  supportedHardware: ["h200", "b200", "b300", "gb200", "gb300"],  // 变体与量化分离,BF16 和 FP8 归为量化层级
  variants: [{ id: "default", label: "Default" }],
  quantizations: [
    { id: "bf16", label: "BF16" },
    { id: "fp8", label: "FP8" },
  ],  // 部署策略:低延迟 (EAGLE MTP) vs 均衡 (chunked prefill)
  strategies: [
    { id: "low-latency", label: "Low-Latency" },
    { id: "balanced", label: "Balanced" },
  ],  // 模型名映射根据变体 + 量化确定 HuggingFace ID
  modelNames: {
    "default|bf16": "tencent/Hy3",
    "default|fp8": "tencent/Hy3-FP8",
  },  // 模板占位符,被 _deployment.jsx 用于生成实际命令
  placeholders: {
    HOST_IP: { target: "command", label: "Bind host", default: "0.0.0.0" },
    PORT: { target: "command", label: "Bind port", default: "30000" },
    CURL_HOST: { target: "curl", label: "Server host", default: "localhost" },
    CURL_PORT: { target: "curl", label: "Server port", default: "30000" },
  },  // 基准命令,会被注入到 Deployment 卡的 Benchmark 模态框中
  benchmarkCommands: {
    speed: `python3 -m sglang.bench_serving --backend sglang --host {{CURL_HOST}} --port {{CURL_PORT}} --model {{MODEL_NAME}} ...`,
    accuracy: {
      gsm8k_pct: `sgl-eval run gsm8k --base-url http://{{CURL_HOST}}:{{CURL_PORT}}/v1 --num-threads 32`,
      aime26_pct: `sgl-eval run aime26 --base-url http://{{CURL_HOST}}:{{CURL_PORT}}/v1 --model {{MODEL_NAME}} ...`,
    },
  },  // 多节点提示(仅 GB200)
  multiNodeHints: {
    gb200: [
      "GLOO_SOCKET_IFNAME=<your-nic>",
      "NVSHMEM_ENABLE_NIC_PE_MAPPING=1",
      "NVSHMEM_HCA_LIST=<your-hca-list>",
    ],
  },  // Docker 镜像使用 dev 标签,内含后缀感知 parser
  dockerImages: {
    h200: "lmsysorg/sglang:dev",
    b200: "lmsysorg/sglang:dev",
    b300: "lmsysorg/sglang:dev",
    gb200: "lmsysorg/sglang:dev",
    gb300: "lmsysorg/sglang:dev",
  },
};
docs_new/src/snippets/configs/tencent/hy3-benchmarks.jsx core-logic

提供各硬件 / 配置组合的 GSM8K 准确率数据,用于 Deployment 卡中的 Benchmark 模态框展示。H200 BF16 单元格已验证,其余留作占位。

// hy3-benchmarks.jsx — 各硬件配置的 GSM8K 准确率数据
// 键 match 与 hy3.jsx 中的下拉选项一一对应
// H200 BF16 两行已验证,其余(FP8 及 Blackwell)为 Day-0 未验证占位
export const benchmarks = [
  // H200 BF16 已验证
  { match: { hw: "h200", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" }, gsm8k_pct: 95.75 },
  { match: { hw: "h200", variant: "default", quant: "bf16", strategy: "balanced", nodes: "single" }, gsm8k_pct: 95.83 },  // BF16 其他硬件未验证,留空对象
  { match: { hw: "b200", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "b200", variant: "default", quant: "bf16", strategy: "balanced", nodes: "single" } },
  { match: { hw: "b300", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "b300", variant: "default", quant: "bf16", strategy: "balanced", nodes: "single" } },
  { match: { hw: "gb300", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "gb300", variant: "default", quant: "bf16", strategy: "balanced", nodes: "single" } },
  { match: { hw: "gb200", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "gb200", variant: "default", quant: "bf16", strategy: "balanced", nodes: "single" } },  // FP8 所有单元格均未验证
  { match: { hw: "h200", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "h200", variant: "default", quant: "fp8", strategy: "balanced", nodes: "single" } },
  { match: { hw: "b200", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "b200", variant: "default", quant: "fp8", strategy: "balanced", nodes: "single" } },
  { match: { hw: "b300", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "b300", variant: "default", quant: "fp8", strategy: "balanced", nodes: "single" } },
  { match: { hw: "gb300", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "gb300", variant: "default", quant: "fp8", strategy: "balanced", nodes: "single" } },
  { match: { hw: "gb200", variant: "default", quant: "fp8", strategy: "low-latency", nodes: "single" } },
  { match: { hw: "gb200", variant: "default", quant: "fp8", strategy: "balanced", nodes: "single" } },
];

评论区精华

Markdown 表格改为 JSX 表格 设计

Reviewer zijiexia 在 Hy3.mdx 中的两处 Markdown 表格评论,要求使用 JSX 表格以获得更好的渲染效果。

结论:作者在 105063d5 提交中将两处表格转换为 `<table>` JSX,并参考了 MiniMax-M2 的写法。 · 已解决

GB200 TP 缩放问题 正确性

zijiexia 指出 GB200(192GB)的 TP 值似乎与 B300/GB300(272GB)相同,可能导致模型无法装入显存。

结论:作者 JustinTong0323 回复模型为 300B 参数量,当前 TP 配置合适。后经进一步验证,确认 TP 值在后续提交中调整。 · 已解决

模型名称验证 question

zijiexia 询问模型仓库名是 tencent/Hy3 还是 tencent/Hy3-preview。

结论:作者确认应使用 tencent/Hy3,并在后续提交中更正 modelNames。 · 已解决

基准数据位置建议 设计

zijiexia 建议将准确率 / 速度数据移到 Deployment 卡内的 Benchmark 区域,避免独立的 §4 章节,并参考 MiniMax M3。

结论:作者在 105063d5 提交中删除了 §4 基准测试章节,改为由 hy3.jsx 中的 benchmarkCommands 和 accuracyLabels 驱动。 · 已解决

风险与影响

文档变更本身不直接影响代码运行,但配置中的硬件参数(如 TP 值、Docker 镜像标签)若存在错误,可能导致用户部署失败。目前 FP8 单元格和 Blackwell 硬件单元格均未验证,用户可能遇到未记录的问题。部分命令依赖 lmsysorg/sglang:dev 镜像,若正式发布后切换至 :latest 可能产生偏差。

面向需要部署 Tencent Hy3 的用户,提供官方推荐的一站式配置和命令生成,降低上手成本。影响范围适中,主要影响文档读者。团队需在后续版本中验证并更新未完成的单元格。

FP8 单元格未验证 Blackwell 单元格未验证 Docker 镜像标签依赖 dev GB200 TP 配置可能仍需确认

关联 Issue

#29920 feat(parser): resolve special-token suffix at runtime for compatibility

完整报告

参与讨论