LMCache/LMCache
LMCache: Supercharge Your LLM with the Fastest KV Cache Layer
解决的问题
LMCache 解决了 LLM 推理中 Key-Value (KV) 缓存效率低下的问题,因为 KV 缓存通常被视为临时状态。通过将 KV 缓存转换为可重用的持久知识,LMCache 缩短了首字响应时间 (TTFT) 并提高了吞吐量,特别是对于重复的 prefill 计算成为主要瓶颈的长上下文智能体工作负载、多轮对话和 RAG 应用。
工作原理
LMCache 作为一个中立于厂商的管理层,位于推理引擎和存储之间。它将 KV 缓存作为独立的守护进程进行管理,防止引擎崩溃时发生缓存丢失。它采用分层存储体系(CPU 内存、本地 SSD 以及 Redis 或 S3 等远程后端)来跨不同的请求、会话和引擎实例卸载并重用缓存。
除了简单的前缀缓存外,它还通过 CacheBlend 支持非前缀 KV 重用,以选择性地重新计算 Token。它还支持 Prefill-Decode (PD) 解耦,通过 NVLink、RDMA 或 TCP 将 KV 缓存从 prefill 工作节点传输到 decode 工作节点。
适用对象
需要优化长上下文或多轮交互性能,且不希望被特定推理引擎或硬件厂商绑定的构建可扩展 LLM 服务系统的开发人员和基础设施提供商。
亮点
- 引擎无关的部署:KV 缓存由独立的守护进程管理,确保即使推理引擎崩溃,缓存依然存在。
- 持久化分层存储:将 KV 缓存卸载到 CPU RAM、本地磁盘和远程后端(如 Redis、S3),实现跨会话重用。
- 可插拔后端:支持广泛的传输和存储提供商,包括 NVLink、RDMA、Redis 和兼容 S3 的存储。
- 非前缀重用:可以重用提示词中任何位置的缓存 KV 块,而不仅仅是开头部分。
- 生产级可观测性:提供有关缓存命中、生命周期和性能诊断的详细指标。
- KV 转换:为研究人员实现自定义压缩和序列化提供灵活的接口。