你在一张 24GB 显存的卡上用 vLLM 部署一个 7B 模型(FP16 权重约 14GB),启动参数 gpu_memory_utilization=0.9。同事说:"PagedAttention 不会浪费显存,所以把 max_model_len 从 8K 直接调到 32K 没关系。" 这个说法哪里不对?调大之后显存实际被什么吃掉了?
面试官在考什么
判断候选人是否真理解 PagedAttention 解决的是碎片/按需分配,而不是压缩 KV Cache 总量,并能否把 max_model_len 与并发数、显存池联系起来。
回答框架 · 前两步
- PagedAttention 解决的是显存的碎片和预留浪费(按 block 分配 + block table 做逻辑到物理映射),并不减少 KV Cache 的总字节数。
- 调大 max_model_len 会抬高 KV Cache 池需要覆盖的最大长度,在显存总量不变的前提下挤压可用 block 数量,实际能并发的序列数(max_num_seqs)会下降。
还有 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 两个业务上带来的收益分别体现在哪里、哪个业务上收益相对不明显,为什么。