☰
KV Cache原理与显存计算:LLM-Agent-Interview-Guide推理篇拆解Flash Attention、PagedAttention与5大加速技术
2026/10/22 1:18:06 网站建设 项目流程
  • 文档
  • 教程
  • 大模型
  • AI Agent

【免费下载链接】LLM-Agent-Interview-Guide

🔥 大模型 & Agent 面试八股文完全指南 | LLM & Agent Interview Preparation Guide

项目地址:https://gitcode.com/gh_mirrors/ll/LLM-Agent-Interview-Guide
点击查看免费下载

LLM-Agent-Interview-Guide 是面向大模型面试的开源八股指南,本文带你拆解其推理篇核心:KV Cache 原理与显存计算公式、Flash Attention 的显存优化思路、PagedAttention 的显存分页管理,以及连续批处理、投机解码等 5 大推理加速技术。这些是字节等大厂面试出现频率最高的推理优化考点(KV Cache 原理及显存计算在字节 Top 20 真题中排名第 3)。

KV Cache 原理:为什么它是推理加速第一考点 ⭐⭐⭐⭐⭐

大模型生成文本是自回归过程——每生成一个新 token,都要基于前面所有 token 计算注意力。如果每次生成都从头重算历史 token 的 K、V,开销会呈平方级增长。

KV Cache 的做法极其朴素:把已经算过的 K(Key)和 V(Value)缓存起来,新 token 只需计算自己的 K、V,拼接到缓存上再做注意力。

模式生成第 6 个 token 时的计算量
无 KV Cache重新计算 token 1~5 的 K、V
有 KV Cache读取缓存 + 只计算 token 6 的 K、V

代价是:KV Cache 会随序列长度和batch 大小线性增长,成为推理显存的最大消耗者。这也是为什么"KV Cache 显存计算"成了必考题。

KV Cache 显存计算公式:一条公式算到底

这是推理篇 01-KVCache-And-Acceleration.md 中的核心公式:

KV Cache 显存 = 2 × b × n_kv × L × s × d_head × sizeof(dtype)
符号含义说明
2K 和 V两者都要缓存
bbatch size并发请求数
n_kvKV 头数GQA/MQA 下会减小
L层数Transformer 层数
s序列长度上下文越长越吃显存
d_head每头维度每个 KV 头的维度
sizeof(dtype)精度字节数FP16=2 字节,INT8=1 字节

手算示例(面试常考):LLaMA-2 7B,L=32、n_kv=32、d_head=128、s=4096、b=1、FP16:

2 × 1 × 32 × 32 × 4096 × 128 × 2 bytes ≈ 2 GB

也就是说:一个 7B 模型、单请求 4K 上下文,KV Cache 就要吃 2 GB 显存。上下文拉到 32K、并发到 16 路,这个数字轻松到 30 GB 级别——这就是为什么"长上下文服务贵"。

快速减记技巧:先算"每 token 每层的 KV 字节数" = 2 × n_kv × d_head × 精度,再乘层数、序列长度和 batch,分步口算不容易出错。

5 种压缩 KV Cache 的方法:MQA / GQA / MLA / 量化 / 窗口注意力

面试中经常追问"KV Cache 太大怎么办",标准答案就是下面这张对比表(源自 01-KVCache-And-Acceleration.md 与 01-Transformer.md):

方法原理显存缩减
MQA所有 Q 头共享 1 个 KV 头缩小到 1/h
GQA每组 Q 头共享 1 个 KV 头缩小到 g/h
MLAKV 压缩到低维潜在空间(DeepSeek-V2/V3)约剩 6.7%(↓93.3%)
量化KV Cache 用 INT8/INT4 存储50% / 75%
窗口注意力只保留最近 window 个 KVwindow/total

四者对比(KV 头数从多到少:MHA → GQA → MQA,MLA 则走"压缩"路线):

方法Q 头数K/V 头数代表模型
MHAhhGPT-2、BERT
GQAhg(1<g<h)LLaMA-2 70B
MQAh1PaLM、Falcon
MLAh压缩潜在空间DeepSeek-V2/V3

MLA 一句话记忆:把 K、V 拼起来压缩成一个低维向量 $c_t$ 只缓存它,用的时候再投影回来——缓存量砍掉 93%,是 DeepSeek 长上下文低成本的关键之一。

Flash Attention 原理:用 GPU 内存层次把显存从 O(n²) 降到 O(n)

标准 Attention 需要落盘一个 n×n 的注意力矩阵,长序列下显存爆炸。Flash Attention 的核心洞察来自GPU 内存层次:

