Prhub

#33820 Add Intern-S2-Mobius cookbook

原始 PR 作者 JustinTong0323 合并时间 2026-08-11 04:13 文件变更 6 提交数 8 评论 3 代码增减 +541 / -2

执行摘要

新增 Intern-S2-Mobius 配置驱动 cookbook 部署指南

PR body 说明这是 "a config-driven cookbook page for internlm/Intern-S2-Mobius"(Apache-2.0、Mobius-v0、35B 混合 GDN + full-attention 多模态模型,256K 上下文,内置 MTP/NEXTN 投机解码头)。模型支持已在 PR #33691 合入 main(2026-08-08),需要一份可复现的部署与性能基线文档,覆盖 Low-Latency(MTP NEXTN 3-1-4)与 High-Throughput(spec off)两种运行策略,并让用户能依据实测数据选择配方。

建议文档、DX 与模型部署方向的读者精读;值得关注的决策包括 cookbook 数据建模(反规范化 cells + verified 标记)、“示例输出必须 verbatim”的文档质量约定,以及 MTP/NEXTN 与高并发吞吐的实测对比对用户配方的直接指导意义。对普通内核/SRT 工程师价值有限,可略读。

讨论亮点

官方 review 仅一条 APPROVED(zijiexia),无文字讨论;实际的质量把关发生在作者自己的 8 次提交迭代中。两次提交专门替换 §3 示例输出:先手写填充后改为逐字(verbatim)捕获真实服务器响应(包括字段顺序、ID、模型自带的 cw 尾标),并补充“采样随机、重跑文本不同”的说明;另一次提交补上 auto parser 的解析结论(chat template 中 <function= / <parameter= 标记触发 qwen3 / qwen3_coder 自动识别)。B200 配方与 GPQA 广播问题在 PR body 的 Notes for reviewers 中主动披露:B200 为推断值(verified: false,渲染 Unverified 徽章),GPQA 仅在 low-latency 点测量并通过 defaultAccuracy 广播,均已作为已知限制合入。

实现拆解

  1. 新增文档页面docs/cookbook/autoregressive/InternLM/Intern-S2-Mobius.mdx):按 tag: NEW 发布,包含 §1 模型介绍(Mobius 架构、GDN ×30 + full-attention ×10、MoE-2560 专家库、MTP 层)、§2 配置提示(--trust-remote-code 必需、Mamba 状态池划分、NEXTN 参数)、§3 示例输出(Reasoning / Tool-Calling / Vision 三个逐字真实捕获)。
  2. 新增部署矩阵配置docs/src/snippets/configs/internlm/intern-s2-mobius.jsx):export const config 以反规范化 cells 描述 5 维组合(硬件 H200/B200 × 变体 × 量化 × 策略 × 节点),每个 cell 自带完整启动 flag;verified 字段区分实测与推断。Playground 部分明确禁用 EP/PP 旋钮(该架构 40 层共享 4 个全局专家库,--ep-size != 1 会被 server_args 拒绝),并给出 MTP 3-1-4 与 2-1-3 两档投机预设。
  3. 新增基准数据配置docs/src/snippets/configs/internlm/intern-s2-mobius-benchmarks.jsx):export const benchmarks 与部署 cells 共用同一 match 元组,页面自动配对;含 H200 两策略的 p50 TTFT/TPOT/吞吐与精度,B200 暂无数据。
  4. 导航接线与去重docs/docs.json 在 InternLM 分组顶部插入新页面;docs/cookbook/autoregressive/intro.mdx 的 vendor 卡片 href 从 Intern-S2-Preview 重指向新页;Intern-S2-Preview.mdx 移除 tag: NEW(同厂商只保留一个 NEW 标记)。
  5. 验证配套:无单元测试,但 PR body 附完整复现命令与数据来源说明;mint validate 通过,CI 曾因基础镜像问题 /rerun-failed-ci/tag-and-rerun-ci 重跑后通过。
文件 模块 状态 重要度
docs/src/snippets/configs/internlm/intern-s2-mobius.jsx 部署配置 added 6.94
docs/src/snippets/configs/internlm/intern-s2-mobius-benchmarks.jsx 基准数据 added 6.06
docs/cookbook/autoregressive/InternLM/Intern-S2-Mobius.mdx 文档页面 added 5.19
docs/docs.json 导航配置 modified 2.36
docs/cookbook/autoregressive/intro.mdx 首页卡片 modified 2.31
docs/cookbook/autoregressive/InternLM/Intern-S2-Preview.mdx 文档维护 modified 1.77

