LMCache:LLM推理的KV Cache管理层
一、项目概述
LMCache 是专为 LLM 推理设计的 KV Cache 管理层。它的核心思想是将 KV Cache 从”临时状态”升级为可复用的”AI 原生知识”——支持持久化存储、跨引擎共享、生产级可观测,以及灵活的 KV 变换能力。
解决的核心问题:LLM 推理中 KV Cache 生命周期短、利用率低。在多轮对话、RAG、Agentic 等重复上下文场景下,每次请求都需要重新 Prefill,浪费大量计算资源。
主要收益:
- 降低 TTFT(Time-to-First-Token,首 Token 延迟)
- 提升推理吞吐量
- 减少重复 Prefill 计算开销
| 许可证:Apache 2.0 | 所属:独立开源项目,已加入 PyTorch Foundation,由 Tensormesh 支持 |
二、核心特性
1. 引擎无关的独立部署
LMCache 以独立 Daemon 进程运行,与推理引擎进程完全解耦。推理引擎崩溃后 KV Cache 不会丢失(无命运共担),同时多个推理引擎实例可共享同一个 LMCache 层。
2. 持久化分层 KV Cache 卸载与复用
KV Cache 可按需迁移到多级存储层次,实现跨请求、跨 Session、跨引擎实例的复用:
GPU 显存
↓ offload
CPU 内存
↓ offload
本地 SSD
↓ offload
远程存储(Redis / S3 / Mooncake / ...)
支持的存储后端:CPU RAM、本地 SSD、Redis/Valkey、Mooncake、InfiniStore、S3 兼容对象存储、NIXL、GDS
3. 生产级可观测性
- Kubernetes 指标:健康监控、性能诊断
- KV Cache 专属指标:前缀命中率(request/token 粒度)、Cache 生命周期、传输性能
- 管理指标:用户级用量统计
4. 非前缀 KV 复用(CacheBlend)
传统前缀缓存只能复用 prompt 前缀匹配的 KV 块。LMCache 基于 CacheBlend 技术,允许在 prompt 任意位置复用 KV 块,通过选择性重计算少量 token 来恢复生成质量,显著提升 RAG 场景下的缓存命中率。
5. PD 分离与 KV 传输
支持 Prefill Worker 与 Decode Worker 独立扩展,两者之间的 KV Cache 通过以下传输层迁移:
- NVLink(同机多卡)
- RDMA(跨机高速网络)
- TCP(通用网络,通过 NIXL)
6. 可插拔 KV 变换
提供灵活的 SERDE 接口,研究者和开发者可自定义:
- KV 压缩(量化、token dropping)
- 自定义序列化格式
- KV 流式传输(CacheGen)
三、架构设计
部署模式
| 模式 | 说明 |
|---|---|
| 单引擎 + LMCache Daemon | 最简部署,KV Cache 持久化到本地 |
| 多引擎共享 LMCache | 多实例共享 KV,适合负载均衡场景 |
| PD 分离架构 | Prefill/Decode 独立扩展,通过 KV 传输连接 |
| 多节点 P2P | 跨机 CPU 内存共享 KV Cache |
代码结构
lmcache/
├── v1/ # 新版核心逻辑(含多进程 MP 架构)
├── integration/ # 推理引擎集成(vLLM 等)
├── storage_backend/ # 存储后端实现
├── lmcache_frontend/ # 前端接口层
├── sdk/ # Python SDK
├── cli/ # 命令行工具
├── observability.py # 可观测性指标核心
└── connections.py # 连接管理
rust/ # Rust 高性能存储操作
csrc/ # C++/CUDA 扩展
operator/ # Kubernetes Operator
benchmarks/ # 性能基准测试
四、生态集成
已集成推理引擎
- vLLM(含 V1,支持多模态模型)
- NVIDIA Dynamo
合作伙伴与采用方
| 类别 | 厂商/项目 |
|---|---|
| 硬件 | NVIDIA、AMD(MI300X)、Arm、Ascend |
| 云/基础设施 | CoreWeave |
| 应用层 | Cohere(通过 CoreWeave) |
| 存储 | Redis、Mooncake、InfiniStore、S3 |
五、快速开始
pip install lmcache
以 vLLM 为例,启动带 LMCache 的推理服务:
# 启动 LMCache Daemon
lmcache_server start
# 启动 vLLM(通过环境变量或配置文件指定 LMCache)
LMCACHE_CONFIG_FILE=lmcache_config.yaml vllm serve meta-llama/Llama-3-8B
六、关键论文
| 论文 | 发表于 | 关键贡献 |
|---|---|---|
| LMCache: An Efficient KV Cache Layer for Enterprise-Scale LLM Inference | arXiv 2025 | 整体框架设计 |
| CacheGen: KV Cache Compression and Streaming | SIGCOMM 2024 | KV 压缩与流式传输 |
| CacheBlend: Fast LLM Serving for RAG with Cached Knowledge Fusion | EuroSys 2025 | 非前缀 KV 复用 |
七、近期重要进展
| 时间 | 事件 |
|---|---|
| 2026/05 | AMD MI300X Agentic 工作负载 benchmark 发布 |
| 2026/04 | 新多进程(MP)架构发布,MoE 推理性能提升约 10x |
| 2026/01 | 多节点 P2P CPU 内存共享功能进入生产 |
| 2025/10 | 加入 PyTorch Foundation,Tensormesh 对外发布 |
| 2025/09 | NVIDIA Dynamo 正式集成 LMCache |
| 2025/08 | GitHub Stars 突破 5,000 |
| 2025/07 | 与 Redis 合作,支持 Redis 作为 KV Cache 后端 |
八、总结
LMCache 将 KV Cache 从推理引擎的内部临时状态提升为独立管理的持久化资源,形成了一个”KV Cache 即服务”的中间层。其独立进程架构保证了与推理引擎的松耦合,可插拔存储后端提供了充分的灵活性,而 CacheBlend 等技术则将缓存复用能力从简单的前缀匹配扩展到了更通用的场景。对于需要处理大量重复上下文的生产 LLM 应用,LMCache 是值得关注的基础设施组件。