跳转至

MiMo-V2.6-Flash-RL Day 0:4 卡与 8 卡 H20-3e 部署实测

1. 先认识 MiMo-V2.6-Flash-RL

MiMo-V2.6-Flash-RL 是 XiaomiMiMo 发布的开放权重稀疏混合专家(Mixture of Experts,MoE)模型。官方把它称为兼顾效率的检查点:总参数 309B,每个 Token 激活约 15B 参数,原生接受文本、图片、视频和音频输入,提供 1M Token 上下文窗口,采用 MIT 许可证。官方模型卡

MiMo-V2.6-Flash-RL 模型概况

对部署影响较大的结构如下:

结构 官方配置 对推理服务的影响
稀疏 MoE 309B 总参数、15B 激活参数 计算量比总参数小,但全部权重仍要存储并参与专家路由
注意力 48 层,其中 39 层滑动窗口注意力、9 层全局注意力 短请求、长 Prefill 和长时间 Decode 的瓶颈不同
专家路由 256 个专家、Top-8 并行方案、专家调度和通信会改变卡数与吞吐
多 Token 预测 5 层滑动窗口 MTP Drafter,一次预测 7 Token 引擎需要匹配相应推测解码实现,不能仅凭模型格式判断支持
视觉与音频 681M 视觉编码器;音频 Tokenizer 和 Patch Encoder 文本服务启动成功以后,仍需分别验证媒体解码、模板和输出语义
上下文 官方 1M Token 服务上下文由显存、KV Cache、运行时实现和并发共同决定

本次服务窗口设为 32,768 Token,最长正式输入为 24,576 Token。官方 1M 能力没有在这轮硬件配置上验证。

2. 两套实际跑通的部署画像

本次得到两套可运行配置:SGLang 使用单机 8 张 H20-3e,vLLM 使用单机 4 张 H20-3e。两套配置的卡数、并行策略和运行时实现不同,因此文章报告各自的部署表现和资源密度,不把结果解释成同条件引擎排名。

SGLang 与 vLLM 部署画像

项目 SGLang vLLM
GPU 1 节点 × 8×H20-3e 1 节点 × 4×H20-3e
并行 TP8、DP2、DP Attention、DP LM Head TP4
服务上下文 32,768 Token 32,768 Token
最大运行请求 64 运行时按 32K 和显存预算调度
显存配置 mem-fraction-static=0.65 gpu-memory-utilization=0.90
Prefill Chunked Prefill 16,384 引擎默认分块路径
Prefix Cache 关闭 关闭
工具协议 MiMo reasoning/tool parser MiMo reasoning/tool parser
MoE Kernel FlashInfer MXFP4 固定支持分支的 MiMo 路径

两套容器均申请 64 CPU、512 GiB 内存,GPU 上限分别为 8 卡和 4 卡。模型直接从共享只读存储加载。压测时没有启用前缀缓存,避免重复合成输入因缓存命中改变结果。

3. 测量方法

核心矩阵覆盖四类固定长度请求:

场景 输入 / 输出 Token 观察重点
短请求 1,024 / 128 在线对话的吞吐和排队
长 Prefill 8,192 / 128 长输入对 TTFT 的影响
长 Decode 1,024 / 512 连续生成吞吐和 TPOT
长上下文 24,576 / 128 32K 服务窗口内的边界表现

每种长度分别测 C1、C8、C32。C 表示客户端并发上限;C1 每轮 8 个请求,C8 每轮 16 个请求,C32 每轮 64 个请求。每档先预热,再执行三轮正式测试。请求使用固定长度随机合成 Token、temperature=0ignore_eos=true,性能接口为 OpenAI 兼容 /v1/completions

成功请求必须同时满足 HTTP 成功、非空输出、完整结束标记、有效 usage 和目标输出长度。失败请求保留在原分母;表中吞吐、TTFT、TPOT 是全部有效轮次指标的中位数。若一轮存在失败,它不会进入性能中位数,但完成数仍进入成功率统计。

  • 输出吞吐:成功请求产生的输出 Token ÷ 整轮耗时。
  • TTFT(Time to First Token):请求发出到第一个非空输出片段。
  • TPOT(Time per Output Token):首个输出片段以后,每个输出 Token 的平均生成时间;表格报告请求级 TPOT 的 P95。
  • E2E(End-to-End Latency):从请求开始到完整流结束。

4. 文本、工具和视觉先过硬门槛

两套引擎均通过模型 ID、算术、多轮记忆、流式完整性、工具调用、单图和双图顺序验证。性能矩阵开始前还分别执行了长度校准。

部分实际 Prompt 如下:

