KV Cache 缓存什么,怎样影响推理速度和显存?

考查重点:缓存复用与计算、显存的权衡。缓存各层历史 token 的 K/V,生成新 token 时复用,以显存换取较少的重复计算;缓存占用随序列长度和并发序列数增长

本题目录

参考答案

核心回答

KV Cache 缓存的是因果 Transformer 各层已经处理过的 token 的 Key 和 Value 张量。生成新 token 时,只计算这个新位置的 Q、K、V,再让新 Q 与历史及当前 K、V 做注意力,避免把整个前缀重新前向计算。历史 Q 不参与新位置的注意力,所以通常不用缓存。

它用显存换计算:减少重复的投影、前馈与注意力计算,但缓存会随上下文长度、并发序列数和层数增长。上下文很长时,读取历史 KV 的带宽和缓存容量又会成为瓶颈;KV Cache 不会让完整注意力的每一步都变成常数时间。

缓存为什么可以复用

因果掩码保证位置 i 不依赖未来 token。在模型权重、前缀 token、位置编号和计算设置相同时,追加后文不会改变历史位置的表示,因此各层的历史 K、V 保持有效。

预填充阶段一次处理输入前缀并建立缓存;解码阶段输入最新 token、追加其 KV,输出下一 token 的分布。这里“生成第 t+1 个 token”通常使用处理到第 t 个 token 后的输出,注意不要把预测位置与输入位置混为一谈。

若前缀被摘要替换、模板变化或权重切换,应从最早发生变化的位置重新建立受影响的缓存。缓存是模型中间状态,不是可以随意拼接的文本记忆。

把一个解码步展开,区分“输入当前 token”和“预测下一个 token”:

当前token的Q读取历史及当前KV,各层继续处理后预测下一个token,历史Q无需缓存

图展示标准因果解码中的一层注意力与后续处理。缓存复用仍要求模型、前缀、位置与计算设置一致;读取历史 KV 的成本随长度增加。

显存如何估算

普通 MHA/GQA、每层配置相同且 K/V 维度相同时,逻辑缓存可近似为:

KV字节数 = 2 × B × T × L × H_kv × D_head × S

B 是同时保留的序列数,T 是每条序列已缓存的 token 数,L 是层数,H_kv 是 KV 头数,D_head 是每头维度,S 是每元素字节数;2 表示 K 和 V。不同长度请求应分别求和;分页、对齐、量化尺度等还会增加实际开销。

例如 B=1、T=4096、L=32、H_kv=8、D_head=128、FP16 每元素2字节,结果是 536,870,912 字节,即 512 MiB。若其他条件相同,H_kv 从8增加到32,缓存变为2 GiB。这是配置算例,不是某模型的实测。MLA等压缩结构应按实际缓存表示另算。

怎样优化与验证

  • 控制有效上下文和最大输出长度,回收完成或取消请求的缓存。
  • GQA/MQA减少KV头数,缓存量化减少每元素字节数;前者涉及模型结构,后者需验证精度、内核和反量化开销。
  • 分页管理减少碎片,前缀缓存复用相同前缀;它们不等于减少每个独特token在模型中必需的逻辑KV。
  • 比较同一模型、精度、输入输出长度下的首token时延、每token时延、吞吐、峰值显存和结果一致性,避免把不同负载的数字直接比较。

追问:为什么训练通常不采用同样的逐token缓存?

标准教师强制训练已知整个输入序列,可以用因果掩码并行计算各位置,并需要保存反向传播所需的计算图。推理解码式的可变缓存既破坏这种并行优势,也不能直接替代训练激活。

对应教程

参考资料

相关面经

12 篇

字节跳动

广告算法岗
查看原面经 →
kvcache怎么做的,了解大模型中别的提高效率的办法吗位置编码

快手

Agent 开发工程师
二面
查看原面经 →
请解释 KV Cache 在大模型推理中的作用,以及它对生成速度、显存占用和长上下文有什么影响。

公司未注明

AI 应用开发工程师
一面
查看原面经 →
kv cache

蚂蚁集团

AI Agent 应用工程师
查看原面经 →
说说KV Cache在大模型推理中起到的作用

水滴

AI 全栈工程师
校招秋招一面
查看原面经 →
降低token成本的方式都有哪些?大模型的 kv cache 机制讲一下?
展开剩余 7 篇面经

滴滴

企业级算法实习生
实习一面
查看原面经 →
transformer架构了解吗,讲讲MHA,kv cache

阿里巴巴

AI Agent 算法
一面
查看原面经 →
**面试官:** 有了解过KV Cache吗?它是什么作用,为什么能加速大模型推理?
**面试官追问:** 那KV Cache的代价是什么?长序列推理时显存怎么估算?

MemTensor

全栈开发工程师
社招一面
查看原面经 →
KV缓存的原理是什么?如何优化?

字节跳动

Agent 开发工程师
秋招一面
查看原面经 →
有了解过KV Cache吗?它是什么作用,为什么能加速大模型推理(答得有点含糊)?

阿里巴巴

大模型算法工程师
查看原面经 →
KV Cache原理

华为

AI 基础设施工程师(模型训练与推理)
实习一面、二面
查看原面经 →
**听不懂的名词**有了解吗?我说您能举个例子吗?KV Cache

字节跳动

大模型算法工程师
暑期实习一面、二面、三面
查看原面经 →
一些kvcache相关的

收录题集

6 个来源,共18 份题集

大模型基础

AMIT SHEKHAR · ai-engineering-interview-questions · 1 条原题

查看题集 →

机器学习原理

Alireza Dirafzoon · AIMLInterviews · 1 条原题

查看题集 →

八股集锦(高频问题)

小熊饼干_ · 个人整理 · 2 条原题

查看题集 →

大模型工程面试题

小林 Coding · 个人整理 · 1 条原题

查看题集 →

公司案例问答汇编

阿东玩 AI · AgentGuide · 3 条原题

查看题集 →
展开剩余 13 份题集

AI Infra 面试指南

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

LLM推理系统问答

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

后训练综合问答

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

预训练与架构

阿东玩 AI · AgentGuide · 7 条原题

查看题集 →
展开其余 4 条原题

AI系统与训练推理工程

阿东玩 AI · AgentGuide · 3 条原题

查看题集 →

大模型基础面试题

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →

理论基础面试题

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

阿里巴巴问答汇编

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

深度网络架构

Rocky Ding · AIGC-Interview-Book · 2 条原题

查看题集 →

注意力机制

Rocky Ding · AIGC-Interview-Book · 2 条原题

查看题集 →

深度学习精华·网络架构

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

数学基础高频考点

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

数学公式推导高频考点

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

相关题目

4 题