跳到主内容
快讯直播
AI智模界
AI 词典

KV Cache:为什么聊天越久,显存越吃紧

一句话定义

KV Cache(Key-Value Cache,键值缓存)是大模型逐 token(词元)生成文本时,把历史 token 在每层 self-attention(自注意力)中算过的 Key 和 Value 存下来,避免下一步重复计算的一种推理加速技术。

它怎么工作

大模型生成文本是自回归(autoregressive)的:一次只吐一个 token。假设已经输入“今天天气”,要生成“真”。如果没有缓存,模型会把“今天天气”重新过一遍所有层,重新计算所有 Key、Value 和 Query,再预测“真”。下一步生成“好”时,又把“今天天气真”重新过一遍。重复计算量会随对话长度快速上升。

KV Cache 像会议纪要。每来一个新发言,只把新发言记录到纪要;后面要回顾全桌观点时,直接翻纪要,不用让每个人重新说一遍。具体到模型:当前 token 算出新的 Key 和 Value,追加到缓存;之后做注意力时,直接使用缓存里的全部历史 Key/Value。每生成一个 token,缓存就多一份。

为什么对话越长,显存涨得越快

关键在“多一份”不是全模型只多一份,而是每层、每个注意力头都要多一份。KV Cache 的总大小大致可以理解为:

2 × 层数 × 注意力头数 × 头维度 × 序列长度 × batch × 精度字节

其中序列长度就是已经处理的 token 数。对话越长,序列长度越大;并发请求越多,batch 越大;模型层数越多、注意力头越多,乘数也越大。所以显存增长不是模型参数变大了,而是历史 Key/Value 越攒越多。粗略地说,同一段对话从几百 token 拉到几千 token,缓存可能从几十 MB 级涨到几百 MB 甚至 GB 级,具体取决于模型规模、精度和实现方式,以官方页面为准。

概念是什么什么时候变
模型权重训练学到的参数训练后基本固定
KV Cache推理时缓存的历史 Key/Value每生成一个 token 就增长
上下文窗口单次最多能处理的 token 数由模型设计决定

和相邻概念的区别

上下文窗口是“最多能看多少”,KV Cache 是“实际存了多少历史 Key/Value”。RAG(检索增强生成)是从外部找资料,不改变 KV Cache 的机制。模型权重是训练后固定的,KV Cache 是推理时动态增长的中间状态。

对从业者和普通人的意义

对从业者,长对话、长文档、高并发推理的瓶颈常常不是模型权重,而是 KV Cache。常见优化包括分页管理(如 PagedAttention)、减少 Key/Value 头数(GQA/MQA)、KV 量化、滑动窗口或稀疏注意力等。对普通人,聊天越久越慢、越贵、越容易排队,不是错觉;产品截断历史或自动摘要,本质上也是在控制 KV Cache 的增长。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。