Prhub

#36808 [Cookbook] Hy4-Preview follow-ups: runtime-accurate recipes + released-model info

原始 PR 作者 zijiexia 合并时间 2026-08-28 15:19 文件变更 2 提交数 4 评论 0 代码增减 +42 / -59

执行摘要

校准 Hy4-Preview 部署配方,修正参数与后端配置

PR body 说明这是对 #36804(已合并)的跟进,目标是两类修复:一是让配方与 Hy4 支持分支的实际运行时解析保持一致,二是模型公开释出后更新页面内容。具体触发了三处运行时不匹配:DeepEP 后端会把 ep_size 重写为 tp_size,导致之前展示的 EP 拓扑实际不会发生;top-level reasoning_effort 只接受 OpenAI 档位,之前可复制的 no_think 示例会在请求校验时被拒绝;CUDA MXFP8 后端白名单排除 triton,HYV4 家族实际默认走 deep_gemm 路径。

值得快速精读的文档-运行时一致性案例。两个设计决策尤其值得借鉴:用运行时行为约束 UI 可选项(删除 EP 旋钮),以及用真实硬件验证驱动徽章状态而非凭估算标注。仓库维护者可复用该模式审计其他模型 cookbook,尤其是带 DeepEP、EP 参数和 reasoning_effort 示例的页面。

讨论亮点

该 PR 没有 review 评论,唯一审核人 wisclmy0611 直接 APPROVED。提交历史代替讨论记录了两次设计演进:

  • 第 1 个提交曾把 B200 MXFP8 固定为 flashinfer_trtllm,第 3 个提交基于运行时事实回退到 deep_gemm。提交信息解释:"_deepseek_family_overrides defaults both the MoE runner and FP8 GEMM to deep_gemm for HYV4 MXFP8 (the validated path) whenever JIT DeepGEMM is available — pinning flashinfer_trtllm forced an unvalidated backend"。
  • 第 2 个提交修复 no_think 传递路径,说明顶层 reasoning_effort 只接受 OpenAI 枚举档位,直接复制旧示例会在模板渲染前被拒绝。
    这些决策本质是作者自答的三个运行时约束:后端白名单、EP 重写规则、请求校验层行为。

实现拆解

  1. 模型信息校准:在 docs/src/snippets/configs/tencent/hy4-preview.jsx 头部注释与 docs/cookbook/autoregressive/Tencent/Hy4-Preview.mdx 的描述中,将参数量从约 760B/40B 修正为 770B 总参 / 49B 激活,补充 MTP draft 层规模(10B 参数、约 0.7B 激活)、Apache-2.0 许可证说明、官方 GitHub 链接,以及推荐采样参数 temperature=0.9、top_p=1.0(仅信息性,示例不硬编码)。
  2. 后端与并行配置对齐运行时:在 .jsx 的 MoE Parallelism 卡片中删除 EP 旋钮,DeepEP 标签改为 "DeepEP (EP = TP)";B200 MXFP8 经历提交 1 的 flashinfer_trtllm 尝试后,在提交 3 回退为 deep_gemm——因为 _deepseek_family_overrides 对 HYV4 MXFP8 家族默认同时将 MoE runner 和 FP8 GEMM 设为 deep_gemm,且 CUDA MXFP8 白名单排除 triton。
  3. 示例与文案修复:在 .mdx 中,Instant-mode 示例将 no_think 通过 extra_body={"chat_template_kwargs": ...} 传递,避免顶层字段拒绝;安装手风琴介绍句改为与 Docker-only 面板一致。
  4. 验证状态更新:8 个单节点配方(B300 MXFP8/BF16、B200 MXFP8、GB300 MXFP8,低延迟与高吞吐各一)在真实硬件上跑通,置为 verified: true;3 个 2 节点 BF16 配方保持 in-progress
  5. 配套验证:无新增单元测试;用 node docs/scripts/check_cookbook_configs.mjsmint validatemint broken-links 校验通过;常规 PR Test CI 绿,但 Extra CI 槽位标红,原因未在材料中说明。
文件 模块 状态 重要度
docs/src/snippets/configs/tencent/hy4-preview.jsx 页面配置 modified 6.71
docs/cookbook/autoregressive/Tencent/Hy4-Preview.mdx 部署文档 modified 3.96

关键符号

config

关键源码片段

docs/src/snippets/configs/tencent/hy4-preview.jsx core-logic

驱动 Deploy/Playground 面板的核心配置源文件。本次变更删除 EP 旋钮、将 DeepEP 标签改为 EP = TP、更新模型规模注释,并翻转 8 个单节点配方的验证状态,是运行时准确性修复的主要载体。

// ----- Card 2: "MoE Parallelism" -----
// 256 个 routed + 1 个 shared experts,top-8 sigmoid 路由。
// 配方在纯 TP 下运行 MoE:MXFP8 路径使用 deep_gemm runner(已验证的 HYV4 路径),
// DeepEP 仅作为实验性覆盖项。不提供 EP 旋钮:运行时对 a2a 类后端(如 DeepEP)
// 会把 ep_size 重写为 tp_size,暴露自由 EP 度数会展示一套实际永远不会运行的拓扑。
// 不提供 MegaMoE 选项——其融合路径未适配 Hy4 的 sigmoid 打分 bounded-SwiGLU experts。
moe: {
  backend: {
    options: [
      { id: null, label: "Inherited" },
      { id: "deepep", label: "DeepEP (EP = TP)", flags: ["--moe-a2a-backend deepep"] },
    ],
  },
},

评论区精华

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

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

风险与影响

  1. 配置与运行时强耦合.jsx 中的后端选择、EP 处理均依赖 HYV4 家族运行时行为;若 _deepseek_family_overrides 或 CUDA MXFP8 白名单后续变更,文档会静默过期。
  2. 依赖 JIT DeepGEMM 可用性deep_gemm 路径依赖 JIT DeepGEMM 编译可用,部分环境可能回退到其他后端,但文档固定了 deep_gemm。
  3. 示例依赖新接口chat_template_kwargs 传递 no_think 需要较新的 sglang 版本支持,旧版本上仍可能失败。
  4. 未验证区域:3 个 2 节点 BF16 配方仍未多机验证,徽章虽为 In Progress,但用户可能忽略。
  5. CI 信号不完整:PR Test (Extra) 槽位标红且未说明原因,虽然 PR 已合并,仍存在未闭环的检查项。

面向部署 Hy4-Preview 的用户:修正后的命令路径更贴近实际运行行为,能避免使用在请求校验或拓扑层面必然失败的配置;对文档团队:确立了“以运行时解析结果为准”的撰写与验证方式,可作为其他 cookbook 页面的审计模板;对整个文档体系,这标志着 Hy4 文档从“规划态”转入“发布态”,后续更多配方(2 节点 BF16、benchmark 卡片)预计将继续以此模式补充。

配置与运行时行为强耦合 依赖 JIT DeepGEMM 可用性 示例依赖新版本接口 Extra CI 失败未闭环 双节点配方未验证

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论