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。