关键源码片段

docs/src/snippets/configs/internlm/intern-s2-mobius.jsx core-logic

部署矩阵核心配置:5 维组合(硬件 / 变体 / 量化 / 策略 / 节点)以反规范化 cells 定义启动 flag,verified 字段区分实测与推断,并包含 EP 禁用、MTP 预设等模型特定约束。

// 反规范化 cells:每个 cell 自带完整启动 flag,渲染引擎只注入占位符;
// 避免在渲染期做组合推导,Mintlify hydration 时直接取值。
// verified: true 表示已在 2×H200 TP=2 实测;false 表示从 H200 配方
// 推断的 Blackwell 对照,页面会渲染黄色 Unverified 徽章。
export const config = {
  modelName: "Intern-S2-Mobius",
  supportedHardware: ["h200", "b200"],
  strategies: [
    { id: "low-latency", label: "Low-Latency" },
    { id: "high-throughput", label: "High-Throughput" },
  ],  // 默认精度数据:GPQA 只在 low-latency 点实测,通过 defaultAccuracy
  // 广播到所有 cell,个别 cell 可用 accuracy 字段覆盖。
  defaultAccuracy: {
    default: { gsm8k_pct: 96.66, gpqa_pct: 79.23 },
  },  playgroundFeatures: {
    // 该架构没有 MoE 并行卡片:40 层共享 4 个全局专家库(meta_mlp,
    // num_blocks: 4),EP 无分片对象;server_args 对 --ep-size != 1
    // 会直接抛错,故配置里不出现 EP 旋钮。
    speculative: {
      options: [
        { id: "current", label: "Inherited from base" },
        { id: "off", label: "Off (greedy)" },
        { id: "mtp-314", label: "MTP / NEXTN 3-1-4 (recommended)",
          flags: ["--speculative-algorithm NEXTN", "--speculative-num-steps 3",
                  "--speculative-eagle-topk 1", "--speculative-num-draft-tokens 4"] },
        { id: "mtp-213", label: "MTP / NEXTN 2-1-3 (lighter draft)",
          flags: ["--speculative-algorithm NEXTN", "--speculative-num-steps 2",
                  "--speculative-eagle-topk 1", "--speculative-num-draft-tokens 3"] },
      ],
    },
  },  cells: [
    // H200 / 2 GPU / BF16 / low-latency —— 已实测,开启 MTP NEXTN 3-1-4
    {
      match: { hw: "h200", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" },
      verified: true,
      env: [],
      flags: [
        "--trust-remote-code",
        "--model-path {{MODEL_NAME}}",
        "--tp 2",
        "--mem-fraction-static 0.8",
        "--context-length 262144",
        "--reasoning-parser qwen3",
        "--speculative-algorithm NEXTN",
        "--speculative-num-steps 3",
        "--speculative-eagle-topk 1",
        "--speculative-num-draft-tokens 4",
        "--host {{HOST_IP}}",
        "--port {{PORT}}",
      ],
    },
    // B200 / 1 GPU / BF16 / high-throughput —— 推断配方:单卡 192 GB HBM
    // 可容纳 73 GB 权重 + KV,故 TP=1;未经真机验证
    {
      match: { hw: "b200", variant: "default", quant: "bf16", strategy: "high-throughput", nodes: "single" },
      verified: false,
      env: [],
      flags: [
        "--trust-remote-code",
        "--model-path {{MODEL_NAME}}",
        "--tp 1",
        "--mem-fraction-static 0.8",
        "--context-length 262144",
        "--reasoning-parser qwen3",
        "--host {{HOST_IP}}",
        "--port {{PORT}}",
      ],
    },
  ],
};
docs/src/snippets/configs/internlm/intern-s2-mobius-benchmarks.jsx core-logic

基准数据配置:与部署 cells 共用 match 元组,HTTP 页面据此自动配对,提供两策略的 p50 性能与精度数据。

// 基准数组与 config.cells 共用同一组 match 元组,页面据 key 自动配对;
// 没有 speed 数据的 cell(B200)表示该组合尚未在真机测量。
export const benchmarks = [
  // H200 / low-latency(MTP NEXTN 3-1-4):conc=1 时 P50 TPOT 仅 3.13 ms,
  // 投机解码对单流延迟收益明显;conc=64 达该配方峰值 26033 tok/s
  {
    match: { hw: "h200", variant: "default", quant: "bf16", strategy: "low-latency", nodes: "single" },
    sglang_version: "main @ e0828ee3",
    speed: [
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 1 },
        ttft_ms: 177.91, tpot_ms: 3.13, tokens_per_sec_per_gpu: 1283.2 },
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 64 },
        ttft_ms: 4440.38, tpot_ms: 12.17, tokens_per_sec_per_gpu: 13016.5 },
    ],
    accuracy: { gsm8k_pct: 96.66, gpqa_pct: 79.23 },
  },
  // H200 / high-throughput(spec off):conc=256 达饱和峰值 34786 tok/s,
  // 超过 spec 配方峰值 1.34 倍;conc=1024 被服务端 max_running 钳制到
  // ~730,TTFT 3 分钟实为排队等待而非计算耗时
  {
    match: { hw: "h200", variant: "default", quant: "bf16", strategy: "high-throughput", nodes: "single" },
    sglang_version: "main @ e0828ee3",
    speed: [
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 256 },
        ttft_ms: 16290.63, tpot_ms: 50.31, tokens_per_sec_per_gpu: 17393.4 },
    ],
    accuracy: { gsm8k_pct: 96.82 },
  },
];

