Prhub

#34099 docs: clarify K3 VLM feature transport

原始 PR 作者 mickqian 合并时间 2026-08-08 19:23 文件变更 2 提交数 1 评论 0 代码增减 +51 / -33

执行摘要

K3 VLM 传输文档:命令选择器按拓扑显示 Auto 解析

PR body 指出,此前 B300 示例可能被误读为普适最优,且模糊了 processor-to-scheduler 特征传输与 EPD、PD 传输路径(原文:blurred processor-to-scheduler feature transport with EPD and PD transfer paths)。因此需要文档明确 Auto 的拓扑感知解析逻辑,并区分不同传输路径。

值得 K3 部署用户与文档维护者阅读。重点关注 mmTransport 维度的分支逻辑是否与实现侧自动选择保持同步,以及命令选择器缺少单元测试的问题;后续可以有选择地为该 snippet 补充渲染测试。

讨论亮点

该 PR 没有 review 评论与讨论线程。决策均来自 PR body:作者说明了动机(B300 示例易被误读、三条传输路径混淆),并给出验证方式 node docs/scripts/check_cookbook_configs.mjsgit diff --check 与 pre-commit 钩子。

实现拆解

  1. docs/src/snippets/configs/moonshotai/kimi-k3.jsxoverlayDims 中新增 mmTransport 维度:定义 Auto (topology-aware)CPU (save HBM) 两个选项,并在 Autohints 回调中按 pdModehw 分支返回解析结果(PD 场景走 CPU、B300 走 CUDA IPC、GB200/GB300 在有 IMEX 时走 CUDA VMM,其余拓扑走 CPU)。这样命令选择器能把 --mm-feature-transport 的解析过程直接展示给读者,而不是静态写死一条命令。
  2. docs/cookbook/autoregressive/Moonshotai/Kimi-K3.mdx 中删除 “Recommended high-speed VLM” 静态推荐命令及其逐条注释,改为 “VLM feature transport” 小节,用表格列出各拓扑下 Auto 的实际传输路径与 CPU 选项效果;同时把 “VLM compatibility” 表格中 MM feature transport 行改为 “Processor-to-scheduler features only”,明确 EPD 与 PD 各有独立传输后端。
  3. 精简 Low-HBM VLM 示例命令:移除 SGLANG_VIT_ENABLE_CUDA_GRAPH=0 冗余默认项与 --mm-processor-worker-num 2--mm-io-worker-num 16 默认 worker 标志,保留 --mm-feature-transport cpu 以示 HBM 取舍。
  4. 验证配套:无新增自动化测试;作者在 PR body 中声明已执行 node docs/scripts/check_cookbook_configs.mjsgit diff --check 与 pre-commit 钩子。
文件 模块 状态 重要度
docs/src/snippets/configs/moonshotai/kimi-k3.jsx 命令生成 modified 5.93
docs/cookbook/autoregressive/Moonshotai/Kimi-K3.mdx 文档正文 modified 3.68

关键符号

mmTransport 配置项 Auto.hints 回调 CPU.flags 注入

关键源码片段

docs/src/snippets/configs/moonshotai/kimi-k3.jsx core-logic

命令选择器核心改动:新增 mmTransport 覆盖维度,按拓扑返回 Auto 解析 hints,并提供 CPU 选项注入 --mm-feature-transport cpu。这是本 PR 信息展示的核心载体。

// overlayDims 中新增的 VLM Transport 维度:让命令选择器显式展示
// `--mm-feature-transport` 在不同拓扑下的解析结果,避免读者误以为
// B300 示例是普适最优配置。
{
  id: 'mmTransport',
  title: 'VLM Transport',
  default: 'auto',
  // decode 节点不处理视觉特征,因此该维度仅对 Unified / Prefill 显示
  showWhen: (s) => s.pdMode !== 'decode',
  options: [
    {
      id: 'auto',
      label: 'Auto (topology-aware)',
      // hints 按拓扑返回解析说明:目的是澄清 processor 到 scheduler
      // 的特征传输路径,并把它与 EPD / PD 的 KV/KDA 传输区分开
      hints: (s) => {
        if (s.pdMode !== 'unified') {
          return [
            'VLM transport: Auto -> CPU for PD; KV/KDA transfer is separate.',
          ];
        }
        if (s.hw === 'b300') {
          return [
            'VLM transport: Auto -> CUDA IPC (up to 1 GiB HBM; CPU fallback when full).',
          ];
        }
        if (['gb200', 'gb300'].includes(s.hw)) {
          return [
            'VLM transport: Auto -> CUDA VMM with IMEX, otherwise CPU (up to 1 GiB HBM).',
          ];
        }
        return ['VLM transport: Auto -> CPU on this topology.'];
      },
    },
    {
      id: 'cpu',
      label: 'CPU (save HBM)',
      // 显式 CPU 选项:保留 HBM 余量,等价于 --mm-feature-transport cpu
      flags: ['--mm-feature-transport cpu'],
      hints: ['VLM transport: CPU; no GPU feature pool.'],
    },
  ],
},

评论区精华

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

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

风险与影响

文档与实现一致性:mmTransport 的 Auto 分支(CUDA IPC、CUDA VMM、CPU)必须与实现侧自动选择逻辑保持同步,否则文档会误导部署,当前实现逻辑来自 #33936。命令生成回归:新增 overlay dimension 可能改变命令选择器其他维度的组合渲染,且 jsx 无单元测试覆盖,回归风险主要在展示层。用户习惯:移除静态推荐命令后,部分用户可能找不到快速启动命令,但表格与 picker 已提供等价信息。运行时无影响,风险集中在文档与展示层。

影响范围限于 K3 cookbook 读者与命令选择器使用者:文档更准确地反映拓扑感知行为,减少误配置;对运行时无影响。维护上,mmTransport 维度将 K3 的特征传输说明集中到命令选择器,未来新增拓扑或 IMEX 行为变化时需要同步维护 hints 分支。

文档与实现一致性 命令生成无测试覆盖 推荐命令移除影响用户体验

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论