同一本厚笔记,回答不同问题时,值得细看的页并不一样。语言模型的 KV 缓存也是如此:它保存此前文字的中间结果,避免每生成一个新词都从头计算,但长文本会让这本“速查笔记”占用大量显存。以往的量化通常统一降低精度;ReadKV 则让每一步生成根据当前问题,决定缓存各处要读多少比特。
它先把缓存写成渐进式编码:少量比特可还原粗略内容,继续读取才补足细节,类似先看缩略图,再按需加载高清图。当前查询先决定哪些 key 通道值得精读;模型据此算出注意力——也就是对上下文各处的关注权重——再决定哪些 value 位置需要更多比特。缓存本身不用重写。
作者报告,在六个基础模型上,缓存保留 8 比特、每次平均读取 4 比特时,C4 困惑度相对未压缩版本最多增加 0.66%;与 16 比特缓存相比,逻辑读取量约为四分之一,保留容量为一半。相同读取预算下,它也比“只存并完整读取 4 比特”更准确。关键变化是把“存多少”和“这次读多少”拆开:多留细节给未来的问题,却不必每次全部搬进计算。