跳转至

五十一:KV cache自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484674&idx=1&sn=d1826d8087dcab50ff78b065523c8a2c&chksm=f01eb67bc7693f6d1ec71e38ff50c85a28b6c91ce5c21c0e1e2973ae4b764983b9bca284aed9#rd

A. 基础概念

  • KV cache 是什么?

  • KV cache 解决了自回归推理中的什么问题?

  • Attention 中 Q、K、V 分别起什么作用?

  • 为什么 Decode 阶段需要历史 K/V?

  • 没有 KV cache 时 Decode 成本会如何变化?

  • KV cache 在 Prefill 阶段如何生成?

  • KV cache 在 Decode 阶段如何更新?

  • KV cache 为什么会随输出长度增长?

  • KV cache 是计算优化还是显存优化?

  • KV cache 和上下文长度有什么关系?

B. 张量形状与显存公式

  • KV cache 的典型张量形状是什么?

  • KV cache 显存公式是什么?

  • 公式中的 LH_kvTDbytes 分别表示什么?

  • 为什么公式里有一个系数 2?

  • batch size 如何影响 KV cache 显存?

  • sequence length 如何影响 KV cache 显存?

  • dtype 如何影响 KV cache 显存?

  • 请估算 32 层、32 KV heads、head_dim 128、4096 长度、fp16 的单请求 KV cache 显存。

  • 为什么大模型权重之外 KV cache 也会成为显存瓶颈?

  • 如何根据 KV cache 显存估算最大并发?

C. MHA/MQA/GQA

  • MHA 下 H_kv 和 query head 数有什么关系?

  • MQA 的核心思想是什么?

  • GQA 的核心思想是什么?

  • MQA/GQA 为什么能降低 KV cache 成本?

  • MQA/GQA 对 Decode 带宽有什么影响?

  • MQA/GQA 是否一定不影响模型质量?

  • 为什么现代大模型常使用 GQA?

  • 如何从模型配置中判断 KV head 数?

  • KV head 数减少对 Prefill 和 Decode 哪个阶段收益更明显?

  • MHA、MQA、GQA 在面试中如何对比?

D. 缓存管理

  • 简单预分配 KV cache 有什么优点?

  • 简单预分配 KV cache 有什么缺点?

  • KV cache 碎片是如何产生的?

  • 碎片为什么会降低并发?

  • Paged KV cache 的核心思想是什么?

  • PagedAttention 如何缓解碎片问题?

  • Paged KV cache 和操作系统虚拟内存有什么类比?

  • Prefix cache 是什么?

  • Prefix cache 适合哪些场景?

  • Prefix cache 有哪些安全风险?

E. 长上下文与流式推理

  • 长上下文对 KV cache 有什么影响?

  • Decode 每步为什么会随历史长度变慢?

  • Sliding window KV cache 是什么?

  • Sliding window 的收益是什么?

  • Sliding window 的风险是什么?

  • Attention sinks 是什么?

  • StreamLLM 的基本思想是什么?

  • 为什么保留初始 token 可能对长流式推理有帮助?

  • 滑动窗口和完整上下文 attention 如何取舍?

  • 长上下文服务中如何控制 KV cache 增长?

F. 量化、调度与工程

  • Quantized KV cache 是什么?

  • KV cache 量化的收益是什么?

  • KV cache 量化的风险是什么?

  • KV cache 与推理调度有什么关系?

  • 为什么 KV cache 空间不足时 GPU 算力可能空闲?

  • 调度器应如何考虑预计生成长度?

  • 什么是 KV cache eviction?

  • cache 泄漏会造成什么问题?

  • 如何监控 KV cache 使用情况?

  • 如何判断推理服务瓶颈来自 KV cache?

G. 综合与排查

  • KV cache 如何影响 TTFT 和 TPOT?

  • 为什么 KV cache 能降低计算但增加显存压力?

  • KV cache 与 PagedAttention、continuous batching 有什么关系?

  • 如何优化一个长 prompt、高并发场景的 KV cache 使用?

  • 如何优化一个长输出流式生成场景的 KV cache 使用?

  • 如果线上频繁 OOM,你会如何排查 KV cache?

  • 如果使用 prefix cache 后出现数据泄露风险,可能原因是什么?

  • 如何设计 KV cache 的压测实验?

  • KV cache 的理解对推理框架选型有什么帮助?

  • 请系统总结 KV cache 的原理、公式、优化方法、风险和面试表达要点。

            预览时标签不可点
    
    修改于
    

    <div class="