Prhub

#27714 [Docs] Add Kimi-K2.6 NVFP4 and update Kimi-K2.5 cookbook guidance

原始 PR 作者 mmangkad 合并时间 2026-06-11 01:24 文件变更 4 提交数 3 评论 9 代码增减 +198 / -38

执行摘要

为 Kimi-K2.6 添加 NVFP4 部署指南,更新 K2.5 文档

随着 NVIDIA Blackwell 架构发布 NVFP4 量化模型 (nvidia/Kimi-K2.6-NVFP4),需要为 Kimi-K2.6 提供官方部署指导;同时修正 K2.5 文档中过时的硬件引用 (B200→B300)、移除不再需要的 spec v2 环境变量 (该特性已默认启用),并统一草稿模型名称 (EAGLE3→EAGLE3 MLA) 以匹配最新模型仓库。

建议部署或运维 Moonshot AI Kimi 系列模型的团队仔细阅读本 PR 中的命令生成逻辑,特别是条件渲染和动态选项的设计,以及硬件切换时的状态重置策略。对于文档维护者,值得关注如何在交互式组件中处理硬件切换时的状态一致性。该 PR 本身文档清晰,可直接参考用于部署。

讨论亮点

推测解码草稿模型选择:b8zhong 询问是否应使用 EAGLE3.1 checkpoint,作者 mmangkad 回应 K2.5 尚无 EAGLE3.1,保持使用 lightseekorg/kimi-k2.5-eagle3-mla,b8zhong 认可。

Speculative 条件渲染漏洞:zijiexia 指出 useEffect 仅处理 getDynamicItems 变更,未检查 option.condition,导致 AMD 硬件上 speculative 选项仍可交互并生成错误命令。作者 mmangkad 在 generateCommand 中添加额外守卫检查,并在第三次提交中修复硬件切换时残留状态 (从非 AMD 切到 AMD 时自动重置 speculative 为 disabled)。

实现拆解

  1. 重构 Kimi-K2.6 部署命令生成器 (kimi-k26-deployment.jsx):移除 B200/GB200 硬件选项,新增量化动态选项(INT4 或 NVFP4,NVFP4 仅 Blackwell 可选),新增推测解码选项(带 condition 渲染,仅非 AMD 硬件显示),并添加 useEffect 监听硬件变化以重置失效选项,同时在 generateCommand 中增加双重守卫检查。
  2. 同步更新 Kimi-K2.5 部署命令生成器 (kimi-k25-deployment.jsx):添加 GB300 硬件选项 (tp=4),将 NVFP4 支持扩展到 GB300,更新推测解码条件包含 GB300,移除所有 SGLANG_ENABLE_SPEC_V2=1 环境变量,并将草稿模型路径统一为 lightseekorg/kimi-k2.5-eagle3-mla
  3. 更新 Kimi-K2.6 MDX 文档:列出 NVFP4 checkpoint,添加 NVFP4 部署说明(命令、TP 配置),新增 4.2.5 推测解码小节,引用 NVIDIA 精度基准结果。
  4. 更新 Kimi-K2.5 MDX 文档:硬件列表增加 GB300,更新所有命令示例(移除 spec v2 环境变量,使用 EAGLE3 MLA 草稿模型,将 B200 引用改为 B300),在 NVFP4 命令后添加 GB300 tp=4 说明。
文件 模块 状态 重要度
docs_new/src/snippets/autoregressive/kimi-k26-deployment.jsx 部署命令生成器 modified 7.21
docs_new/src/snippets/autoregressive/kimi-k25-deployment.jsx 部署命令生成器 modified 6.35
docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.6.mdx 部署指南 modified 4.13
docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.5.mdx 部署指南 modified 3.39

关键符号

KimiK26Deployment KimiK25Deployment generateCommand getInitialState

关键源码片段

docs_new/src/snippets/autoregressive/kimi-k26-deployment.jsx core-logic

核心变更文件,重构部署命令生成器,添加量化动态选项、推测解码条件渲染和硬件切换状态重置逻辑

