面试题库
按方向浏览 AI 算法岗高频面试题:每题给出考察点、回答框架与追问方向。
按方向
题目一览
- 解释一下 KV Cache 是什么、为什么能加速推理,以及它带来的显存代价怎么算。 · AI Infra 与 Harness 工程 · 1-3 年
- 推理服务里 continuous batching 和静态 batching 有什么区别?为什么前者吞吐更高? · AI Infra 与 Harness 工程 · 3-5 年
- 模型量化你了解哪些方案?训练后量化(PTQ)和量化感知训练(QAT)怎么选?量化后精度掉了怎么定位? · AI Infra 与 Harness 工程 · 3-5 年
- 你要为一个 Agent 系统设计评测 harness,会包含哪些维度?怎么保证评测结果可复现? · AI Infra 与 Harness 工程 · 3-5 年
- 显存优化除了量化还有哪些手段?请按"省的是什么"把它们分类。 · AI Infra 与 Harness 工程 · 3-5 年
- Agent 的工具编排里,工具多了以后模型选错工具、参数填错怎么办?你会怎么设计降低这类错误? · AI Infra 与 Harness 工程 · 3-5 年
- 线上大模型服务的延迟怎么拆解?哪些部分你能优化、哪些是硬上限? · AI Infra 与 Harness 工程 · 3-5 年
- 提示词版本管理你怎么做?线上提示词改了以后,怎么知道是变好还是变坏? · AI Infra 与 Harness 工程 · 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 两个业务上带来的收益分别体现在哪里、哪个业务上收益相对不明显,为什么。 · AI Infra 与 Harness 工程 · 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? · AI Infra 与 Harness 工程 · 3-5 年
- 你们要上线一个 70B 稠密模型的在线对话服务,SLA 是 P99 首 token 延迟 < 2s、单节点输出吞吐 ≥ 2000 tok/s。候选推理引擎是 vLLM 和 TensorRT-LLM。约束有三个:业务要求两周内上线;未来半年内预计换 3 次权重,并可能引入 MoE 结构和多套 LoRA 热切换;团队里只有 2 个人有 CUDA 经验。请给出你的选型结论,并说明在什么可观测条件下你会启动迁移到另一条路线。 · AI Infra 与 Harness 工程 · 5 年以上
- 你在一张 24GB 显存的卡上用 vLLM 部署一个 7B 模型(FP16 权重约 14GB),启动参数 gpu_memory_utilization=0.9。同事说:"PagedAttention 不会浪费显存,所以把 max_model_len 从 8K 直接调到 32K 没关系。" 这个说法哪里不对?调大之后显存实际被什么吃掉了? · AI Infra 与 Harness 工程 · 校招
- 你要把线上一个 13B decoder 模型从 FP16 换成 W4A16 的 weight-only INT4 量化,目标是把单卡能承载的并发数翻倍。下游有两个任务:一个通用对话,一个对精度敏感的字段抽取。请给出你的量化方案选型(weight-only INT4,还是 W8A8 这类带激活量化的方案)、为什么,以及上线前你会用哪几层手段判断有没有掉点、掉在什么位置。 · AI Infra 与 Harness 工程 · 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%”这件事? · AI Infra 与 Harness 工程 · 3-5 年
- 成本要求把推理 GPU 卡数砍掉 40%。当前 72B 模型用 FP16 + TP4 跑在 4×A100-80G 上,最大 batch 只能到 8,目标是把 batch 提到 32。候选方案有 W8A8-INT8(SmoothQuant 一类)、W4A16(GPTQ/AWQ 一类)、以及在 Hopper 上的 FP8。请说明你会怎么选、校准数据怎么准备、哪些模块不能量化,以及你怎么判断量化有没有伤到业务。 · AI Infra 与 Harness 工程 · 5 年以上
- 一个 13B 模型 FP16 权重约 26GB,你要在单张 24GB 卡上跑,打算用 INT8 weight-only 量化把权重压到约 13GB。请回答:(1) 剩下约 11GB 够不够放 KV Cache 和激活,瓶颈可能在哪;(2) 在 batch=1 的逐 token decode 阶段,端到端延迟大概能降多少,为什么不是 2 倍? · AI Infra 与 Harness 工程 · 校招
- 一个 7B 模型,32 层,GQA 配置为 8 个 KV head、head_dim 为 128,KV cache 用 FP16 存储。请写出 batch=32、平均序列长度 2048 时 KV cache 的显存占用公式并算出结果。然后回答:如果此时显存不够,你会先动 batch size、先动序列长度,还是动别的?说明理由。 · AI Infra 与 Harness 工程 · 1-3 年
- 单张 A100 80G 上跑一个 13B 的 MHA 模型:40 层、40 个 KV head、head_dim 128、FP16,权重占 26GB。服务 8K 上下文的并发请求。请先算出每个 token 的 KV cache 占用和单条 8K 序列的占用,然后回答:这张卡理论上最多能服务几个 8K 并发请求,为什么监控里看到的实际并发数往往比这个数还低?在不改模型结构、不换卡的前提下,你怎么把并发提上去,按性价比排序。 · AI Infra 与 Harness 工程 · 3-5 年
- 线上要做 32K 长上下文的多轮对话。模型 72B、80 层、GQA 8 个 KV head、head_dim 128,KV 用 FP16 存。现在发现单条序列的 KV 就要吃掉十几 GB,batch 只能开到 4,吞吐上不去,但显存已经见底。请先把这个账算清楚,再给出至少三条处于不同层次的优化路径,并说明各自的代价。 · AI Infra 与 Harness 工程 · 5 年以上
- 一个请求进来,最终序列长度 4000 token。模型是 32 层、GQA 8 个 KV head、head_dim 128、KV 用 FP16 存储。请算出这条请求的 KV Cache 占多少 MB;如果同时有 32 条这样的请求并发,总共占多少;以及你会怎么用这个结果来决定部署时的 max_num_seqs? · AI Infra 与 Harness 工程 · 校招
- 你的推理服务 P99 延迟要求 2s,现在用 dynamic batching(等 50ms 攒一批)做推理。低峰期延迟正常,高峰期 P99 直接飙到 8s。请说明问题出在哪、你会怎么改调度;并解释 continuous batching 和 dynamic batching 的区别具体落在哪一个时间点上。 · AI Infra 与 Harness 工程 · 1-3 年
- 你们的推理服务高峰期出现两个现象:(a) GPU 利用率只有 35%;(b) 一个 4000 token 的长输入请求进来后,同时在线的短对话请求 TPOT 从 25ms 抖到 200ms。当前配置是 static batching,batch=16、max_seq_len=4096,调度器每 100ms 组一批。请诊断这两个现象的共同根因,给出改造方案,并说明改造后你要盯哪些指标来判断改对了。 · AI Infra 与 Harness 工程 · 3-5 年
- 在线推理服务,请求长度长尾严重:输入 p50 800 token、p99 24K,输出 p50 200、p99 3K。已经用了 continuous batching,max_num_seqs=256,但实测 GPU 利用率只有 60%,P99 TTFT 高达 8s。请诊断原因并给出方案,同时说明为什么不能靠简单调大或调小 batch 解决。 · AI Infra 与 Harness 工程 · 5 年以上
- 一个用 static batching 的服务:batch_size=8,必须凑满 8 条才发车,且同一批里所有序列要等最长的那条跑完才一起返回。请求均匀到达,每 50ms 一条;平均每条输出 200 token,每生成一个 token 耗时 20ms。请估算平均排队等待时间和一个 batch 的执行时间,并说明 continuous batching 消掉的是哪一部分。 · AI Infra 与 Harness 工程 · 校招
- 单张 24G 卡要部署一个 13B decoder 模型,FP16 权重约 26G,业务需要支撑 8 并发、平均 2K 序列长度。请按优先级列出你会用的显存优化手段,每个手段说明它省的是权重、KV cache、激活还是碎片,以及代价是什么;并说明为什么「把 batch 调小」解决不了这个问题。 · AI Infra 与 Harness 工程 · 1-3 年
- 要在单张 24GB 卡上部署一个 13B 对话模型,支持 8K 上下文。模型是 40 层、GQA 8 个 KV head、head_dim 128。要求稳定服务至少 4 路并发对话。请给出你的显存预算表(权重 / KV / 激活 / 框架与 CUDA graph 各占多少),说明哪一项是你能动的、哪一项动不了,并给出最终的量化与部署配置。 · AI Infra 与 Harness 工程 · 3-5 年
- 8×A100-80G 上跑 72B FP16 推理,TP=8 时权重约 18GB/卡,理论上还剩 60GB 空间,但实际跑长序列 prefill 时会 OOM,把 max_num_seqs 调小也不稳定。请给出你的显存账(哪些部分在吃显存),以及定位问题和做优化的先后顺序。 · AI Infra 与 Harness 工程 · 5 年以上
- 显存账本如下:卡 24GB,权重 14GB,CUDA context + 框架开销约 1.5GB,激活峰值约 1GB,其余留给 KV Cache。你想把 max_num_seqs 从 8 提到 32。请给出至少三条可行的做法,并分别说明各自的代价。 · AI Infra 与 Harness 工程 · 校招
- 你的 Agent 要完成『查上周失败订单 → 查每个订单的用户信息 → 给用户发补偿邮件』。可用工具:list_failed_orders(约 200ms,可能返回 500 条)、get_user(约 80ms/次)、send_email(写操作,第三方接口超时后会重复投递)。模型走 ReAct 循环,最多 20 步。请给出你的编排设计:哪些步骤并发、并发度怎么定、写工具如何避免重复发送、单步超时与整体预算怎么设、工具失败后是重试还是把错误回填给模型继续。 · AI Infra 与 Harness 工程 · 1-3 年
- 某内部 Agent 有 30 个工具,线上平均一次任务发起 8 次工具调用,其中约 60% 彼此无依赖;单次 LLM 规划延迟约 400ms,单次工具平均 200ms、p99 2s,有 5 个工具单次返回 100KB+ 文本。延迟预算要求 p95 小于 3s。你会把编排做成「每步让 LLM 选下一个工具」还是「先让 LLM 出完整 DAG 再执行」?给出你的决策条件、并行策略、失败重试与返回体裁剪方案,并说明工具数从 30 涨到 300 时哪些设计会先失效。 · AI Infra 与 Harness 工程 · 3-5 年