以 Mooncake 作为 vLLM 的 KVCache 传输与缓存后端,实现 PD 分离推理
vLLM 负责推理计算,Mooncake 通过 RDMA 提供 KVCache 跨实例传输与共享存储
方案简介
以 Mooncake 作为 vLLM 的 KVCache 传输与缓存后端,实现 PD 分离推理。vLLM 负责推理计算,Mooncake 通过 RDMA 提供 KVCache 跨实例传输与共享存储
亮点与能力
- 高吞吐的分布式 KVCache 引擎,为 vLLM 推理加速
- 跨实例 KV cache 共享,节省内存并避免重复计算
- 以 KV Connector 形式直接集成进 vLLM v1,用于 PD 分离部署
- 支持 vLLM-Omni 的
MooncakeStoreConnector与MooncakeTransferEngineConnector两种连接器,服务多节点全模态流水线 - 可作为 vLLM Ascend 的分布式 KV cache 池后端
- 通过 RDMA 实现高效数据传输
组成与分工
- Mooncake Transfer Engine:以 KV Connector 身份直接集成到 vLLM v1,承担 KVCache 的跨节点传输,PD 分离场景下把 Prefill 产生的 KV 缓存高效送往 Decode 节点
- Mooncake Store:分布式 KVCache 引擎/缓存池后端,提供高吞吐、省内存、跨实例的 KV cache 共享
- vLLM:LLM 推理引擎,负责实际的模型推理计算,通过连接器接入 Mooncake 的传输与缓存能力
- vLLM Ascend:vLLM 的昇腾版本,可使用 Mooncake Store 作为其分布式 KV cache 池后端
实施步骤
1. 获取 Mooncake Transfer Engine
项目在 PyPI 上发布了针对不同硬件平台的分发版本,可按 CUDA 版本、NPU、ROCm 等选择对应包(如 mooncake-transfer-engine、mooncake-transfer-engine-cuda13、mooncake-transfer-engine-npu 等),也可使用 Docker 镜像 kvcacheai/mooncake。
2. 在 vLLM 中启用 Mooncake Connector
Mooncake Transfer Engine 已直接集成进 vLLM v1,作为 KV Connector 使用;vLLM 官方文档提供 mooncake_connector_usage 用法说明。对于 vLLM-Omni 全模态流水线,可在 disaggregated inference connectors 中选择 MooncakeStoreConnector 或 MooncakeTransferEngineConnector。
3. 验证
通过 vLLM 官方博客对 Mooncake Store 的深入介绍可了解其如何以高吞吐、跨实例 KV cache 共享增强 vLLM 推理;在 PD 分离部署下观察 KV 缓存传输是否正常即可确认集成成功。
注意事项与常见问题
- 在真实工作负载下,Mooncake 的创新架构使 Kimi 在满足 SLO 的前提下多处理 75% 的请求,说明该架构的收益以遵守 SLO 为前提。
- PyPI 分发包按硬件平台细分(CUDA <=12.9、CUDA 13.0/13.1、Non-CUDA、NPU、MUSA、EFA、ROCm),安装时需按自身硬件选择正确版本。
优缺点
- ✓ 高吞吐跨实例 KVCache 共享
- ✓ vLLM 官方原生集成
出处
本方案挖掘自开源项目 kvcache-ai/Mooncake,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。