AI Infra 与 Harness 工程 面试题
AI Infra 面试题:推理优化与分布式训练
Infra 岗的面试题非常具体:KV Cache 占多少显存、continuous batching 比静态 batching 好在哪、TP 和 PP 怎么选、通信瓶颈出现在哪。答不出数字,基本就过不了。
这个方向在考什么
- 推理优化:KV Cache 的显存公式、PagedAttention、continuous batching
- 量化与压缩:INT8/INT4 的精度损失、GPTQ 与 AWQ 的差异
- 分布式训练:DP / TP / PP / ZeRO 各切什么,通信量怎么估
- 服务化:吞吐与延迟的权衡、扩缩容、GPU 利用率排查
最常见的几个坑
- KV Cache 只会说"缓存 K 和 V",算不出 7B 模型 4K 上下文的显存
- 把 TP 和 PP 混为一谈,说不出各自的通信模式
- 量化只知道"INT8 更快",讲不出 outlier 对精度的影响
七天准备路线
- 第 1 天把 KV Cache 显存公式推一遍,能现场算 7B/13B/70B
- 第 2 天推理框架:vLLM 的 PagedAttention 与 continuous batching
- 第 3 天分布式:DP/TP/PP/ZeRO 的切分维度与通信量
- 第 4 天量化:GPTQ/AWQ/GGUF 的差异与适用场景
- 第 5-7 天按方向刷题,准备一次真实的显存/吞吐排查
AI Infra 与 Harness 工程高频面试题
- 解释一下 KV Cache 是什么、为什么能加速推理,以及它带来的显存代价怎么算。 · 1-3 年
- 推理服务里 continuous batching 和静态 batching 有什么区别?为什么前者吞吐更高? · 3-5 年
- 模型量化你了解哪些方案?训练后量化(PTQ)和量化感知训练(QAT)怎么选?量化后精度掉了怎么定位? · 3-5 年
- 你要为一个 Agent 系统设计评测 harness,会包含哪些维度?怎么保证评测结果可复现? · 3-5 年
- 显存优化除了量化还有哪些手段?请按"省的是什么"把它们分类。 · 3-5 年
- Agent 的工具编排里,工具多了以后模型选错工具、参数填错怎么办?你会怎么设计降低这类错误? · 3-5 年
- 线上大模型服务的延迟怎么拆解?哪些部分你能优化、哪些是硬上限? · 3-5 年
- 提示词版本管理你怎么做?线上提示词改了以后,怎么知道是变好还是变坏? · 1-3 年
- 你有单卡 A100 80G,要上线一个 7B decoder-only 模型,同时承接两个业务:业务 A 是长 prompt(约 4k tokens)短输出(约 100 tokens)的摘要,业务 B 是短 prompt(约 200 tokens)长输出(约 1k tokens)的代码补全。团队让你在 vLLM 和 TensorRT-LLM 之间二选一。请给出你的选择和判断依据,并具体说明 PagedAttention 在 A、B 两个业务上带来的收益分别体现在哪里、哪个业务上收益相对不明显,为什么。 · 1-3 年
- 你们要上线一个 13B 对话模型,SLA 是 P99 TTFT < 1.5s、平均 TPOT < 40ms。流量特征是白天峰值 QPS 是凌晨的 8 倍,输入长度 P50=300 token、P99=6000 token。模型权重每周要热更一次,业务方后续还想在同一张卡上挂 2~3 个 LoRA adapter 做灰度。团队已经在 vLLM 上跑通了原型;TensorRT-LLM 只在离线 benchmark 里跑过,同卡同 batch 下吞吐比 vLLM 高约 40%。你怎么做上线选型?如果你选 vLLM,怎么补它相对 TensorRT-LLM 的差距;如果你选 TensorRT-LLM,怎么处理热更和 LoRA? · 3-5 年
- 你们要上线一个 70B 稠密模型的在线对话服务,SLA 是 P99 首 token 延迟 < 2s、单节点输出吞吐 ≥ 2000 tok/s。候选推理引擎是 vLLM 和 TensorRT-LLM。约束有三个:业务要求两周内上线;未来半年内预计换 3 次权重,并可能引入 MoE 结构和多套 LoRA 热切换;团队里只有 2 个人有 CUDA 经验。请给出你的选型结论,并说明在什么可观测条件下你会启动迁移到另一条路线。 · 5 年以上
- 你在一张 24GB 显存的卡上用 vLLM 部署一个 7B 模型(FP16 权重约 14GB),启动参数 gpu_memory_utilization=0.9。同事说:"PagedAttention 不会浪费显存,所以把 max_model_len 从 8K 直接调到 32K 没关系。" 这个说法哪里不对?调大之后显存实际被什么吃掉了? · 校招
- 你要把线上一个 13B decoder 模型从 FP16 换成 W4A16 的 weight-only INT4 量化,目标是把单卡能承载的并发数翻倍。下游有两个任务:一个通用对话,一个对精度敏感的字段抽取。请给出你的量化方案选型(weight-only INT4,还是 W8A8 这类带激活量化的方案)、为什么,以及上线前你会用哪几层手段判断有没有掉点、掉在什么位置。 · 1-3 年
- A100 80G 上服务一个 13B 代码补全模型,FP16 权重占 26GB。现在要同时满足两件事:单卡并发 batch 尽量大;内部评测集上掉点不超过 1%。候选方案是 W8A16(weight-only INT8)和 W4A16(GPTQ/AWQ)。已知经验值:W8A16 显存省约 40%、典型吞吐提升约 1.3x;W4A16 显存省约 70%、吞吐提升约 1.6-1.9x,但在长尾 token(罕见标识符、超长数字)上更容易掉点。你怎么选?如果选 W4,你怎么证明“掉点不超过 1%”这件事? · 3-5 年
- 成本要求把推理 GPU 卡数砍掉 40%。当前 72B 模型用 FP16 + TP4 跑在 4×A100-80G 上,最大 batch 只能到 8,目标是把 batch 提到 32。候选方案有 W8A8-INT8(SmoothQuant 一类)、W4A16(GPTQ/AWQ 一类)、以及在 Hopper 上的 FP8。请说明你会怎么选、校准数据怎么准备、哪些模块不能量化,以及你怎么判断量化有没有伤到业务。 · 5 年以上
- 一个 13B 模型 FP16 权重约 26GB,你要在单张 24GB 卡上跑,打算用 INT8 weight-only 量化把权重压到约 13GB。请回答:(1) 剩下约 11GB 够不够放 KV Cache 和激活,瓶颈可能在哪;(2) 在 batch=1 的逐 token decode 阶段,端到端延迟大概能降多少,为什么不是 2 倍? · 校招
- 一个 7B 模型,32 层,GQA 配置为 8 个 KV head、head_dim 为 128,KV cache 用 FP16 存储。请写出 batch=32、平均序列长度 2048 时 KV cache 的显存占用公式并算出结果。然后回答:如果此时显存不够,你会先动 batch size、先动序列长度,还是动别的?说明理由。 · 1-3 年
- 单张 A100 80G 上跑一个 13B 的 MHA 模型:40 层、40 个 KV head、head_dim 128、FP16,权重占 26GB。服务 8K 上下文的并发请求。请先算出每个 token 的 KV cache 占用和单条 8K 序列的占用,然后回答:这张卡理论上最多能服务几个 8K 并发请求,为什么监控里看到的实际并发数往往比这个数还低?在不改模型结构、不换卡的前提下,你怎么把并发提上去,按性价比排序。 · 3-5 年
- 线上要做 32K 长上下文的多轮对话。模型 72B、80 层、GQA 8 个 KV head、head_dim 128,KV 用 FP16 存。现在发现单条序列的 KV 就要吃掉十几 GB,batch 只能开到 4,吞吐上不去,但显存已经见底。请先把这个账算清楚,再给出至少三条处于不同层次的优化路径,并说明各自的代价。 · 5 年以上
- 一个请求进来,最终序列长度 4000 token。模型是 32 层、GQA 8 个 KV head、head_dim 128、KV 用 FP16 存储。请算出这条请求的 KV Cache 占多少 MB;如果同时有 32 条这样的请求并发,总共占多少;以及你会怎么用这个结果来决定部署时的 max_num_seqs? · 校招
共 45 道,这里列出前 20 道。 去题库检索
针对你的简历,生成一套这个方向的题
题目会挂回你简历里的项目,并按真实面试顺序追问。