工具
社区实测 KV cache 分块拼接:256k 上下文预填充提速约 3 倍
Reddit 用户测试将长 prompt 切块分别构建 KV cache 再拼接,预填充速度提升 3 倍且简单检索能力未…
2026.08.22 · 周六约 2 分钟阅读
近日,r/LocalLLaMA 社区用户 maddie-lovelace 分享了一项针对长上下文推理的实测技巧——KV cache 分块拼接(KV cache blending)。其核心思路是:把超长 prompt 拆成若干子段,分别独立生成 KV cache,再拼接后送入正常的 decode 阶段,绕开一次性 prefill 的开销。
做法概述
用户没有公开完整代码,但描述了关键步骤:
- 将整段 prompt 分块(例如 256k tokens 切成多个 4k 的小段)。
- 对每段单独执行 prefill,生成对应的 KV cache。
- 在段与段之间预留少量重叠(overlap)。
- 把各段 KV cache 拼接后直接进入 decode,不再走完整 prefill。
实测表现
测试在 Ling3-tiny 的非 KDA 层上进行。结果显示:
- 预填充速度约提升 3 倍,256k tokens 上下文下达到约 1.3k tps 的 prefill 吞吐。
- 在简单的 needle-in-haystack 检索任务中,模型仍能正确回忆分散在不同段中的信息,并且能跨段进行一定程度的综合回答。
- 与同等硬件(RTX 5090)上跑 Qwen3.8-27b 的预填充速度基本相当。
局限与注意事项
作者本人也坦言这只是初步尝试,存在明显边界:
- 仅在 Ling3-tiny 上验证,其他模型是否同样有效未知。
- 评测任务较简单,仅覆盖基础的检索与跨段合成,没有跑完整 benchmark。
- 不同模型层结构(如 KDA 等)对分块拼接的容忍度可能不同。
- 理论上仍存在位置编码、注意力跨段建模等方面的潜在退化,需要更系统的实验确认。
社区价值
对于在消费级显卡上跑长上下文模型的玩家而言,prefill 速度往往是首要瓶颈。该方法思路简洁、门槛不高,若后续在更多模型与任务上得到验证,有望成为本地推理栈的一项实用优化。但目前仍属于个人经验分享,缺乏论文或可复现的完整实现,距离工程化落地还有距离。
