知识点标签

KV Cache 面试题解析

KV Cache 相关面试题,覆盖长上下文推理、显存占用、缓存压缩和复用策略。

12 道题 2 个岗位 8 个公司

KV Cache相关面试题

大模型推理变慢时,如何从序列长度、batch、KV Cache、量化、FlashAttention 和 GPU 资源排查?

这题考 LLM 推理性能诊断闭环。高质量回答应先定义慢在哪里,再拆分队列、prefill、decode、KV Cache、batch 调度、attention kernel、量化、GPU 利用率和服务链路,用指标定位瓶颈,而不是一上来堆优化名词。

同题还出现在 1 个公司岗位

长上下文推理中 KV Cache 为什么可能被污染,如何做缓存隔离、清理和复用边界控制?

这题考的是大模型推理缓存的正确性与安全边界:KV Cache 本身是某个模型、某段 token、某套位置编码和注意力 mask 下的中间状态;一旦跨请求、跨会话、跨租户、跨模板版本或跨可变上下文错误复用,就可能产生答案串扰、隐私泄漏、事实陈旧或位置错乱。

LLM 推理中做 KV Cache sparse 计算时,vLLM/Triton 实现为什么可能选择稀疏索引或稀疏块,而不是直接用 dense mask?

这题考的是稀疏注意力在推理引擎里的真实性能取舍。dense mask 在数学上能表达稀疏模式,但计算和访存仍接近 dense attention;而稀疏索引或稀疏块能让 kernel 只读取和计算被选中的 KV cache,从而节省显存带宽、减少无效 FLOPs,并更适合 vLLM 这类分页 KV 和 Triton 块级并行实现。

vLLM 和 SGLang 在 LLM 推理引擎中分别解决什么问题,如何从 PagedAttention、前缀复用和请求调度角度比较?

这题考 LLM 推理引擎的系统理解,而不是问两个项目谁更快。好答案要说明 vLLM 的核心公共概念是提升 serving 吞吐和显存利用率,典型抓手包括 PagedAttention、KV cache 分页管理、continuous batching 和 prefix caching;SGLang 更强调面向复杂 LLM 应用的编程/运行时,围绕结构化生成、多轮/多调用流程、前缀复用、调度和缓存优化降低复杂请求的执行成本。比较时要从 KV 管理、前缀复用、请求调度、结构化输出、内存压力和 workload fit 讲边界,避免虚构版本特性。

LLaMA 2 中的 GQA 是什么,它如何减少 KV heads、降低 KV Cache 和带宽开销,并影响训练与推理效率?

这道题考察 GQA 的注意力结构和 KV Cache 推理瓶颈。回答要先把 MHA、MQA、GQA 放在一条线上:MHA 每个 query head 有自己的 K/V head,MQA 所有 query head 共用一组 K/V,GQA 则让一组 query heads 共用一个 K/V head。它减少的是 KV heads 数量,从而降低 K/V projection 输出、KV Cache 存储、decode 阶段缓存读取带宽和跨卡通信压力。关键是不要把 GQA 只说成训练加速;它对长上下文自回归推理的内存带宽收益更直接,同时在质量和效率之间比 MQA 更折中。

如何将已有 MHA 大模型改造成 GQA?KV Head 权重合并初始化和继续训练分别解决什么问题?

这题考察的不是“GQA 是什么”这一层概念,而是如何把一个已经训练好的 MHA checkpoint 工程化迁移成 GQA,并解释初始化和继续训练各自承担的职责。核心答案应先说明结构变化:MHA 中每个 Query Head 通常有独立的 K/V Head,而 GQA 把多个 Query Head 分成一组,共享同一组 K/V 投影,从而减少 KV Cache、显存带宽和解码阶段访存。迁移时不能随机初始化 K/V,否则模型等于突然丢失大量注意力记忆能力;因此通常用 KV Head 合并做 warm start,例如按组平均、加权平均、选择代表头或用聚类合并 K/V 权重。这个初始化解决“结构对齐和功能尽量连续”的问题;继续训练或 uptraining 解决“合并带来的表达能力损失、注意力分布偏移和层间统计不匹配”的问题。高质量回答还要补充训练数据配比、学习率、冻结策略、评估指标和推理收益验证。