有人尝试过KV缓存混合吗?

Reddit r/LocalLLaMA 新闻

摘要

作者通过将提示分割成重叠的块来实验KV缓存混合,在Ling3-tiny上实现了预填充速度提升3倍,而不影响检索任务。

这个想法在抽象上相当简单:不是对整个给定提示运行正常的预填充,而是将其分割成部分——分别为部分A和部分B生成缓存,然后连接结果,像正常一样输入到解码中。我原本以为它会完全失败。但我一直在Ling3-tiny的非KDA层上尝试它——如果我在块之间给予一些重叠,模型实际上保持了完整的“大海捞针”检索能力。甚至可以跨分割部分进行综合。目前运行256k提示分割成单独的4k位,到目前为止在(简单)检索任务上似乎没有受到影响。可能在某个地方有折衷。但它将我的预填充速度提升了3倍,使我在256k令牌时获得约1.3k tps的预填充——这几乎与在我的5090上运行Qwen3.8-27b的预填充速度相同。所以看起来可能值得一试
查看原文

相似文章

为扩散语言模型启用共享前缀的KV缓存

arXiv cs.LG

本文提出BiCache,一种面向扩散语言模型共享前缀的新型KV缓存技术,通过动态重用浅层中缓存的键和值来避免精度崩溃,并实现36.3%–98.3%的吞吐量提升。