桃子桃子快讯
返回首页
工具

社区实测 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 速度往往是首要瓶颈。该方法思路简洁、门槛不高,若后续在更多模型与任务上得到验证,有望成为本地推理栈的一项实用优化。但目前仍属于个人经验分享,缺乏论文或可复现的完整实现,距离工程化落地还有距离。

信源