Zefan-Cai/KVCache-Factory
Unified KV Cache Compression Methods for Auto-Regressive Models
解决的问题
KVCache-Factory 解决了长上下文大语言模型(LLM)推理过程中与键值(KV)缓存相关的内存瓶颈。随着上下文长度增加,KV 缓存呈线性增长,消耗大量 GPU 内存并拖慢解码速度。本项目提供了一个统一框架,用于实现、比较和评估各种降低内存占用的策略,同时不牺牲模型性能。
如何工作
该项目作为一个“实验场”,将多种 KV 缓存优化技术整合到一个统一的评估接口下。它支持以下几类方法:
- 压缩与淘汰:移除不重要的 token(例如:StreamingLLM、H2O、SnapKV、PyramidKV)。
- 检索:仅选择与当前查询最相关的 token(例如:Quest、L2Norm)。
- 合并:将多个 KV 对聚合为一个(例如:CAM)。
- 量化:降低缓存值的精度(例如:KIVI、KVQuant、GEAR)。
- 卸载:将 KV 缓存移至 CPU 内存,并逐个流式传输回 GPU,以在不导致 GPU 内存溢出的情况下保持完整精度(HeadInfer)。
包含用于 LongBench、RULER 和「针在 haystack 中」等标准基准的运行器,用于衡量这些方法对准确率和延迟的影响。
适用人群
本工具专为从事 LLM 效率研究的 AI 研究人员和开发者设计,尤其适合希望优化长上下文窗口性能或对比不同 KV 缓存管理策略的人群。
亮点
- 统一接口:支持广泛的基线方法,包括 PyramidKV、SnapKV、H2O 和 StreamingLLM。
- 多样化的优化策略:在一个地方整合了淘汰、检索、合并、量化和无损卸载等多种策略。
- 全面的基准测试:集成支持 LongBench、RULER 和 Needle-in-a-haystack 评估。
- 硬件灵活性:支持大模型(如 Llama-3-70B)的多 GPU 推理,并提供 FlashAttention v2 和 SDPA 两种路径。
- 可视化工具:包含用于可视化注意力模式的工具,帮助理解不同压缩方法如何影响模型关注点。
相关
- 项目
- Dispatch
- 项目
- 项目
- 项目