单张 A100 80G 上跑一个 13B 的 MHA 模型:40 层、40 个 KV head、head_dim 128、FP16,权重占 26GB。服务 8K 上下文的并发请求。请先算出每个 token 的 KV cache 占用和单条 8K 序列的占用,然后回答:这张卡理论上最多能服务几个 8K 并发请求,为什么监控里看到的实际并发数往往比这个数还低?在不改模型结构、不换卡的前提下,你怎么把并发提上去,按性价比排序。
面试官在考什么
判断候选人能不能把 KV cache 的显存账算对,并分清“理论容量”与“实际可服务并发”的差距来源(预分配、碎片、激活与 CUDA graph),进而给出有代价意识的手段排序。
回答框架 · 前两步
- 算对数值:KV/token = 2 × 40 层 × 40 head × 128 × 2B = 800KB;8K 序列 = 6.4GB。忘乘 2 或忘乘层数都是硬伤。
- 算容量账并解释差距:80 − 26(权重) − 4~6(激活/CUDA graph/框架) ≈ 48GB,约 7~8 条 8K 序列;如果按 max_model_len 预留式分配还会更低,PagedAttention 按需分块是把它拉回来的第一手段。
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
同一能力域的其他题
- 解释一下 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 两个业务上带来的收益分别体现在哪里、哪个业务上收益相对不明显,为什么。