AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


阿里大模型面试原题:LLM推理为什么用KV Cache
发布日期:2024-08-30 06:23:41 浏览次数: 1711







本篇介绍为什么 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,Q 和 K 在结果中都是不对称的。

在序列的 t 位置,Q 只有当前位置的 ??q_t 参与了计算,而 K 和 V 多个位置参与了计算,所以需要 KV Cache,而不需要 Q Cache。

在没有 Causal Mask 时,计算 t 位置的 Attention 需要未来的 KV,这在实际进行自回归推理时无法得到;加上 Causal Mask 之后,只需要 1,2,…,t 位置的 KV 就可以进行推理。

来源:https://www.zhihu.com/question/653658936/answer/3545520807



END


加入学习




 我是丁师兄,专注于智能驾驶大模型,持续分享LLM面试干货。


 大模型1v1辅导,已帮助多名同学成功上岸


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询