评论区精华

示例输出必须与真实服务器输出逐字一致 other

提交历史显示作者至少两次修订 §3 示例输出:最初手写填充,随后替换为 verbatim 捕获的真实服务器响应(含字段顺序、ID、模型自带 cw 尾标),并补充采样随机、重跑文本不同的说明。

结论:已解决:最终页面示例为 2×H200 真实捕获,且注明采样随机性。 · 已解决

B200 配置为推断值且 GPQA 按默认广播 question

PR body 的 Notes for reviewers 明确说明 B200 cells 从 H200 配方推断而来(verified: false),页面渲染黄色 Unverified 徽章;GPQA 只在 low-latency 点测量,通过 defaultAccuracy 广播到两个 cell,若 spec-off 漂移显著需再加 per-cell 覆盖。

结论:已接受:以徽章标注未验证状态,并预留 per-cell accuracy 覆盖机制。 · 已解决

风险与影响

B200 两个 cell 为推断配方(verified: false),未在真机验证,可能存在参数不适配(尤其 TP=1 时内存估算偏差),页面以黄色 Unverified 徽章缓解;GPQA 精度只在 low-latency 点实测并通过 defaultAccuracy 广播到所有 cell,spec-off 下推理行为不同,数字可能轻微漂移,配置已预留 per-cell accuracy 覆盖但未启用;§3 示例输出为 verbatim 捕获,随 SGLang 升级或 parser 行为变化,字段格式可能过期;AMD 轴留空,GDN 的 Triton 后端未在 ROCm 上验证,用户可能在 AMD 环境误用配置;文档指向 lmsysorg/sglang:dev nightly 镜像,发布节奏变化时表述需跟进。整体风险低,所有变更限于 docs 站点,不触碰运行时代码。

对用户与社区:提供 Intern-S2-Mobius 开箱即用的部署命令、两档策略取舍依据(spec 在 conc ≤ 64 时 TPOT 3-12 ms,spec-off 在 conc=256 达 34786 tok/s 峰值)与 GSM8K/GPQA 精度基线。对文档站:InternLM 分组顶部新增页面,vendor 卡片链接重定向,Intern-S2-Preview 保留但不再标记 NEW。对团队与流程:与同日期的 Ling-3.0-tiny、Muse Glimmer cookbook 一起巩固了“配置驱动 cookbook”的形态(cells 反规范化、verified 标记、defaultAccuracy 广播、verbatim 示例约定),后续新模型文档大概率沿用此模板。整体影响程度低(纯文档),但对模型采用者价值明确。

B200 配方未经实测 GPQA 精度数据按默认广播 示例输出依赖实时捕获 AMD 硬件轴留空 依赖 nightly 镜像

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论