Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.076 — 2026-09-18
NEWS 4 信源 约 6 分钟

Qwen闪存新招:KV缓存搬进内存

Qwen把缓存分层搬到内存,配合低比特量化,让12GB显卡跑出约15 token/s。

IMAGE — r/LocalLLaMA 日榜

你让本地 AI 读一部长篇小说,它每读一页,都要留下一叠“速记”,否则生成下一句话时就得重新翻书。这叠速记就是 KV Cache——模型保存已读内容中间状态的缓存。文章越长,缓存越大,很快便会挤满显卡显存。现在,社区实验者尝试把 Qwen 的大部分 KV 缓存搬到系统内存,也就是 CPU 一侧容量更大、但离 GPU 更远的 RAM。它值得关注,是因为这条路线正与低比特量化、llama.cpp 的新算子支持汇合,让有限显存承载大模型和长上下文逐渐变得可用。

不过,本文涉及的关键成绩主要来自 Reddit 用户测试,并非官方论文或多方复现实验;不同材料还混用了 Qwen3.8-Flash-Next、Qwen3.8-27B 与 qwen4_exp/qwen4exp 等名称,正式命名和配置仍待核实。

缓存为何不能直接搬走?

系统内存比显存宽裕,却有一道现实门槛:传输速度。模型每生成一个 token——可以粗略理解为一个字或词片段——都要读取模型权重和当前步骤需要的注意力状态。普通的完整注意力层还会反复读取整段 KV 缓存。上下文越长,要搬的数据越多,速度也越慢。

Reddit 用户 sadnessdevil 以材料中所称的 Qwen3.8-27B 为例估算:模型含 12 个 full-attention/QSA 层;每层每个 token 的 K、V 状态占 2,048 B。上下文达到 262,144 tokens 时,单层缓存约 512 MiB,12 层合计约 6 GiB。若每生成一个 token 都通过带宽约 32 GiB/s 的 PCIe 4.0 x16 从主机内存读取这些数据,理论速度只有约 5 token/s。

这也解释了过去为何通常把 KV 缓存留在显存里:它不只是要“存得下”,还得在每一步生成时及时送到 GPU。

新招不是全搬,而是分层放

同一名实验者称,他修改 vLLM——一种运行大模型的推理框架——后,可把 Qwen3.8-Flash-Next 的大部分 KV 缓存放进系统内存,在 3 张 RTX 3090 上运行 1M context,也就是约一百万 token 的上下文。短上下文解码约为 80 token/s;QSA 达到 2,048-token budget 后约为 60 token/s,此后没有继续随总上下文增长而下降。4 个并发请求的总吞吐约 150 token/s,248K 上下文的 prefill——模型先读完输入的阶段——达到 3,701 token/s。

关键不在于把所有缓存粗暴地塞进 RAM,而在于只让适合卸载的部分离开显存,把每一步急需的数据留在 GPU 附近。遗憾的是,供稿中的原帖在解释核心机制处截断,因此目前不能进一步确认具体分层规则,也不能把“几乎不降速”视作已经独立验证的结论。

12GB 显卡跑起来,是另一块拼图

另一名用户用 12GB RTX 5070 SFF、64GB DDR5 和 1TB NVMe SSD,运行约 76GB 的 Qwen3.8-Flash-Next-GSQ-RCO-GGUF。GGUF 是本地推理常用的模型文件格式;量化则是用更少位数保存权重,以较小文件换取可能的精度损失。该用户使用约 3 bpw——平均每个权重约 3 bit——的 IQ3_XXS 版本,并把权重分散在显存、系统内存和 SSD 中。

实测生成速度在 1K、8K、20K 上下文时分别为 13.8、14.6、14.0 token/s;到 90K—100K 时仍有 11.3 token/s,测试中的最大上下文为 128K。这组结果能说明约 76GB 的量化模型确实可以在 12GB 显卡上运行,但材料没有明确证明它采用了前述 KV 缓存卸载机制,两者不能当作同一项实验。

模型发布者称,GSQ-RCO 量化文件约为 68—76GB。其中 Q2_0 相比 IQ2_XS,提示词处理吞吐为 3.4 倍,端到端延迟低 1.9 倍;任务平均分分别为 89.07 和 89.16,显示速度提升只伴随很小的该项分数差距。IQ3_XXS 在 AIME25 上得到 100.00,但两份材料分别称其追平 BF16 与 base model,参照对象不完全一致,因此暂不宜把它概括为“无损量化”。

工具链也在补课

模型结构改变后,推理工具必须补上对应算子——执行注意力、矩阵运算等工作的底层功能单元。llama.cpp 的 PR #28901 为 qwen4exp graph 增加了 hc_prehc_comb 等 hyperconnection 运算,并提供 CPU/CUDA 融合实现。这与 KV 缓存卸载没有直接关系,却说明本地运行所需的基础设施正在跟进。现有材料无法确认该 PR 是否已经合并或进入正式版本。

为什么值得继续看

我们此前连续报道过 KV 缓存的显存预算、流式换入换出、8 位量化和动态腾挪。9 月 16 日又写到同一模型借助量化、RAM 与 SSD 在 12GB 显卡上运行。这次的进展把问题推进了一步:不只拆分模型权重,也开始重新安排会随上下文增长的 KV 缓存。

它呈现的不是一个已经定型的产品方案,而是一套逐渐清晰的分工:显存留给最讲究速度的数据,RAM 承接容量压力,SSD 放置不必常驻的部分,再由推理框架和算子把它们串起来。低显存运行由此不再只是“能不能启动”,而开始进入速度、上下文长度与质量如何平衡的阶段。

局限与未知

  • KV 缓存卸载后仅小幅减速、1M context 与 60—80 token/s 等结果都来自同一名 Reddit 用户,尚缺官方资料和独立复现。
  • 12GB 显卡约 15 token/s 的测试依赖权重在显存、RAM 与 SSD 间分片,不能用来独立证明 KV 缓存卸载有效。
  • IQ3_XXS 的质量参照表述存在分歧;llama.cpp PR 的合并状态,以及相关模型的正式命名与配置,材料均未确认。

供稿材料 SOURCES — 4

← 返回 2026-09-18 · 开源板块