小米MiMo V2.5生产工程突破 | AI生成和翻译

Home 2026.05

问题: 小米 MiMo V2.5 推理博客文章说了什么?

回答:

今天(2026年5月30日)发布,这是一篇来自小米 MiMo 团队的详尽生产工程报告。以下是完整解析:


TL;DR

MiMo-V2.5 使用了 混合滑动窗口注意力 (SWA) + 稀疏 MoE + 多模态编码器。文章记录了它们如何在实际生产中实现 Hybrid SWA 理论上 7 倍 KVCache 压缩——这并非免费得来,而是需要全栈改造。


架构基线


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 缓存): 由小米存储团队构建。关键特性:

结果: 服务器端 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 优化


4. Decode 优化


5. 多模态(EPD 分离)

基于 SGLang v0.5.7 的 EPD 设计。编码器吞吐量翻倍(15→30 QPS),无延迟退化。关键技巧:


这对你意味着什么

如果你正在构建推理基础设施或研究生产级 LLM 系统:

  1. Hybrid SWA 架构优雅但运维困难——前缀缓存树的语义会以微妙方式失效(”窗口安全长度”的洞见不直观但很重要)
  2. 双池 KVCache + 逐层预取模式很可能成为行业标准
  3. 带 prefill 暖启动的 MTP 是缩短智能体短输出延迟的具体技巧
  4. NUMA 均衡内核冲突是 Ubuntu 上多 GPU 部署值得注意的陷阱
  5. GCache 在 GPU 机器上共置实现零成本 L3 存储的思路是巧妙的基础设施设计

这篇论文本质上记录了将 Hybrid SWA 模型以生产质量交付所需的一切——vLLM/SGLang 在发布时并未完全支持这一点。


Back Donate