小米MiMo V2.5生产工程突破 | AI生成和翻译
问题: 小米 MiMo V2.5 推理博客文章说了什么?
回答:
今天(2026年5月30日)发布,这是一篇来自小米 MiMo 团队的详尽生产工程报告。以下是完整解析:
TL;DR
MiMo-V2.5 使用了 混合滑动窗口注意力 (SWA) + 稀疏 MoE + 多模态编码器。文章记录了它们如何在实际生产中实现 Hybrid SWA 理论上 7 倍 KVCache 压缩——这并非免费得来,而是需要全栈改造。
架构基线
- MiMo-V2.5-Pro:70 层——10 层 Full Attention + 60 层 SWA(窗口=128)
- SWA 层数占全部层的 6/7 → 相比全注意力,计算量和 KVCache 减少约 7 倍
- KVCache 效率在调查的模型中排名 第 2(仅次于 DeepSeek-V4-Pro 和 V4-Flash)
1. KVCache 系统重构(最大篇幅)
双池设计: Full Attention 和 SWA 的 KV 使用独立池。SWA 池严格为 O(W),而非 O(N)。这正是 7 倍存储节省实际实现的地方。
逐层预取: SWA 极小的 KV 占用使得 H2D KVCache 预取与计算几乎完全重叠——缓存加载成本趋近于零。
SWA 感知前缀缓存树: 经典的 RadixAttention 假设(”相等 token → 相等 KV”)在 SWA 下失效,因为 SWA KV 可能在序列中间被部分驱逐。解决方案:添加”窗口安全长度”匹配——仅当尾部 W 个 token 仍在 SWA 池中有有效槽位时,才计为缓存命中。每个树节点携带双索引(Full Attention 段 + SWA 段)。原始命中率略有下降,但由于在相同内存预算下能容纳更多数据,有效命中率大幅提升。
跨 L1/L2/L3 层(设备、主机、GCache)的分布式缓存一致性修复。 解决了四种特定故障模式:设备完整/主机不足、主机完整/设备不足、L3 前缀驱逐高频序列、中短序列的 SWA 保留。
GCache(自研 L3 缓存): 由小米存储团队构建。关键特性:
- 通过一致性哈希实现去中心化元数据(Master 仅负责心跳/发现,不参与 IO 路径)
- 在 GPU 机器上内存+磁盘共置 → 零额外存储成本
- RDMA:单进程读取 170 GB/s,延迟 280μs;GDR 下可达 350 GB/s
- 单副本 + Raft 高可用 + 主动故障迁移
结果: 服务器端 KVCache 平均命中率 93%;重度用户超过 95%。
2. 调度(LLM-Router)
自定义无状态路由器,使用 Redis 实现集中状态(取代 SGLang 早期无共享状态的路由器)。
亲和调度公式:
score(worker) = matchWeight × prefix_match_percentage − normalized_load
→ L2 缓存命中率提升 25%,每节点输入吞吐量提升 30%
TTFT 优化: 优先级队列按未缓存 token 数量排序(缓存友好请求优先执行)+ 饥饿惩罚。结果:长请求 P90 TTFT 降低 30%,短请求无退化。
3. Prefill 优化
- EP 大小减半(SWA KVCache 修复后,工作集变小 → 内存中可容纳更多 → 所需专家并行度降低)→ 端到端 prefill 性能提升 40%
- 三级长度分桶(0–64K / 64K–256K / 256K–1M)以避免同一 EP 组内混合短请求和长请求导致的 DP-Attention 同步偏移
- MoE 负载均衡自然良好(平均因子约 0.85)——暂时无需显式均衡
- NUMA 冲突修复:
numa_balancing内核参数与 SGLang 的 NUMA 配置冲突 → 禁用该参数 → 端到端性能提升 10%
4. Decode 优化
- SWA decode KVCache → 有效容量增加约 5 倍
- PD 分离的 KVCache 预分配移至 CPU,直到 decode 开始(消除 GPU 内存浪费)
- CUDA Graph 内存调优
- MTP(多 token 预测,3 层)修复: 之前 prefill 未构建 MTP KVCache,导致早期 decode token(0–128)接受率几乎为零。通过 prefill MTP 支持 + HiCache L2/L3 适配修复。结果:0–128 token:2.3 倍加速;128–256 token:1.5 倍加速——对短输出场景的智能体应用意义重大
5. 多模态(EPD 分离)
基于 SGLang v0.5.7 的 EPD 设计。编码器吞吐量翻倍(15→30 QPS),无延迟退化。关键技巧:
- 异步多模态嵌入复制与 prefill 重叠
- TP=1 编码器 + 数据并行(TP>1 会损害小型编码器)
- 跨请求批处理(将多个请求的图像/音频合并到一次前向中)
- GPU 端图像预处理(替代 CPU 瓶颈)
- 并行视频解码:1 小时视频解码 156 秒 → 23 秒
- 编码器路由的一致性哈希 → 多模态缓存命中率提升 30%
- 节点内共享内存嵌入缓存共享
这对你意味着什么
如果你正在构建推理基础设施或研究生产级 LLM 系统:
- Hybrid SWA 架构优雅但运维困难——前缀缓存树的语义会以微妙方式失效(”窗口安全长度”的洞见不直观但很重要)
- 双池 KVCache + 逐层预取模式很可能成为行业标准
- 带 prefill 暖启动的 MTP 是缩短智能体短输出延迟的具体技巧
- NUMA 均衡内核冲突是 Ubuntu 上多 GPU 部署值得注意的陷阱
- GCache 在 GPU 机器上共置实现零成本 L3 存储的思路是巧妙的基础设施设计
这篇论文本质上记录了将 Hybrid SWA 模型以生产质量交付所需的一切——vLLM/SGLang 在发布时并未完全支持这一点。