Перейти к содержимому

提示词缓存里到底存了什么?和KV Cache有什么区别?

张司机在路上

0:00 / 0:00

提示词缓存里到底存了什么?和KV Cache有什么区别?

366 просмотров · 4 мес. назад
张司机在路上
1,19 тыс. подписчиков
366 просмотров · 4 мес. назад
很多人对prompt cache有个误解,以为它存的是prompt原文,或者上次的回答,又或者像Redis一样key对value、命中直接返回结果。三种都不对。 这期从Transformer架构往下挖。模型生成回答分两段:Prefill把整段提示词一口气读完,Decode再一个字一个字往外蹦。每蹦一个字,都要把前面所有内容重新过一遍。 要看懂这个过程,得先复习attention。每个token会被投影成三个向量:Query、Key、Value。Query是想找什么,Key是能提供什么,Value才是真正携带的信息。 前面token的K和V,算一次就不再变,每一步Decode都要翻出来重用。于是存下来——这就是KV cache。单步复杂度从N平方降到N。prompt cache再把这种复用扩展到跨请求。前缀和上次一样,Prefill直接搬出存好的K和V,整段Attention计算跳过。所以prompt cache里存的东西,字面上就是Attention里的KV张量。不是原文,不是回答,是模型算到一半的中间结果。 视频里完整画出了QKV三个矩阵、Prefill和Decode到底在算什么、KV cache长什么样、跨请求怎么命中,最后用一张表把KV Cache和Prompt Cache的本质、复杂度、生命周期对比清楚。