文章预览
技术总结专栏 本篇介绍为什么 LLM推理 加速有KV Cache而没有Q Cache。 简单来说,LLM在 decoding阶段的每次推理只会用到当前的Q ,这次用的Q下次不会用到,所以不用Cache Q; 但是每次都要用到当前和过去所有的KV,这次用到的KV下次马上就要再用一次,所以Cache KV可以加速推理。 下面说明原因: 观察Attention公式,这个K和Q怎么看都很对称,为什么只Cache K而不Cache Q? 把KQV写成分块的形式,像这样: 然后Q和K转置的矩阵乘就变成了这样: 直到这一步,K和Q看上去都很对称。轮换一下K和Q对结果没有本质影响。 V的引入破坏了这一对称性。忽略 𝑑𝑘 系数,第i行的softmax简写成 𝑆𝑖 ,attention操作的结果变成了这样: 这是没有Causal Mask(因果掩码)的情况。加入Causal Mask会变成这样: 可以写一下结果的通项,没有Causal Mask: 有Causal Mask: 无论有没有Causal Mask
………………………………