有人尝试过KV缓存混合吗?
摘要
作者通过将提示分割成重叠的块来实验KV缓存混合,在Ling3-tiny上实现了预填充速度提升3倍,而不影响检索任务。
这个想法在抽象上相当简单:不是对整个给定提示运行正常的预填充,而是将其分割成部分——分别为部分A和部分B生成缓存,然后连接结果,像正常一样输入到解码中。我原本以为它会完全失败。但我一直在Ling3-tiny的非KDA层上尝试它——如果我在块之间给予一些重叠,模型实际上保持了完整的“大海捞针”检索能力。甚至可以跨分割部分进行综合。目前运行256k提示分割成单独的4k位,到目前为止在(简单)检索任务上似乎没有受到影响。可能在某个地方有折衷。但它将我的预填充速度提升了3倍,使我在256k令牌时获得约1.3k tps的预填充——这几乎与在我的5090上运行Qwen3.8-27b的预填充速度相同。所以看起来可能值得一试
相似文章
@akshay_pachaar:你的 KV 缓存中 90% 从未被重用。(提示缓存从未旨在解决此问题)如果你的系统提示和工具定义…
CacheBlend,EuroSys 2025 最佳论文,解决了由于提示缓存中严格的前缀匹配导致 90% 的 KV 缓存从未被重用的问题。通过选择性地仅重新计算文档之间的边界令牌,它在不损失质量的情况下实现了 2-4 倍的多文档处理速度提升,并在开源 LMCache 层中实现。
为扩散语言模型启用共享前缀的KV缓存
本文提出BiCache,一种面向扩散语言模型共享前缀的新型KV缓存技术,通过动态重用浅层中缓存的键和值来避免精度崩溃,并实现36.3%–98.3%的吞吐量提升。
KVBoost: 基于偏差引导重计算的块级键值缓存重用,用于高效大语言模型推理
KVBoost 是一个块级键值缓存重用系统,用于高效大语言模型推理。它通过双哈希键控和偏差引导的重计算,实现高缓存命中率和首 token 时间的显著加速,且不损失质量。
OasisKV:利用前瞻稀疏预取将解码中KV缓存扩展到HBM之外
OasisKV是一个以内存为中心的LLM推理系统,通过使用来自推测解码的前瞻令牌预取稀疏且重要的KV块,将完整KV缓存存储与HBM解耦,与密集vLLM相比实现了高达2.1倍的吞吐量提升,且精度损失极小。
SelKV:基于逐标记合并或丢弃及注意力补偿的选择性 KV 缓存合并
SelKV 是一个无需训练的 KV 缓存压缩框架,它使用软余弦门进行选择性合并,并通过注意力比例补偿机制纠正 softmax 不平衡,在仅保留 25% 缓存大小的情况下实现近乎无损的生成,在 LongBench 上取得 3.3 倍解码加速。