线上要做 32K 长上下文的多轮对话。模型 72B、80 层、GQA 8 个 KV head、head_dim 128,KV 用 FP16 存。现在发现单条序列的 KV 就要吃掉十几 GB,batch 只能开到 4,吞吐上不去,但显存已经见底。请先把这个账算清楚,再给出至少三条处于不同层次的优化路径,并说明各自的代价。
面试官在考什么
能否从第一性原理算出 KV 的真实开销、确认它是主瓶颈,并在系统、精度、算法、业务四个层次给出有代价说明的方案组合。
回答框架 · 前两步
- 会算账:per-token KV = 2(K/V) × layers × kv_heads × head_dim × dtype_bytes = 2×80×8×128×2 ≈ 320KB/token,32K 上下文单序列约 10GB,确认 KV 是第一瓶颈而不是权重。
- 系统层:PagedAttention 降低碎片让更多序列共存;prefix caching 复用 system prompt 与公共前缀;max_num_seqs 和 block 预算要按显存反推,而不是拍脑袋。
还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。
同一能力域的其他题
- 解释一下 KV Cache 是什么、为什么能加速推理,以及它带来的显存代价怎么算。
- 推理服务里 continuous batching 和静态 batching 有什么区别?为什么前者吞吐更高?
- 模型量化你了解哪些方案?训练后量化(PTQ)和量化感知训练(QAT)怎么选?量化后精度掉了怎么定位?
- 显存优化除了量化还有哪些手段?请按"省的是什么"把它们分类。
- 线上大模型服务的延迟怎么拆解?哪些部分你能优化、哪些是硬上限?
- 你有单卡 A100 80G,要上线一个 7B decoder-only 模型,同时承接两个业务:业务 A 是长 prompt(约 4k tokens)短输出(约 100 tokens)的摘要,业务 B 是短 prompt(约 200 tokens)长输出(约 1k tokens)的代码补全。团队让你在 vLLM 和 TensorRT-LLM 之间二选一。请给出你的选择和判断依据,并具体说明 PagedAttention 在 A、B 两个业务上带来的收益分别体现在哪里、哪个业务上收益相对不明显,为什么。