KV缓存和前缀缓存
- KV缓存
- KV 缓存(Key-Value Cache)是 LLM 在生成文本时,把已经计算过的历史 Token 的 K、V 结果缓存起来,避免后续重复计算
- 注意:KV Cache 不是“键值对存储”,而是“缓存 Attention 中历史 token 的 K 向量和 V 向量”。
- KV Cache ≈ K 向量 + V 向量的缓存。
- 缓存历史 Token 在 Attention 中已经计算出来的 Key(K)和 Value(V)向量。
- 前缀缓存:
- 如果很多请求开头内容相同,就复用这部分前缀已经计算好的 KV Cache
利用前缀缓存优化LLM性能
- 保持RAG的回复顺序,比如说一个回答,RAG检索3条数据,建议按首字母排序,充分利用前缀缓存
- 为什么不能按语义相似度排序?
- 可能不稳定,会导致顺序会发生小的变化
- 为什么不能按语义相似度排序?
- 会话Mesaage,可以加上历史消息,也能利用前缀缓存