ModelEngine-Group/unified-cache-management

Persist and reuse KV Cache to speedup your LLM.

Unified Cache Manager (UCM)

它是什么 – UCM 是一个位于 LLM 推理引擎(例如 Transformers, vLLM 等)与其键值 (KV) 注意力缓存存储之间的库。它提供了一个单一的 KV-cache 层,能够:

  • 重用:在不同的推理请求之间重用先前计算的注意力状态(例如多轮对话、多模态流水线)。
  • 移动:在快速加速器内存与较慢的外部存储之间移动缓存数据,从而扩展有限的 GPU/TPU 内存。
  • 外挂:在不更改应用程序代码的情况下,插入不同的存储后端(内存池、文件系统 Blob、网络存储)与引擎适配器。

为什么它很重要

当许多请求出现相同的提示前缀时,LLM 推理会重复计算相同的注意力上下文。通过在单次前向传递之外保持 KV 缓存,并在需要时将其溢出至外部存储,UCM 可以减少计算时间并降低加速器的内存压力——这对于长效代理、聊天机器人或需要回顾早期上下文的多模态应用程序特别有用。

核心概念

组件 角色
应用程序 / 推理引擎 在预填充 (pre-fill) 步骤产生 KV 缓存,并在解码 (decode) 期间使用它。
统一缓存 (Unified Cache) 决定保留什么缓存、在哪里保留,以及何时移动(例如预填充-解码传输、稀疏注意力加载)。
全局 KV 存储 (Global KV Store) 抽象存储层;实现可以是纯 RAM、基于磁盘或分布式的。

主要功能(如 README 所述)

  • 可插拔适配器:支持多种推理引擎。
  • 可插拔存储后端:支持内存池、文件系统、自定义存储等。
  • 缓存生命周期管理:自动重用、驱逐与移动。
  • 支持高级重用模式:如共享前缀、多模态上下文与 KV-Bridge 风格的块缓存。
  • 可观测性工具:检查缓存重用情况与运行时行为。
  • 可扩展开发者指南:用于新增引擎、存储或缓存机制。

典型使用案例

  1. 聊天机器人服务器:将对话历史保留在 KV 缓存中,以便每个新回合只需计算新 Token。
  2. 多模态流水线:图像-文本嵌入共享大型共同前缀。
  3. 批处理推理:许多请求共享相同的系统提示或少样本 (few-shot) 示例。
  4. 资源受限的部署:需要将缓存溢出至 SSD 或网络存储,以在有限的 GPU 内存上容纳更大的上下文。

入门指南(来自 README 的快速步骤)

  1. 检查兼容性:查阅支持矩阵,确保您的引擎、模型与硬件受到支持。
  2. 遵循快速入门:安装适当的制品(pip 包或容器镜像),配置存储后端,并使用 --ucm 标志(或同等标志)启动引擎。
  3. 验证:使用可观测性指南观察缓存重用指标,并确认缓存移动是否如预期发生。

所有详细指令、Docker 镜像标签与配置示例皆位于在线文档中。

社区与贡献

  • 贡献:通过开发者指南新增引擎适配器、存储后端或缓存策略。
  • 错误报告 / 功能请求:在 GitHub 仓库开启 Issue。
  • 文档:包含详尽的用户指南、开发者指南与故障排除章节。

授权条款

UCM 采用 MIT 授权条款发布,并附带额外条件(请参阅仓库中的 LICENSE 文件)。


以上所有信息均直接取自仓库的 README 与链接文档;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目