KV Cache

原理

这里贴一张经典的图(ref:https://infrasys-ai.github.io/aiinfra-docs/05Infer02InferSpeedUp/01KVCache.html)

但我个人觉得这个图不能体现KV Cache减少计算的情况,因为看起来Attention的结果在前后也有优化,但实际上左边的Q也可以改成单个的,关键的是不需要重复计算K和V了。

数学推理参考https://datahonor.com/blog/2025/06/03/llm_kv_cache/

prefix Cache

直白讲,就是在KV Cache保存时,如果是相同前缀的完全相同的block,可以复用。

比如下面的问题2(ref:https://zhuanlan.zhihu.com/p/1916181593229334390),这里的前缀如果变了,对应上图中K和V的前面几根柱形发生了变化,会直接影响所有的生成的Attention的结果,因此不能复用。(似乎可以是一个优化点?比如通过调整输入prompt的顺序,或是进行同义prompt的转换)

相关推荐
enjoy编程12 天前
Spring AI 大模型工程核心:效率的极限博弈
注意力机制·flashattention·kv cache·pd分离·pagedattention·epd分离·radixattention
每天都要写算法(努力版)24 天前
【混合注意力模型的 KV Cache 设计与统一管理实践解析】
llm·vllm·kv cache
爱分享的飘哥6 个月前
第四十六章:AI的“瞬时记忆”与“高效聚焦”:llama.cpp的KV Cache与Attention机制
llama·llama.cpp·kv cache·attention优化·llm cpu推理·量化attention·gguf推理
SpikeKing1 年前
LLM - GPT(Decoder Only) 类模型的 KV Cache 公式与原理 教程
gpt·attention·公式·矩阵乘法·kv cache·decoderonly·键值缓存