ModelEngine-Group/unified-cache-management
Persist and reuse KV Cache to speedup your LLM.
What it solves
Unified Cache Manager (UCM) 解决了大型语言模型 (LLM) 在进行长序列推理时,与 KV cache 相关的高 GPU 显存消耗和计算冗余问题。它通过将 KV cache 卸载到外部存储,并通过高效的检索机制来减少冗余计算,从而解决 GPU 显存有限的问题。
How it works
UCM 实现了存储-计算分离的架构,将 KV cache 持久化,并用检索代替冗余计算。它与 vLLM 集成,并使用几个关键组件:
- UcmSparseBase: 一个基类,允许各种稀疏注意力算法作为模块进行插拔。
- SparseKVManager: 管理不同算法的自定义 KV block 分配。
- KVStoreBase: 将稀疏算法与外部存储解耦,使它们能够通过 block ID 和 offset 使用各种存储系统(例如:本地文件系统或 NFS)进行工作。
- KVStoreConnector: 将系统与 vLLM 的 KVConnectorBase 连接,以启用前缀缓存 (prefix caching)。
Who it’s for
它是为开发者和研究人员设计的,特别是在使用 LLM 推理引擎(特别是 vLLM)并需要针对多轮对话、长上下文推理和极长序列推理任务进行性能优化的人员。
Highlights
- Performance Boost: 与 vLLM 集成时,可实现 3-10 倍的推理延迟降低。
- Flexible Retrieval: 支持前缀缓存 (prefix caching) 和各种无需训练的稀疏注意力检索方法。
- Storage-Compute Separation: 实现异构 PD (Prefill-Decode) 解耦,以实现更灵活的资源管理。
- Comprehensive Feature Set: 包括 prefill offload、cache blend 和 model window extrapolation。