export const KimiK26Deployment = () => {
  // Config mirrors sgl-cookbook src/components/autoregressive/KimiK26ConfigGenerator/index.js.
  //
  // INT4: H200/B300: tp=8, GB300/AMD: tp=4
  // NVFP4: B300: tp=8, GB300: tp=4
  const options = {
    hardware: {
      name: 'hardware',
      title: 'Hardware Platform',
      items: [
        { id: 'h200', label: 'H200', default: true },
        { id: 'b300', label: 'B300', default: false },
        { id: 'gb300', label: 'GB300', default: false },
        // AMD options omitted for brevity
      ],
    },
    quantization: {
      name: 'quantization',
      title: 'Quantization',
      getDynamicItems: (values) => {
        const hw = values.hardware;
        const isBlackwell = ['b300', 'gb300'].includes(hw);
        return [
          { id: 'int4', label: 'INT4', subtitle: 'Base checkpoint', default: !isBlackwell },
          { id: 'nvfp4', label: 'NVFP4', subtitle: 'Blackwell FP4', default: isBlackwell, disabled: !isBlackwell, disabledReason: !isBlackwell ? 'NVFP4 only on NVIDIA Blackwell' : '' },
        ];
      },
    },
    speculative: {
      name: 'speculative',
      title: 'Speculative Decoding',
      // 仅在非 AMD 硬件上显示此选项(AMD 不支持 EAGLE3 MLA)
      condition: (values) => !['mi300x', 'mi325x', 'mi350x', 'mi355x'].includes(values.hardware),
      items: [
        { id: 'disabled', label: 'Disabled', default: true },
        { id: 'enabled', label: 'Enabled', default: false },
      ],
    },
    // 其他选项 (reasoning, toolcall, dpattention) 省略
  };  // 硬件切换时重置可能失效的选项
  useEffect(() => {
    setValues((prev) => {
      const next = { ...prev };
      for (const [key, option] of Object.entries(options)) {
        if (typeof option.condition === 'function' && !option.condition(next)) {
          // 当条件不满足时,将选项重置为默认可用值
          const items = resolveItems(option, next);
          const fallback = items.find((item) => item.default && !item.disabled) || items.find((item) => !item.disabled);
          if (fallback) next[key] = fallback.id;
          continue;
        }
        // 同时处理 getDynamicItems 变化 ( 此处省略 )
      }
      return next;
    });
  }, [values.hardware]);  const generateCommand = () => {
    const { hardware, quantization, speculative } = values;
    const isAMD = hardware.startsWith('mi');
    // 双重检查:即使选项 state 为 enabled,但硬件不满足时输出提示而非错误命令
    if (speculative === 'enabled' && isAMD) {
      return '# Speculative Decoding for Kimi-K2.6 is only supported on NVIDIA GPUs (H200/B300/GB300)';
    }
    // 继续生成命令 ...
  };
  // 其他逻辑 ...
};

评论区精华

推测解码草稿模型选择 (K2.5) question

b8zhong 询问是否应使用 EAGLE3.1 checkpoint,mmangkad 回应 K2.5 尚无 EAGLE3.1,保持使用 lightseekorg/kimi-k2.5-eagle3-mla

结论:保持使用 EAGLE3 MLA,b8zhong 认可 · 已解决

Speculative 条件渲染漏洞 正确性

zijiexia 指出 useEffect 未检查 condition 属性,导致 AMD 上 speculative 仍可启用

结论:mmangkad 添加额外守卫检查和状态重置逻辑修复 · 已解决

风险与影响

  1. 文档与代码逻辑同步风险:命令生成器包含条件逻辑,未来硬件支持或默认参数变化需同步更新两处文件 (.jsx 和 .mdx),否则可能导致用户获取过时命令。
  2. 硬件兼容性假设风险:NVFP4 仅对 Blackwell 架构有效,生成器已通过 disabled/condition 机制阻止,但用户手动复制命令可能忽略限制。
  3. 缺少测试覆盖:本次变更无测试文件,前端逻辑正确性依赖人工 review。

用户:Kimi-K2.6 用户可直接使用交互式生成器获得正确的 NVFP4 或 INT4 部署命令;K2.5 用户获得更新后的命令 (无需手动设置 spec v2 环境变量,支持 GB300)。降低了部署学习成本和出错概率。系统:无运行时变更,仅文档和前端代码片段。团队:合并者 b8zhong 和作者 mmangkad 共同 review,最终获 zijiexia 和 b8zhong 批准。

硬件兼容性假设 (NVFP4 仅 Blackwell) 缺少测试覆盖(无配套测试)

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论