返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

阿里大模型面试原题:LLM推理为什么用KV Cache

[复制链接]
链载Ai 显示全部楼层 发表于 9 小时前 |阅读模式 打印 上一主题 下一主题





本篇介绍为什么 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辅导,已帮助多名同学成功上岸

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