
2026/07/07 15:06
MiMo v2.5 の推論最適化:ハイブリッド型 SWA の効率性を極限まで引き上げる
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
オリジナルのサマリーはよく構成されていますが、具体的なバックエンド最適化や技術的業績を定義する正確な指標を取り上げていないため、高すぎる印象を与えます。より優れたサマリーとしては、効率性がどのように達成されたかを単なるアーキテクチャの変更以上に示すために、これらの具体的な数値を組み込むべきです。
改善されたサマリー
新しい MiMo-V2.5 モデルファミリーは、ハイブリッド・スライド・ウィンドウ注意機構(Hybrid SWA)、スパース MoE の活性化、および視覚、音声、ビデオのためのマルチモーダルエンコーダーを組み合わせることで、AI の効率性を革新します。このアーキテクチャでは、全 10 レイヤーと 60 レイヤーのスライド・ウィンドウ層(全体のレイヤーの 6/7 に相当)という特定のレイヤーミックスを採用しており、理論上、計算コストと KVCache ストレージを標準的な全注意モデルの約 1/7 に削減します。SGLang v0.5.5 から再構築されたカスタムバックエンドは、GCache システム(170 GB/s の RDMA 透過性と約 280 μs のレイテンシを備える)により支えられ、ライフサイクルに紐づいた退避と二重のプールを特徴とする SWA 対応 Prefix Cache ツリーを実装し、サーバー側での節約を最大化します。
これらの最適化は劇的な実用的改善をもたらします:6 時間のビデオデコード時間は、156 セCONDSからわずか 23 秒へと短縮され、マルチモーダルエンコーダーのスループットは 1578 QPS から 3080 QPS に倍増します。MiMo-V2.5-Pro は現在の実験ベンチマークにおいて、DeepSeek-V4 シリーズに次ぐ第 2 の効率性モデルにランク付けされています。LLM-Router スケジューラ(Redis ベースのアフィニティと三段階の長さバケット化を備える)を含む追加のバックエンド強化により、平均 KVCache ヒット率は 93% を達成します。結局のところ、これら有意なサーバー側の節約は API 価格の低下という形で直接ユーザーに還元され、長動画タスクや負荷の重いワークロードにおける高性能な AI 処理をより速く、かつ安価なものとしています。
本文
MiMo-V2.5:混合滑动窗口注意力推理系统工程实践报告
📅 背景与目标
- 发布时间:2026 年 5 月 30 日(中文版)
- 模型系列:涵盖 MiMo-V2.5 及 MiMo-V2.5-Pro。
- 核心目标:训练出一个既强大又高效、适用于长上下文推理的模型。
🏗️ 架构设计选型
- 混合滑动窗口注意力 (Hybrid SWA):将 KVCache 存储量压缩至全注意力机制的约 七分之一。
- 稀疏 MoE 激活:在保持模型容量的同时,显著降低处理每个 token 的计算开销。
- 多模态编码器:实现了对视觉、音频和视频内容的跨模态理解。
🧠 理论效率分析:Hybrid SWA
1.1 计算成本分析 (以 MiMo-V2.5-Pro 为例)
- 模型结构:总 70 层(10 层全注意力 + 60 层 SWA)。
- 滑动窗口大小:128。
- 计算量对比:
- SWA 层占所有层数的 6/7。
- 总计算量约为全注意力的 1/7。
- Chuncked Prefill(分块预填充):主要受限于计算资源,成本成比例降低。
1.2 KVCache 存储分析
- 存储优化:SWA 层仅需保留滑动窗口内的 KV,内存使用量降至约 1/7。
- 解码延迟:与读取模型参数和 KVCache 的总字节数成正比。长序列场景下,减少 KVCache 体积直接降低解码成本。
- 性能排名:MiMo-V2.5-Pro / MiMo-V2.5 在 KVCache 效率上仅次于 DeepSeek-V4-Pro / DeepSeek-V4-Flash。
- 注:实际成本差异不完全对应大小比率,但在长上下文中趋势显著。
💾 KVCache 系统重构与优化
挑战背景
- 早期主流开源框架(如 SGLang v0.5.5)的 HiCache 不支持原生 SWA,或仅通过存储完整 KVCache 实现兼容性。
- 目标:构建具有更高性能上限和更好可用性的 KVCache 系统。
2.1 SWA KVCache 管理策略
🗄️ KVCache 双池设计
混合 SWA 引入了全注意力 (O(N)) 与 SWA (O(W)) 的存储冲突,解决方案如下:
- 物理层:
- 维护独立的全 KV 池和SWA KV 池。
- SWA 池仅针对窗口大小配置,严格限制在 O(W)。
- 机制扩展至 L2 和 L3 存储层级。
- 逻辑层:
- 向上层暴露单一序列视图(以全注意力索引为权威)。
- 维护
映射以实现透明分层存储。Full → SWA
- 调度约束:
- 系统验证全 KV 和 SWA KV 容量,避免资源误分配。
- 数据移动:
- 跨层级传输仅基于 SWA 掩码进行,避免冗余带宽消耗。
成果:实现了严格的 O(W) 存储约束,整体 KVCache 容量效率提升约 7 倍。
🚀 分层 KVCache 预取
- SWA 层只需预取少量 KVCache。
- Host-to-Device (H2D) 的预取与计算在分层调度下几乎完全重叠,缓存读取成本接近于零。
🌳 SWA 感知前缀缓存树
传统 RadixAttention 假设(相同 token → 相同 KV)在 SWA 下失效,因为物理生命周期与逻辑生命周期不对齐。
优化措施:
- 匹配规则升级:升级为 “窗口安全长度” 匹配。只有尾部 W 个 token 在 SWA 池中有效才视为命中。
- 驱逐绑定请求生命周期:触发窗口外 SWA 释放,使长任务中的 SWA 池使用量保持在 W 或块级量级。
- 节点携带双重索引:记录全注意力段索引和 SWA 段映射,允许独立驱逐窗口外的 SWA 段以保留全注意力复用性。
📈 KVCache 命中率优化
针对分布式环境下的不一致性问题(设备完整/主机缺失、L3 早遣等)进行专项优化:
- 主动补偿:定期检查 D2H 差异,在主机分配补充槽位并异步写入。
- 防早遣机制:定期查询 L1/L2 缓存状态,防止高频序列被 L3 驱逐策略过早释放。
- 共享系统提示保留:基于用户请求模式,在固定长度位置保留相对密集的 SWA KV。
效果:显著延长有效命中长度,使跨会话长前缀复用成为可能。
2.2 GCache:高性能分布式缓存基础设施
由小米存储团队开发的高性能通用缓存系统,作为统一训练 - 推理存储架构的关键部分。
- 核心特性:
- 去中心化元数据管理:基于一致哈希定位,Master 仅管理心跳(Raft),IO 不经过 Master。
- 多级缓存策略:冷内存驱逐至磁盘,热磁盘数据提升为内存。
- 持久化与弹性:支持共享内存持久化,服务重启无缓存丢失,平滑扩缩容。
- 高并发 IO:支持非阻塞 IO 和 RDMA 通信。
- 网络优化:
- 利用高性能网卡(8×400G),单进程 RDMA 读取吞吐量达 170 GB/s。
- GDR 场景下吞吐量约 350 GB/s。
- 存储成本:优先在 GPU 机器上共置部署,无需额外存储机,实现零额外成本。
- 可靠性:通过逻辑集分散会话、主动故障发现及自动数据迁移保障高可用。
2.3 命中率提升机制
- 原理:SWA 优化小化了存储足迹 + GCache 大容量扩展了可用容量 → 减少驱逐压力 → 延长 TTL(存活时间)→ 提高命中率。
- 实测数据:
- 主 stream 高质量 harness 框架下,服务端 KV Cache 平均命中率为 93%。
- 重度用户场景下,指标达到 95% 或以上。
⚙️ 调度与执行管道优化
3.1 LLM-Router:无状态动态调度器
- 架构:使用 Redis 作为集中存储,消除单服务故障后的 KVCache 退化。
- 负载亲和性调度:
- 公式:$score(worker) = matchWeight \times prefix_match_percentage - normalized_load$
- 效果:L2 缓存命中率提升约 25%,每节点输入吞吐量提升约 30%。
3.2 TTFT(首字延迟)优化
- 问题:传统 FCFS 策略可能导致高命中率请求等待低命中率请求。
- 方案:优先处理未缓存 token 较少的请求,并引入等待时间惩罚机制防止饥饿。
- 效果:长请求的 TTFT P90 降低高达 30%,不降低短请求服务质量。
4.1 Prefill(预填充)优化
- 并行配置 (EP):
- SWA 优化后,仅需存储窗口内 token,可将 EP 减半。
- 性能提升:端到端性能提升约 40%。
- 长度分桶策略:
- 将请求聚合为三个桶(0–64K / 64K–256K / 256K–1M)。
- 解决 DP-Attention 同步和 Chunked Prefill 干扰导致的负载不平衡。
- MoE 负载均衡:推理期间平均专家负载因子约为 0.85,无需额外策略干预。
- NUMA 冲突解决:禁用系统内核的
参数,端到端性能提升约 10%。numa_balancing
4.2 Decode(解码)优化
- GPU 内存优化:
- Decode KVCache SWA 支持:容量增至约 5 倍。
- PD-disaggregated KVCache 预分配:仅在实际解码时传输至 GPU,消除浪费。
- CUDA Graph 内存调优。
- MTP(多 token 预测)优化:
- 引入预填充期间 MTP 支持及 HiCache L2/L3 适配。
- 加速比:0–128 token 达 2.3 倍,128–256 token 达 1.5 倍。
🎨 多模态推理优化
基于 SGLang v0.5.7 EPD 设计进行解耦优化,编码器吞吐量翻倍且无延迟回归。
| 指标 | Before (优化前) | After (优化后) | 变化幅度 |
|---|---|---|---|
| QPS | 1,578 | 3,080 | 📈 翻倍 |
| Avg Latency | 3.9 ms | 2.8 ms | ⬇️ 降低 |
| P90 Latency | 100.76 ms | 82.94 ms | ⬇️ 显著降低 |
🛠️ 架构与预处理优化
- 数据并行:Encoder 设置 TP=1,利用数据并行简化运维。
- 跨请求批处理:按模态聚合并发请求,合并图像/音频进行单次前向传播。
- GPU 预处理:将大图像的 resize/normalize/patchify 移至 GPU 执行,消除 CPU 瓶颈。
- 多模态下载并行化:使用消息队列解耦下载与推理,实现批次内重叠。
- 视频解码加速:并行线程解码,1 小时视频 Encoder 延迟从 156 秒降至 23 秒。
🗃️ 缓存优化
- 一致哈希路由:将具有相同键的请求路由到同一 Encoder,命中率提高 30%。
- 节点内共享内存:实现同节点多个 Encoder GPU 间的多模态缓存数据共享。
📝 结语
MiMo-V2.5 系列的推理效率并非来自单一突破,而是混合 SWA、MoE与多模态架构在系统工程层面的协同优化结果:
- 克服理论落地挑战:通过重构 KVCache 管理、分层缓存系统及前缀树语义,解决了 SWA 感知下的核心兼容性问题。
- 极致调度优化:利用 GCache 高吞吐能力和智能路由策略(LLM-Router),最大化硬件利用率。
- 价值回馈用户:通过架构优化降低推理成本,并将部分优化贡献给 SGLang 开源社区(PR #24945),推动高性能复合架构的广泛采用。
只有将混合 SWA 的理论潜力转化为生产环境的现实效能,才能真正实现长上下文推理中性能与效率的最佳平衡。