SRAM:约 20MB,带宽约 19TB/s(片上,快) HBM:约 40GB,带宽约 1.5TB/s(片外,慢)

做法分三步:

  1. 分块(tiling):把 Q、K、V 切成小块;
  2. SRAM 内算局部注意力:每块在片上内存里完成计算;
  3. online softmax 合并:逐块修正归一化结果,数学上与标准 Attention 完全等价。

最终效果(面试三句话):

  • 显存:O(n²) →O(n)
  • 速度:2~4 倍加速
  • 精确计算,不是近似——这句一定要说,是高频追问点

PagedAttention:像操作系统分页一样管理显存

KV Cache 预分配显存有两个痛点:序列长度不确定导致浪费,连续块之间产生碎片。vLLM 的 PagedAttention 直接借用了操作系统的虚拟内存/分页思想:

  • KV Cache 存入非连续的物理块(block);
  • 通过 **Block Table(页表)**维护逻辑块到物理块的映射;
  • 按需分配,消除内部碎片;
  • 支持 KV Cache跨请求共享(如 beam search、公共前缀复用)。

效果:显存利用率接近 100%,吞吐量提升 2~4 倍。

面试加分点:把"分页 → 页表 → 按需分配 → 共享"四步完整讲出来,再补一句"这就是 vLLM 高吞吐的核心原因",基本稳了。

连续批处理与投机解码:吞吐和延迟的另外两个突破口

Continuous Batching vs 静态 Batching:

特性静态 BatchingContinuous Batching
批次管理等最长序列结束动态插入/移除请求
GPU 利用率低(大量 padding)高
延迟 / 吞吐高延迟 / 低吞吐低延迟 / 高吞吐(2~3 倍)

一句话:请求一完成立即出批,新请求随时进批,GPU 不再空等。

Speculative Decoding(投机解码)则解决单请求生成慢的问题:

  1. 小模型(draft model)快速自回归生成 γ 个候选 token;
  2. 大模型一次前向传播并行验证这 γ 个 token;
  3. 从第一个不匹配处截断,保留匹配部分;
  4. 在不匹配位置重新采样一个正确 token。

关键性质:输出分布与只用大模型生成完全一致(无损失加速)。这也是字节真题中的追问点(见 01-ByteDance-Questions.md)。

推理框架选型速查表

框架核心技术特点
vLLMPagedAttention高吞吐、显存效率高
TensorRT-LLM图优化 + 量化NVIDIA 官方,极致性能
SGLangRadixAttention前缀缓存,编程框架
DeepSpeed-Inference张量并行 + 量化分布式推理
OllamaGGUF 格式本地部署,上手简单

面试谈"部署方案"时,标准组合拳是:vLLM(PagedAttention + 连续批处理)+ AWQ/GPTQ 量化 + 投机解码,按单机/多卡/跨机场景再补张量并行或流水线并行(见 03-Quantization-And-Deployment.md)。

推理篇复习路径:一张表抓住重点

优先级考点必背内容
⭐⭐⭐⭐⭐KV Cache 原理 + 显存计算公式 + LLaMA-2 7B 手算 2 GB
⭐⭐⭐⭐Flash AttentionSRAM/HBM 层次 + tiling + online softmax,O(n²)→O(n)
⭐⭐⭐⭐PagedAttention分页四步 + 显存利用率≈100%
⭐⭐⭐连续批处理与静态批处理对比表
⭐⭐⭐投机解码四步流程 + 输出分布一致性

建议复习节奏:先能手算一遍 KV Cache 显存(换 GQA 头数再算一遍),再复述 Flash Attention 的"为什么快"(内存层次而非算法近似),最后用 PagedAttention 和投机解码收尾——这套顺序正好覆盖推理篇 02-Inference/ 的核心内容,配合项目 README 中"核心强化 3-5 天"的安排,足够拿下推理方向的面试。

💡 项目内更多细节:02-Inference/01-KVCache-And-Acceleration.md、02-Inference/02-Decoding-Strategies.md、02-Inference/03-Quantization-And-Deployment.md

  • 文档
  • 教程
  • 大模型
  • AI Agent

【免费下载链接】LLM-Agent-Interview-Guide

🔥 大模型 & Agent 面试八股文完全指南 | LLM & Agent Interview Preparation Guide

项目地址:https://gitcode.com/gh_mirrors/ll/LLM-Agent-Interview-Guide
点击查看免费下载
上一篇:【保姆级超详细还免费】WebSocket 项目安装和配置指南
下一篇:Kotlin 多平台/多格式序列化库推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询