能力 Prompt / 操作 验证点
算术 计算 17 加 25,只回答数字。 最终答案为 42
多轮 Remember code 482619.What was the code? Reply only with the code. 第二轮准确返回 482619
工具 Use get_weather to look up weather in Beijing. Do not invent the weather. 工具名、参数及模拟结果回灌正确
单图 Name the main vegetable shown. Reply with one English noun only. 官方胡萝卜、玉米样例分别识别正确
双图 Name the main vegetable in each image in order. Reply as two English nouns separated by a comma. 交换图片顺序后回答随之变化
视频 List the three background colors in the order they appear. vLLM 推理识别蓝、绿、红,256 Token 上限内未生成最终字段
音频 What verification code is spoken? Reply with digits only. 当前 vLLM 请求返回不支持的音频文件错误

视频样例说明视觉时序信息进入了模型推理,但最终响应因达到输出上限而不满足成功条件;音频接口返回 HTTP 400。图片通过不能替代视频和音频通过,因此本轮公开结论限定为文本、工具和图片能力已验证。

5. 核心性能结果

三类负载的输出吞吐

5.1 短请求:8 卡总吞吐更高,4 卡资源密度更高

1K/128 的 C32 场景中,SGLang 总输出吞吐为 970.41 Token/s,vLLM 为 657.72 Token/s。按已分配卡数做简单除法,分别约为 121.30164.43 Token/s/GPU。这个每卡值描述当前部署画像的资源密度,包含 TP/DP、调度和 Kernel 差异,不等于单卡独立推理性能。

输入/输出 并发 SGLang 8 卡 Token/s vLLM 4 卡 Token/s TTFT P95 秒:S / V TPOT P95 毫秒:S / V
1K/128 C1 76.93 156.83 0.120 / 0.170 12.34 / 5.13
1K/128 C8 490.27 469.43 0.588 / 0.872 12.05 / 15.66
1K/128 C32 970.41 657.72 2.141 / 3.227 21.67 / 41.89
8K/128 C1 57.59 85.49 0.651 / 0.842 12.62 / 5.18
8K/128 C8 169.39 132.02 4.477 / 6.405 33.65 / 49.37
8K/128 C32 223.99 144.38 15.037 / 23.752 126.43 / 198.48
1K/512 C1 78.35 183.30 0.118 / 0.169 12.66 / 5.14
1K/512 C8 609.87 653.82 0.539 / 0.874 12.29 / 12.00
1K/512 C32 1,528.83 1,042.44 1.915 / 3.221 18.60 / 28.93

vLLM 的 8K/C32 第一轮完成 63/64,后两轮均为 64/64,三轮合计 191/192;表中性能中位数只采用两轮完整结果。其余上表各档正式请求全部完成。

核心矩阵记录到的 SGLang 正式请求为 824/848 完成,24 个失败都来自 24K/C8;vLLM 为 1,055/1,056 完成,唯一失败来自 8K/C32。

5.2 长上下文:延迟会在并发下快速放大

24K 长上下文边界

引擎 并发 完成/请求 输出 Token/s TTFT P95 TPOT P95 E2E P95
SGLang 8 卡 C1 24/24 36.92 1.883 s 12.70 ms 3.484 s
SGLang 8 卡 C8 8/32
SGLang 8 卡 C32 未执行
vLLM 4 卡 C1 24/24 38.83 2.638 s 5.33 ms 3.309 s
vLLM 4 卡 C8 48/48 47.46 19.543 s 137.63 ms 28.876 s
vLLM 4 卡 C32 192/192 49.32 74.423 s 592.72 ms 148.263 s

SGLang 的 24K/C8 执行了两轮,每轮都只有 4/16 请求完成,随后按阶段保护条件停止,C32 没有执行。vLLM 的 24K/C32 全部完成,但 P95 首 Token 等待约 74.4 秒、完整流约 148.3 秒,已经超出常见交互式应用的等待范围。生产容量应按业务延迟目标限制长输入并发,而不能只看请求最终是否完成。

6. SGLang 固定到达率扫描

限速扫描使用 SGLang 8K/128、C32 的 1.7499 req/s 校准点,按 0.5、0.8、1.1 倍形成三档到达率。每档三轮,分别执行 600、756、1,041 个请求,共 2,397/2,397 完成。

SGLang 固定到达率扫描

档位 达成请求率中位数 P95 TTFT P95 TPOT P95 E2E
0.5× 0.866 req/s 1.939 s 54.49 ms 7.821 s
0.8× 1.379 req/s 3.554 s 194.77 ms 27.141 s
1.1× 1.644 req/s 26.851 s 287.67 ms 53.107 s

