[Paper] LLMCache:层级式缓存策略以加速 Transformer 推理中的复用
发布: (2025年12月19日 GMT+8 02:18)
6 min read
原文: arXiv
Source: arXiv - 2512.16843v1
概述
该论文介绍了 LLMCache,一种层级缓存系统,通过在新输入与先前见过的输入在语义上相似时复用中间激活,来加速 transformer 模型的推理。LLMCache 可以在任意 transformer 层工作且与模型无关,承诺在不牺牲准确性的前提下显著降低延迟,使其在实时和大规模部署中具有吸引力。
关键贡献
- 逐层缓存框架,适用于仅编码器(如 BERT)和仅解码器(如 GPT‑2)架构。
- 语义指纹:一种轻量级方法,用于检测新输入是否“足够接近”已缓存的输入,从而复用隐藏状态。
- 自适应驱逐策略,在缓存新鲜度与内存压力之间取得平衡,防止陈旧激活影响模型质量。
- 模型无关设计:无需对底层 Transformer 权重或训练流水线进行任何修改。
- 实证验证,在三个基准(SQuAD、WikiText‑103、OpenBookQA)上显示最高 3.1× 加速,且 < 0.5 % 准确率下降。
方法论
- 指纹生成 – 对于每个输入序列,LLMCache 计算一个紧凑的“语义指纹”(例如,从第一层 token 嵌入的低维投影中得到的短哈希)。
- 相似性查找 – 将指纹与缓存中已有的条目进行比较。如果匹配度超过可配置的相似性阈值,系统将新输入视为近似重复。
- 激活复用 – 不重新计算每一层,LLMCache 从最深的匹配层检索缓存的隐藏状态,并从该点继续前向传播。
- 缓存管理 – 自适应驱逐策略监控使用频率、最近程度以及新鲜度分数(基于缓存激活与当前模型参数的差距),决定丢弃哪些条目。
- 集成 – 缓存逻辑包装在标准 Transformer 前向传播周围,只需一个薄插件层;无需重新训练或对模型进行特定修改。
结果与发现
| 模型 / 任务 | 基准延迟 (ms) | LLMCache 延迟 (ms) | 加速比 | 准确率 Δ |
|---|---|---|---|---|
| BERT‑Base (SQuAD) | 48 | 16 | 3.0× | –0.3 % |
| GPT‑2 (WikiText‑103) | 62 | 20 | 3.1× | –0.4 % |
| BERT‑Large (OpenBookQA) | 71 | 28 | 2.5× | –0.5 % |
- 缓存命中率 在 38 % 到 62 % 之间,取决于数据集的冗余程度,证实了许多真实世界的输入具有足够的语义重叠,可从复用中获益。
- 内存开销 在单个 GPU 上,缓存 10 k 条目时保持在 1 GB 以下,远低于典型的生产预算。
- 消融研究 表明,64 位指纹维度在命中率与冲突风险之间提供了最佳折中。
实际意义
- 实时服务(聊天机器人、代码助手、搜索)可以在每次请求上节省数十毫秒,从而提升吞吐量并降低云成本。
- 边缘部署(移动或物联网设备)因缓存减少了昂贵的矩阵乘法次数,获得在本地运行更大语言模型的可行路径。
- 批处理流水线(例如文档摘要)可以在相似文档之间复用激活值,显著缩短总体推理时间,而无需修改模型。
- 框架集成——作者发布了一个兼容 PyTorch 的库,只需在现有推理服务器(如 TorchServe、FastAPI)中添加一个装饰器即可使用,降低了采纳门槛。
限制与未来工作
- 缓存效果依赖于输入的冗余度;高度多样的流(例如随机查询)会导致命中率低,从而限制加速效果。
- 当前的指纹方案是静态的;动态的、学习得到的相似度度量可以捕获更丰富的语义。
- 模型更新(例如微调)下的缓存一致性尚未充分研究——未来工作可以探索自动失效或版本化缓存。
- 扩展到多 GPU 或分布式环境会引入同步开销;本文将分布式缓存一致性留作未解挑战。
总体而言,LLMCache 为开发者提供了一种务实、模型无关的工具,能够在不牺牲准确性的前提下进一步提升 Transformer 推理性能,是性能工程工具箱中的一项引人注目的补充。
作者
- Harsh Vardhan Bansal
论文信息
- arXiv ID: 2512.16843v1
- 分类: cs.CL, cs.AI
- 发布时间: 2025年12月18日
- PDF: 下载 PDF