- 文档
- 教程
- 大模型
- AI Agent
【免费下载链接】LLM-Agent-Interview-Guide
🔥 大模型 & Agent 面试八股文完全指南 | LLM & Agent Interview Preparation 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)| 符号 | 含义 | 说明 |
|---|---|---|
| 2 | K 和 V | 两者都要缓存 |
| b | batch size | 并发请求数 |
| n_kv | KV 头数 | 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 |
| MLA | KV 压缩到低维潜在空间(DeepSeek-V2/V3) | 约剩 6.7%(↓93.3%) |
| 量化 | KV Cache 用 INT8/INT4 存储 | 50% / 75% |
| 窗口注意力 | 只保留最近 window 个 KV | window/total |
四者对比(KV 头数从多到少:MHA → GQA → MQA,MLA 则走"压缩"路线):
| 方法 | Q 头数 | K/V 头数 | 代表模型 |
|---|---|---|---|
| MHA | h | h | GPT-2、BERT |
| GQA | h | g(1<g<h) | LLaMA-2 70B |
| MQA | h | 1 | PaLM、Falcon |
| MLA | h | 压缩潜在空间 | 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(片外,慢)做法分三步:
- 分块(tiling):把 Q、K、V 切成小块;
- SRAM 内算局部注意力:每块在片上内存里完成计算;
- 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:
| 特性 | 静态 Batching | Continuous Batching |
|---|---|---|
| 批次管理 | 等最长序列结束 | 动态插入/移除请求 |
| GPU 利用率 | 低(大量 padding) | 高 |
| 延迟 / 吞吐 | 高延迟 / 低吞吐 | 低延迟 / 高吞吐(2~3 倍) |
一句话:请求一完成立即出批,新请求随时进批,GPU 不再空等。
Speculative Decoding(投机解码)则解决单请求生成慢的问题:
- 小模型(draft model)快速自回归生成 γ 个候选 token;
- 大模型一次前向传播并行验证这 γ 个 token;
- 从第一个不匹配处截断,保留匹配部分;
- 在不匹配位置重新采样一个正确 token。
关键性质:输出分布与只用大模型生成完全一致(无损失加速)。这也是字节真题中的追问点(见 01-ByteDance-Questions.md)。
推理框架选型速查表
| 框架 | 核心技术 | 特点 |
|---|---|---|
| vLLM | PagedAttention | 高吞吐、显存效率高 |
| TensorRT-LLM | 图优化 + 量化 | NVIDIA 官方,极致性能 |
| SGLang | RadixAttention | 前缀缓存,编程框架 |
| DeepSpeed-Inference | 张量并行 + 量化 | 分布式推理 |
| Ollama | GGUF 格式 | 本地部署,上手简单 |
面试谈"部署方案"时,标准组合拳是:vLLM(PagedAttention + 连续批处理)+ AWQ/GPTQ 量化 + 投机解码,按单机/多卡/跨机场景再补张量并行或流水线并行(见 03-Quantization-And-Deployment.md)。
推理篇复习路径:一张表抓住重点
| 优先级 | 考点 | 必背内容 |
|---|---|---|
| ⭐⭐⭐⭐⭐ | KV Cache 原理 + 显存计算 | 公式 + LLaMA-2 7B 手算 2 GB |
| ⭐⭐⭐⭐ | Flash Attention | SRAM/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
相关推荐
LingBot-VLA推理加速深度解析:Flex Attention与KV Cache复用如何砍掉冗余计算
LingBot VLA推理加速深度解析:Flex Attention与KV Cache复用如何砍掉冗余计算 LingBot VLA 是一个面向机器人操作的视觉
从0到1搭建AI助手:GitHub_Trending/cla/claude-skills架构设计解析
从0到1搭建AI助手:GitHub_Trending/cla/claude skills架构设计解析 GitHub_Trending/cla/claude sk
AI 技能AI 插件开发工具显存能省多少?SmolLM-1.7B-base-mla-topk2-rank384 的KV Cache压缩原理与推理加速解析
显存能省多少?SmolLM 1.7B base mla topk2 rank384 的KV Cache压缩原理与推理加速解析 SmolLM 1.7B base
人工智能大模型基础模型模型优化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考