请求率从 0.8× 增加到 1.1× 时,实际完成速率只增加约 19%,P95 TTFT 从 3.55 秒扩大到 26.85 秒。这个拐点适合用于制定准入和排队上限。三档是相对于本次校准点的实验轴,不代表生产容量百分比。

vLLM 的这轮执行包没有携带共享限速参考,因此该阶段按规则跳过,没有补造与 SGLang 对称的数据。

7. GPU 资源曲线

下面是对应正式测试时间窗的真实浅色看板。SGLang 图覆盖 8 卡服务,vLLM 图覆盖 4 卡服务;图中的空档和利用率回落对应阶段切换与服务收尾。

SGLang 八卡资源曲线

SGLang 的八卡显存稳定在约 109–110 GB,核心阶段各卡利用率均达到 100%,功耗高负载区间约 300–400 W,温度峰值约 60℃。这是 30 秒采样的资源曲线,不能替代更细粒度 Kernel Profile。

vLLM 四卡资源曲线

vLLM 四卡服务的 GPU 利用率峰值为 100%,显存占用峰值约 131 GB,单卡功耗峰值约 402 W、温度峰值 57℃。截图使用保留的绝对时间窗;标题和说明已移除内部节点地址。

8. OpenWebUI 接入

服务按 OpenAI 兼容连接注册到既有 OpenWebUI。下图是连接管理页的真实截图,内部网关地址已在浏览器截图阶段脱敏,线上配置没有被改写。

OpenWebUI 注册项

OpenWebUI 注册只证明入口配置存在。模型 ID、流式结束、最终答案、多模态内容和工具调用仍由 API 自动验收分别检查,不能用界面出现一个模型名代替接口验证。

9. 部署建议

  1. 先按资源目标选画像。 4 卡 vLLM 提供了更小的单实例占用和较高的每卡吞吐密度;8 卡 SGLang 在 C32 的短请求和长输出场景取得更高总吞吐。在线业务还应把副本数、排队、故障域和卡价一起纳入容量模型。
  2. 4 卡和 8 卡都要检查 GPU 拓扑。 4 卡应尽量落在同一高速互联域;8 卡 TP8/DP2 还要检查专家通信、GPU Direct 路径和 NCCL 正确性。Kubernetes 只保证分配到指定数量的 GPU,不自动保证最优连接关系。
  3. 把 NUMA 本地性纳入验收。 CPU Tokenize、媒体预处理、Pinned Memory 和 Host-to-Device 拷贝会访问主机内存。GPU 互联良好时,跨 NUMA 的 CPU 和内存访问仍可能拖慢 Prefill 与多模态路径。
  4. 为长输入建立独立队列。 24K/C32 的完成不意味着适合交互。按输入长度分层限流,设置最大排队时间和取消机制,避免长 Prefill 占满运行序列。
  5. 缓存配置单独建基线。 本轮关闭 Prefix Cache。若生产流量存在大量相同系统提示词,应另建“缓存开启”画像,报告命中率、显存占用和未命中性能,不与无缓存结果混合。
  6. 多模态逐种媒体验收。 图片、视频和音频具有不同的解码器、模板与输出上限。视频中间推理正确仍可能因输出被截断而失败;音频格式错误应作为客户端或媒体处理问题单独统计。
  7. 扩展到 1M 前先做容量阶梯。 从 32K、64K、128K 逐级验证显存、TTFT、取消请求和并发下降曲线,再决定是否开放更长窗口。
  8. 用 SLO 控制入场,而不是追最高 tok/s。 至少同时监控成功率、TTFT、TPOT、E2E、排队长度、KV Cache 使用率、GPU 利用率和功耗。吞吐进入平台期而 TTFT 快速扩大时,应先限流或扩容。

10. 结论

MiMo-V2.6-Flash-RL 已在 H20-3e 上跑通两种有代表性的服务画像。4 卡 vLLM 在较小 GPU 占用下完成了完整核心矩阵,短请求 C32 达到 657.72 Token/s;8 卡 SGLang 在短请求和长输出 C32 分别达到 970.41 和 1,528.83 Token/s,并完成三档固定到达率扫描。

真正影响生产选型的是资源占用、延迟拐点和请求完整性。当前最明确的边界来自 24K 输入:vLLM 能完成 C32,但等待已不适合多数交互应用;SGLang 在 C8 出现稳定失败,后续需要单独定位运行时超时、调度和长 Prefill 路径。文本、工具和图片已经通过,视频和音频仍需针对接口与输出预算继续收敛。

参考资料