本篇介绍为什么 LLM 推理加速有 KV Cache 而没有 Q Cache。
简单来说,LLM 在 decoding 阶段的每次推理只会用到当前的 Q,这次用的 Q 下次不会用到,所以不用 Cache Q。
但是每次都要用到当前和过去所有的 KV,这次用到的 KV 下次马上就要再用一次,所以 Cache KV 可以加速推理。
下面说明原因:
直到这一步,K 和 Q 看上去都很对称。轮换一下 K 和 Q 对结果没有本质影响。
这是没有 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
✅我是丁师兄,专注于智能驾驶大模型,持续分享LLM面试干货。
✅大模型1v1辅导,已帮助多名同学成功上岸
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |