中级

什么是 KV cache,它为什么对推理很重要?

英文原题:What is the KV cache and why does it matter for inference?

先口头作答,再对照评分要点给自己打 1 到 5 分。下面是评分要点、常见扣分点、参考回答和追问。

中文手册 $9.99,Gumroad 即时下载优惠码 EARLYBF 立减 40%,截至太平洋时间 11 月 3 日 23:59

练完一遍了? 用英文写下回答,粘贴到免费自查工具打分(工具按英文要点评分)

考察点

是否足够理解自回归解码,能说清缓存了什么、为什么缓存;能用公式估算显存;并且知道限制 batch size 和上下文长度的常常是这份缓存,而不只是模型权重。

评分要点

  1. 原因:自回归解码时,前面 token 的 key 和 value 不会再变,所以存下来复用,每个新 token 只算自己的 Q、K、V,不用重算整个前缀。
  2. 代价:每条序列的显存约为 2 x 层数 x kv_heads x head_dim x token 数 x 每个值的字节数,能当场做粗略估算。
  3. 后果:它常常比权重更早限制 batch size 和上下文长度。
  4. 缓解手段:GQA(grouped-query attention,分组查询注意力)、KV 量化、分页分配(如 vLLM 的 PagedAttention)。

常见扣分点

说 query 也被缓存;实际上只复用前面 token 的 key 和 value。

参考回答

自回归解码时,前面 token 的 key 和 value 不会改变,所以把它们存起来复用;每个新 token 只需计算自己的 query、key 和 value。这样每一步 attention 不再重算整个前缀,而是对缓存的张量做一次计算。

代价是显存。每条序列大约是 2 x 层数 x kv_heads x head_dim x token 数 x 每个值的字节数。以 32 层、8 个 KV head、head_dim 128、8k token、fp16 为例:2 x 32 x 8 x 128 x 8192 x 2 字节,每条序列约 1 GiB。所以 KV cache 常常比权重更早成为 batch size 和上下文长度的瓶颈。

GQA、KV 量化以及 vLLM 的 PagedAttention 这类分页分配,都是为了压缩或更紧凑地存放它。

常见追问

估算一个 32 层、8 个 KV head、head_dim 128、8k token、fp16 模型的 KV cache 显存。 2 x 32 x 8 x 128 x 8192 x 2 字节,每条序列约 1 GiB。
中文手册想要完整的中文备考方法?

《如何从0到1准备AI Engineer面试》:20 章、5 套答题框架(FLAME、SPARK、FORGE、RISE、EMBER)、100 道题库和 8 周备考计划。

获取中文手册 优惠码 EARLYBF 立减 40%,截至太平洋时间 11 月 3 日 23:59

更想读英文版?The 0→1 AI Engineer Interview Playbook,$19.99,Gumroad 英文版。也可以先免费领取 Top 30 题 PDF(英文)。

相关链接