知识点深化 · 推理优化
大模型推理优化:KV Cache、量化与投机解码
大模型聪明,但又慢又贵。推理优化就是让它又快又省显存。这一页讲透四件套:KV Cache 免重算、GPTQ/AWQ 量化压显存、连续批处理填满 GPU、投机解码小模型起草大模型验收。
① 小白第一课怎么学(4 步走,约 60 分钟)
大模型很聪明,但又慢又贵。推理优化就是让它又快又省显存:
1建立直觉(10 分钟)
读②③:理解生成是"一个词一个词往外蹦",每步都要算。
2记四件套(15 分钟)
读④:KV Cache、量化、连续批处理、投机解码。
3跟例题(20 分钟)
精读⑤,看每个优化解决什么瓶颈。
4刷题纠错(15 分钟)
做⑦⑩,错题回⑥。
本课小目标学完你要能:① 说清 KV Cache 在缓存什么;② 区分 GPTQ/AWQ 这类量化;③ 解释投机解码为什么能加速。
② 一图看懂:推理加速四件套
读法:四件套分别打四个瓶颈——重复计算、显存占用、GPU 闲置、串行生成慢。
③ 本质直觉:为什么生成一个字都不便宜
大模型生成是自回归的:一个字一个字往外蹦,每生成一个新字,都要把前面整段再过一遍网络。
问题来了:生成第 100 个字时,前面 99 个的注意力计算其实上一步算过了,何必重算?
KV Cache:把历史每一层的 Key、Value 缓存下来,新字只需算自己那一份,再和缓存拼一起。这是最基础、必开的优化。
显存瓶颈:7B 模型 FP16 就要约 14GB。量化把权重从 16bit 压到 4~8bit,显存砍到几分之一,还能跑更大模型。
投机解码直觉用一个快的小模型先"草拟"几个字,再让大模型一次并行验收。对了就直接采纳,错了就回退。等于让大模型少跑几趟。
④ 完整体系:四件套对照
| 技术 | 解决瓶颈 | 一句话 |
| KV Cache | 重复计算历史 | 缓存历史 K/V,新字只算自己 |
| 量化 GPTQ/AWQ | 显存占用大 | 权重 16bit→4/8bit,精度损失小 |
| 连续批处理 | GPU 等空闲 | 新请求动态插进批次,不闲着 |
| 投机解码 | 逐字串行慢 | 小模型起草,大模型并行验收 |
量化常见方案
| 方案 | 特点 |
| GPTQ | 训练后量化,逐层压缩到 4bit |
| AWQ | 保留重要权重的精度,更稳 |
| GGUF | CPU/消费级 GPU 上 llama.cpp 常用 |
显存粗算
权重显存 ≈ 参数量 × 每参数字节数(FP16=2 字节,INT4≈0.5 字节)
7B × 2 = 14GB(FP16);7B × 0.5 ≈ 3.5GB(INT4)
量化不是越狠越好4bit 虽省,但任务复杂时可能掉点。关键场景留 8bit 或 FP16,普通问答 4bit 够用。
⑤ 用法场景与典型例题
例1(KV Cache)为什么它是推理标配?
避免每步重算全部历史。
① 自回归每生成一字都要注意力。
② 缓存历史 K/V 后,只需算新 token。
答案:大幅减少重复计算,几乎无副作用,必开。
例2(量化算显存)7B 模型 FP16 约占多少显存?
参数量×2 字节。
① 7B=70 亿参数。
② 70 亿×2 字节=140 亿字节≈14GB。
答案:约 14GB,4bit 后约 3.5GB。
例3(批处理)为什么单请求时 GPU 利用率低?
GPU 并行能力没用满。
① 一个请求一次算一点,GPU 大量计算单元闲置。
② 把多个请求拼成一批一起算,吞吐大涨。
答案:批处理填满 GPU,提高整体并发能力。
投机解码代价小模型要够快、且起草内容常被大模型认可才划算;偏差大时反而浪费。
⑥ 高频错误诊断(4 条)
错误 1:盲目追求 4bit 最低量化量化太狠,复杂推理/数学任务准确率明显下降。按任务选精度。
错误 2:只看显存不算 KV Cache 增长上下文越长,KV Cache 占的显存越大,长文本场景要预留。
错误 3:以为加速只靠模型显存够、用 KV Cache、合理批处理,往往比换大模型更有效。
错误 4:混淆训练优化和推理优化梯度下降/混合精度是训练侧;KV Cache/量化/批处理是推理侧,别张冠李戴。
⑦ 考点真题演练(4 题)
考点分布
| 考法 | 出题形式 | 应对 |
| KV Cache | 问缓存什么、为何快 | 历史 K/V 免重算 |
| 量化 | GPTQ/AWQ 作用、显存算 | 权重压到低比特 |
| 投机解码 | 问加速原理 | 小模型起草大模型验收 |
真题基础1. KV Cache 主要缓存的是?
真题中档2. GPTQ/AWQ 这类量化的主要作用是?
真题中档3. 投机解码(Speculative Decoding)的思路是?
真题拔高4. 关于量化,正确的是?
⑧ 必背知识点卡
自回归:逐字生成,每步跑一遍网络 慢的根源
KV Cache:缓存历史 K/V,新字只算自己 必开
量化:GPTQ/AWQ/GGUF,权重 16bit→4/8bit 省显存
显存:参数量×字节数,7B FP16≈14GB 粗算公式
批处理:多请求拼一批,填满 GPU 提吞吐
投机解码:小模型起草、大模型并行验收 加速
铁律:显存 vs 精度要权衡,别盲目压到最低比特 按需选
⑨ 应用输出:本地跑一个 7B 模型的配置决策
实战场景:一张 16GB 显卡想跑 7B 模型
① 算显存:FP16 要 14GB,看似够,但还要留系统和 KV Cache 余量。
② 选量化:选 4bit(如 GGUF Q4),权重约 3.5GB,留出充足空间给长上下文。
③ 开 KV Cache:推理框架默认开启,长文本不重算。
④ 服务器部署:多用户时上连续批处理提高并发。
⑤ 验收:用真实问答测准确率,若复杂题掉点就换回 8bit。
口述"生成是逐字的,KV Cache 免重算;量化压显存;批处理填满 GPU;投机解码靠小模型起草大模型验收;精度和省显存要权衡。"
⑩ 分层练习 16 题(基础 6 + 中档 5 + 拔高 5)
▍基础 6 题
基础1大模型生成新内容是一次出全句吗?
不是,逐字自回归生成。
基础2KV Cache 缓存什么?
历史 token 的 Key/Value。
基础4GPTQ、AWQ 属于什么?
权重量化方法。
基础5连续批处理提升什么?
吞吐/并发,填满 GPU。
基础6投机解码靠谁起草?
快的小模型起草,大模型验收。
▍中档 5 题
中档7FP16 的 7B 模型权重大致多少显存?
7B×2 字节 ≈ 14GB。
中档8为什么量化到 4bit 显存骤降?
每个参数从 2 字节降到约 0.5 字节,权重存储减到约 1/4。
中档9上下文越长什么会变大?
KV Cache 显存占用随之增大。
中档10投机解码中验收不通过怎么办?
回退到不一致处,由大模型重新生成,保证不牺牲正确性。
中档11推理优化和训练优化区别?
推理是上线后跑起来的加速;训练是训练阶段的方法。
▍拔高 5 题
拔高12AWQ 相比朴素量化好在哪?
识别并保留重要权重的精度,减少精度损失。
拔高13连续批处理为什么比静态批好?
请求长短不一,动态插入新请求,不让 GPU 等整批凑齐。
拔高14为什么 4bit 在复杂数学题可能掉点?
低比特带来精度损失,对数值敏感任务影响更明显。
拔高15TTFT 和 TPT 分别指什么?
首字延迟(Time To First Token)和每 token 生成耗时;优化目标不同。
拔高16KV Cache 为什么会成为长文本瓶颈?
随上下文线性增长,长 prompt 时显存占比甚至超过权重本身。
⑪ 记忆口诀 + 7 天复习计划
三句口诀
① 生成逐字跑,KV Cache 把历史键值缓存免重算。
② 量化把权重压到低比特省显存,批处理填满 GPU。
③ 投机解码小模型起草大模型验收;省显存别牺牲到任务精度。
| 天 | 任务 | 自检 |
| 第 1 天 | 读②③④,画四件套图 | 说清各打哪个瓶颈 |
| 第 2 天 | 背知识点卡 + 基础 1-6 | 基础全对 |
| 第 3 天 | 做中档 7-11,手算显存 | 会算 7B 显存 |
| 第 4 天 | 做拔高 12-16 | 懂 TTFT/TPT |
| 第 5 天 | 做⑦真题 4 题 | 限时每题 2 分钟 |
| 第 6-7 天 | 合上书口述四件套 | 不看资料全说对 |
← 返回算法与AI总览