Mooncake 架构概览:以 KVCache 为中心的高效 LLM 推理系统设计
0. 资源
1. 论文介绍(视频 + ppt): https://www.usenix.org/conference/fast25/presentation/qin2. 论文翻译: https://zhuanlan.zhihu.com/p/706109023
1. 摘要
论文题目:Mooncake: Trading More Storage for Less Computation — A KVCache-centric Architecture for Serving LLM Chatbot
Mooncake 是由 Moonshot AI 为智能助手 Kimi 提供的一种分离式 LLM 推理架构。其核心在于以 KVCache 为中心的全局调度器(Conductor),并通过预填充—解码阶段解耦与分块管道并行(CPP),实现了在极长上下文场景下的高效推理服务。主要指标如下:
• 单会话支持高达百万级 Token 上下文,具备大规模推理能力; • 显著降低 GPU 计算资源消耗; • 与 vLLM 对比:吞吐量提升可达 525%,符合 SLO 的请求数提升 75%。
核心创新点:
1. 分块管道并行(CPP):将预填充阶段按层/块并行,TTFT 相较传统序列并行减少约 40%; 2. KVCache 感知全局调度:Conductor 综合缓存命中、本地队列和负载,实现在预填充阶段对 KVCache 的复用率超过 50%; 3. 预测性早期拒绝:基于系统级负载与请求输出长度预测,减少冗余计算,实现过载场景下稳定高吞吐。
2. 研究背景
LLM 推理服务面临三大挑战:
1. 长上下文处理:输入长度增十倍时,注意力计算呈二次增长,TTFT 超过秒级; 2. 资源利用矛盾:预填充阶段计算密集(MFU>90%),解码阶段内存敏感(百万 Token KVCache 占用显存逾 320 GB); 3. 过载常态:高峰请求可达平均负载 20×,集群扩容弹性受限分钟级。
现有方案通常将预填充与解码耦合,导致 TBT 延迟过高,KVCache 复用率低于 30%,且过载时被动拒绝浪费资源。Mooncake 提出分离架构,以 KVCache 为调度核心,分别优化两阶段性能和过载策略。
3. 核心架构设计
3.1 分布式 KVCache 池构建
• 多层存储: • L1:GPU 显存,冷启动命中率约 42%; • L2:节点 SSD,热数据命中率提升 3 倍; • L3:跨节点 DRAM 池,RDMA 延迟 < 50 μs。 • Messenger 传输组件:基于 RDMA 的异步流水线,将 KVCache 分为 15–512 Token 块,跨节点批量拉取和推送,显著降低同步带宽压力。
3.2 双阶段分离调度
CPP 机制:将长上下文动态划分为默认 1 024 Token/块,预填充计算与 KVCache 传输异步重叠,显著提高 MFU 并降低网络资源争用。
4. 关键优化技术
4.1 KVCache 感知调度算法
调度评分公式:
其中 为缓存命中率, 为预估预填延迟, 为实例队列等待时间, 为负载系数。
• 索引结构:哈希表(精确)、前缀树(最长匹配)、语义指纹(模糊匹配)。 • 动态权重:高峰期优先吞吐,低负载倾向低延迟。
4.2 预测性早期拒绝
• 双阶段负载评估:在预填充阶段预测解码池负载,避免无效计算。 • 系统级预测:假设统一解码时长 ,结合当前队列与即将完成请求,计算未来 TBT 负载,并据此调整 AcceptWindow。 • 效果:过载场景中,与基准策略相比,拒绝请求数减少约 14%,集群 goodput 明显提升。
5. 实验验证
5.1 数据集与评估指标
• Effective Throughput:满足 SLO 的请求总量; • Resource Utilization:实际计算量/理论峰值。
5.2 对比结果
| Mooncake | 498% | 100% | 显著高于 43% |
• 公共数据集:Mooncake-[3P+1D] 在 ArXiv/L-Eval 上分别超越 vLLM 20%/40%。 • 模拟场景:长上下文推理增幅 50%–525%。 • 真实负载:Mooncake-[10P+10D] 在相同 SLO 下,比 vLLM-[20M] 多处理 75% 请求。
6. 工程实践启示
Mooncake 架构的成功落地,提供了多个值得泛化的工程经验:
1. 存储优先原则:重构推理资源配置逻辑
传统 LLM 推理系统通常围绕计算资源(如 GPU 核心数、FLOPs)进行扩展,但在长上下文场景下,KVCache 占据了显存与网络的主要带宽瓶颈。Mooncake 以 KVCache 为中心,强调容量优先、热度感知、层级分布的缓存体系建设策略,为服务稳定性和可扩展性提供了更坚实的基础。2. 解耦调度机制:独立缓存调度器带来的系统灵活性
将 KVCache 管理权从解码服务中剥离出来,使得系统能按阶段、按数据局部性进行最优决策。例如,Conductor 在预填充阶段可以基于缓存命中率、跨节点开销等维度调度至最优节点,而无需依赖单一计算流程。此设计理念可推广至所有“状态重用”场景,如上下文学习、图数据库缓存等。3. 预测性运维体系:让 LLM 服务从“响应式”转向“前馈式”
Mooncake 构建了包括请求 Token 长度、热点查询模式、解码资源消耗在内的多维特征库,结合 LSTM 等轻量预测模型,在 200ms 级别内完成是否接受请求、是否迁移缓存的决策。这种预测驱动的策略不仅提升了吞吐,还显著降低了错误调度与资源浪费,是构建高可用 LLM 服务的新范式。
7. 未来方向
Mooncake 当前的技术实现虽已成熟,但在更广泛的部署场景和系统异构化趋势下,仍有诸多潜在优化路径:
1. 异构加速器融合:打破 GPU 单一计算瓶颈
当前解码主要依赖 GPU 并行执行,但在 KV 访问、前向计算、KVCache 维护等子任务中,可探索引入 CPU 处理批量序列调度逻辑、FPGA 加速 KV 编码与压缩、TPU 参与矩阵运算 等多种硬件协同方式,构建真正异构的多阶段流水线系统。2. 内存内计算(In-Memory Compute)与 CXL 架构融合
KVCache 容量与访问延迟的矛盾限制了进一步的上下文增长。未来可借助 CXL(Compute Express Link)标准下的共享内存模型,实现 DRAM 和持久化内存(如 PMem)之间的统一编址与调度,缓解数据迁移成本,并在必要时引入 Processing-in-Memory(PIM)方案提升算存带宽匹配度。3. 联邦化 KVCache:向跨地域部署和多租隔离演进
面向企业客户和多边数据协作场景,支持 区域间共享 KVCache 且保护数据隐私 的机制将成为重要趋势。通过联邦学习技术、同态加密、数据驻留控制等手段,实现跨集群、跨数据中心的缓存共享而不泄露用户上下文,为全球化部署和行业定制大模型服务提供关键能力支撑。
8. 技术价值总结
Mooncake 的设计不仅是对现有推理架构的优化,更代表了一种新的服务范式,其系统性价值体现在:
1. 架构创新价值:
首次将 KVCache 从模型推理流程中抽象为“一级公民”,形成了以缓存驱动计算的解耦模型,极大提升了对超长上下文的支撑能力与资源调度灵活性。2. 系统优化价值:
通过分块管道并行(CPP)机制,结合跨节点缓存感知调度,打通了算力瓶颈与带宽瓶颈间的转换通道,在现有硬件体系下实现性能成本的帕累托最优。3. 工程复用价值:
该架构具备良好的模块化与可移植性,Conductor 调度器、Messenger KV 传输组件、LRFU 热点管理策略等均可独立集成至其他 LLM 服务系统,具备高度实用价值。4. 落地验证价值:
Mooncake 已经支撑 Kimi 智能助手在真实生产环境中实现大规模 Token 推理任务,证明了其可扩展性、鲁棒性与经济性,为未来 LLM 服务基础设施演进提供了坚实的技术支点。