Prhub

#36246 [AMD] Add Kimi-K2.7-Code-MXFP4 to cookbook

原始 PR 作者 Emmanuel0612 合并时间 2026-08-25 17:37 文件变更 2 提交数 7 评论 0 代码增减 +204 / -1

执行摘要

cookbook 新增 Kimi-K2.7-Code MXFP4 部署指南与命令生成器

PR body 指出,SGLang 已在 AMD MI350X/MI355X 上验证 Kimi-K2.7-Code 的 MXFP4 检查点,但 cookbook 页面只展示了 INT4 检查点,用户没有现成入口。本次变更把 amd/Kimi-K2.7-Code-MXFP4 的部署命令、配置要点和实测基准补进文档,让用户可以直接复制使用。

值得精读 jsx 中 getDynamicItems 与 condition 的联动写法,以及“文档命令与实测运行对齐”的迭代过程;有 MI350X/MI355X 部署需求者可直接采用页面命令。整体为常规文档 PR,不必深入代码审查。

讨论亮点

两位维护者 sogalin 与 1am9trash 均直接批准(LGTM),没有实质 review 意见。提交历史反映出作者在合并前反复校准文档:将 checkpoint 仓库 id 从 moonshotai 修正为 amd,补充验证镜像版本,并将生成命令升级为与 launch_cookbook.sh 完全一致的全量版本。

实现拆解

  1. 在 docs/src/snippets/autoregressive/kimi-k27-code-deployment.jsx 的 options 中新增 quantization 选项:通过 getDynamicItems 依据当前硬件动态返回 INT4/MXFP4,MI350X/MI355X 默认 MXFP4,其余硬件置灰并附 disabledReason。
  2. 为 reasoning、toolcall、dpattention 三个选项增加 condition 条件,MXFP4 模式下隐藏这些控件,因为解析器与 DP attention 在 MXFP4 检查点上自动检测,避免用户配置冲突。
  3. 在 generateCommand 中新增 isMXFP4 分支:直接返回验证过的完整命令,包含 11 个 AITER/ROCm 环境变量、--tp 4、--attention-backend aiter、--mem-fraction-static 0.90、--kv-cache-dtype fp8_e4m3、--disable-radix-cache、--enable-aiter-allreduce-fusion 等;非 MXFP4 路径保持不变。
  4. 在 Kimi-K2.7-Code.mdx 中把 MXFP4 检查点加入 Available Models,并在 Configuration Tips 中补充支持硬件、TP=4、镜像版本、自动检测量化等说明;新增 MXFP4 部署命令示例。
  5. 新增 5.2 MXFP4 Benchmark 小节(GSM8K 精度 + bench_serving 延迟),并重排章节使官方 Model Card 数据在前。无测试或配置文件改动。
文件 模块 状态 重要度
docs/src/snippets/autoregressive/kimi-k27-code-deployment.jsx 命令生成器 modified 6.03
docs/cookbook/autoregressive/Moonshotai/Kimi-K2.7-Code.mdx 部署文档 modified 4.09

关键符号

KimiK27CodeDeployment generateCommand getDynamicItems

关键源码片段

docs/src/snippets/autoregressive/kimi-k27-code-deployment.jsx core-logic

交互式命令生成器的核心改动:新增 Quantization 维度与 MXFP4 输出分支,是本次文档功能的主要实现载体,直接影响用户复制到的命令。

export const KimiK27CodeDeployment = () => {
  // 新增 Quantization 维度:根据所选硬件动态决定 INT4 / MXFP4 是否可用
  const options = {
    quantization: {
      name: 'quantization',
      title: 'Quantization',
      getDynamicItems: (values) => {
        // 只有 MI350X / MI355X 允许 MXFP4,其他硬件默认 INT4 并置灰 MXFP4
        const isMXFP4 = ['mi350x', 'mi355x'].includes(values.hardware);
        return [
          { id: 'int4', label: 'INT4', subtitle: 'Base checkpoint', default: !isMXFP4 },
          {
            id: 'mxfp4',
            label: 'MXFP4',
            subtitle: 'AMD FP4',
            default: isMXFP4,
            disabled: !isMXFP4,
            disabledReason: !isMXFP4 ? 'MXFP4 only on AMD MI350X/MI355X' : '',
          },
        ];
      },
    },
    // MXFP4 模式下解析器与 DP attention 均自动检测,故在 UI 中隐藏对应选项
    reasoning: { condition: (values) => values.quantization !== 'mxfp4' },
    toolcall: { condition: (values) => values.quantization !== 'mxfp4' },
    dpattention: { condition: (values) => values.quantization !== 'mxfp4' },
  };  const generateCommand = () => {
    const { hardware, quantization } = values;
    // MXFP4 走独立分支:直接返回与 launch_cookbook.sh 对齐的完整验证命令
    if (quantization === 'mxfp4') {
      const mxfp4Env = [
        'SGLANG_USE_AITER=1',
        'HIP_FORCE_DEV_KERNARG=1',
        'SGLANG_EXPERT_PARALLEL_SIZE=1',
        'SGLANG_USE_DYNAMIC_MXFP4_LINEAR=0',
        'TORCH_BLAS_PREFER_HIPBLASLT=1',
        'TENSILE_STREAMK_DYNAMIC_GRID=6',
        'AITER_QUICK_REDUCE_QUANTIZATION=INT4',
        'AITER_USE_FLYDSL_MOE_SORTING=1',
        'AITER_AR_1STAGE_MAX_KB=512',
        'AITER_MXFP4_INTERMEDIATE=1',
        'ROCM_QUICK_REDUCE_QUANTIZATION=INT4',
      ].join(' \\n');
      return (
        mxfp4Env + ' \\n' +
        'sglang serve \\n' +
        ' --model-path amd/Kimi-K2.7-Code-MXFP4 \\n' +
        ' --tp 4 \\n' +
        ' --trust-remote-code \\n' +
        ' --attention-backend aiter \\n' +
        ' --mem-fraction-static 0.90 \\n' +
        ' --kv-cache-dtype fp8_e4m3 \\n' +
        ' --disable-radix-cache \\n' +
        ' --enable-aiter-allreduce-fusion \\n' +
        ' --host 0.0.0.0 \\n' +
        ' --port 30000'
      );
    }
    // 非 MXFP4 分支沿用原逻辑,构建带 --reasoning-parser 等的命令
  };
};

评论区精华

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

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

风险与影响

  • 命令参数硬编码:MXFP4 分支把 11 个环境变量与启动参数写死,若 SGLang 或 ROCm 侧参数改名或默认值变化,文档会过期。
  • 参数不一致风险:PR body 中的验证命令使用 --mem-fraction-static 0.765,而最终合并代码与 mdx 为 0.90,两处口径不一致,读者可能困惑。
  • FP8 KV cache 精度权衡:mdx 已注明精度取舍,但默认开启可能影响精度敏感用户。
  • UI 依赖:MXFP4 会隐藏 parser/dpattention 选项,若用户通过其他途径绕过 UI 设置,生成的命令可能与预期不符。

影响 AMD MI350X/MI355X 部署用户,提供开箱即用的 MXFP4 命令;对运行时零影响;与 Kimi-K2.6 页面 NVFP4 交互模式保持一致,降低后续维护复杂度。

文档变更无测试覆盖 mem-fraction-static 正文与代码不一致 (0.765 vs 0.90) 生成命令携大量硬编码环境变量

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论