简单kv-cacheKV Cache字节跳动腾讯面试高频
什么是 KV Cache?为什么推理时需要它?
14 0 0
参考答案
KV Cache(键值缓存)是自回归解码中用于避免重复计算的核心优化。 **原理**:Transformer 解码时逐 token 生成,生成第 t 个 token 需要它与前面所有 token 的注意力。注意力公式 `Attention(Q,K,V)=softmax(QKᵀ/√d)V` 中,历史 token 的 K、V 在后续步骤里保持不变。若每步都重算全部 K、V,复杂度是 O(n²·d);把已算过的 K、V 缓存下来,每步只需为新 token 计算一份 K、V 并追加,单步复杂度降为 O(n·d)。 **两阶段**: - Prefill(预填充):并行处理整个 prompt,建立初始 KV Cache。 - Decode(解码):逐 token 生成,每步把新 token 的 K、V 拼接进 Cache。 **为什么没有 Q Cache**(高频陷阱题):Q 代表"当前 token 的查询",每步都变且只用当前的 Q 去查历史,不需要缓存历史 Q;而 K、V 代表历史信息,固定不变,所以只缓存 K、V。 **代价**:KV Cache 显存占用随序列长度线性增长,长上下文下会成为显存瓶颈,由此衍生出 GQA/MQA、KV 量化、PagedAttention 等一系列优化。
讨论区(0)
还没有评论,来做第一个发言的人吧