KV Cache
让AI不必重新计算已经读过的内容,而临时存储这些内容的记忆空间
简单来说
KV缓存是AI在继续生成文字时,为了不必从头重新读一遍已经读过的部分,而把提前算好的内容暂时存放起来的一块记忆空间。
设想一个人在朗读一本很长的书。如果每读一句新的话,都要把前面所有页面从头再读一遍,那么读到后面速度会越来越慢。相反,如果把目前读过内容的摘要笔记堆在旁边,需要时瞥一眼,效率会高得多。AI在逐字生成回答时也是同样的道理:它会把之前出现过的内容的计算结果像笔记一样堆积起来重复使用。这堆笔记就是KV缓存。
问题在于,对话或文档越长,这堆笔记也会越来越厚。如果堆放笔记的"桌子"——也就是显卡的内存空间——不够大,再强大的AI处理长文本时也会力不从心。因此,通过压缩模型来腾出更多这类内存空间的尝试屡见不鲜。
在报道中是这样出现的
一篇文章在解释压缩模型的原因时提到,这样做"即便在24GB或32GB级别的GPU上,也能腾出空间同时运行KV缓存、感知编码器和推测解码起草器"。另一篇文章则指出,"实际上还要再加上KV缓存。如果上下文用得很长,缓存有时会膨胀到和权重差不多大"。一个常见的误解是,以为只要备好模型文件本身所需的容量就足够运行了,但实际上对话越长,这个缓存就会额外占用内存,这一点很容易被忽略。
亲手试一试
先向聊天机器人提一个简短的问题,感受一下回答速度。然后粘贴一段很长的文档,再针对它提问,比较一下这次得到回复开始所花的时间。你会发现,对话(或粘贴的文档)越长,AI需要参考的笔记就越多,得到第一个回复所需的时间也就越长。
