AI Infra 面试会问什么
想转 AI Infra,面试会遇到什么问题?
这篇整理常见面试题和参考答案。
GPU 基础
Q: nvidia-smi 各字段什么意思?
参考答案:
- GPU-Util:SM 利用率,反映计算负载
- Memory-Usage:显存使用,关注是否接近上限
- Temp:温度,过高会降频
- Power:功耗,反映实际工作状态
- Processes:占用 GPU 的进程
加分:知道 nvidia-smi dmon、nvitop 等工具。
Q: 显存、算力、带宽的关系?
参考答案:
- 显存决定能装多大模型
- 算力决定计算速度
- 带宽决定数据搬运速度
- 通过算术强度判断瓶颈:大模型推理是带宽瓶颈,训练更接近算力瓶颈
加分:能画 Roofline 模型解释。
Q: H100 和 A100 主要区别?
参考答案:
- 算力:H100 FP16 约 2000 TFLOPS,A100 约 312 TFLOPS
- 带宽:H100 3.35 TB/s,A100 2 TB/s
- 互联:H100 NVLink 4.0(900 GB/s),A100 NVLink 3.0(600 GB/s)
- 新特性:H100 支持 FP8、Transformer Engine
加分:知道 H20 的特点(算力被阉割但显存大带宽高)。
分布式训练
Q: 数据并行和模型并行的区别?
参考答案:
- 数据并行:每张卡存完整模型,处理不同数据,同步梯度
- 模型并行:模型切分到多张卡,包括张量并行和流水线并行
- 数据并行简单但受限于单卡显存,模型并行可以训练超大模型
加分:能解释 ZeRO 的三个 Stage。
Q: 什么是 AllReduce?为什么重要?
参考答案:
- AllReduce 是把所有节点的数据汇总并返回给所有节点
- 用于梯度同步:所有 GPU 的梯度求和取平均
- Ring AllReduce 算法通信量和节点数无关
加分:知道 NCCL、能解释 Ring AllReduce 的两个阶段。
Q: 分布式训练为什么需要高速网络?
参考答案:
- 梯度同步需要大量通信
- 通信时间长,GPU 在等待,利用率低
- NVLink 比 PCIe 快一个数量级
- 跨机器需要 InfiniBand,比以太网快
加分:能算出通信带宽需求。
推理优化
Q: 什么是 KV Cache?为什么重要?
参考答案:
- KV Cache 缓存历史 token 的 Key 和 Value,避免重复计算
- 每生成一个 token 只需计算新 token 的 KV
- 是推理的主要显存消耗,和上下文长度成正比
加分:能算出 KV Cache 大小,知道 GQA/MQA。
Q: vLLM 为什么快?
参考答案:
- PagedAttention:KV Cache 分页管理,按需分配,无碎片
- Continuous Batching:动态调度请求,不等凑批
- 显存利用率从 ~50% 提升到 ~95%
- 吞吐提升 2-4 倍
加分:能解释 PagedAttention 的页表管理机制。
Q: 推理和训练的主要区别?
参考答案:
- 训练:前向+反向,算力瓶颈,要存梯度和优化器状态
- 推理:只有前向,带宽瓶颈,要存 KV Cache
- 推理关注延迟和吞吐,训练关注收敛和效率
加分:能解释 Prefill 和 Decode 两个阶段。
K8s 调度
Q: K8s 怎么管理 GPU?
参考答案:
- 通过 Device Plugin 机制
- NVIDIA Device Plugin 注册到 Kubelet
- 上报 GPU 数量,分配时返回设备路径和环境变量
- Pod 用
nvidia.com/gpu请求 GPU
加分:知道 GPU Operator、MIG 配置。
Q: 什么是 Gang Scheduling?为什么需要?
参考答案:
- Gang Scheduling 是要么全部调度,要么一个都不调度
- 分布式训练需要所有 Pod 同时启动
- K8s 原生不支持,需要 Volcano 等调度器
- 避免部分调度导致的资源浪费
加分:知道 Volcano 的 minAvailable、Queue 等概念。
Q: GPU 调度有哪些常见问题?
参考答案:
- GPU 资源不显示:检查 Device Plugin
- 调度失败:资源不足或 nodeSelector 不匹配
- 容器内没有 GPU:检查环境变量和设备挂载
- 利用率低:数据加载、batch size、推理特性
加分:有实际排查经验。
系统设计
Q: 设计一个大模型推理服务
参考答案:
用户请求 → 负载均衡 → 请求队列 → 推理引擎集群 → 返回结果
↓
模型存储(S3/本地)
关键组件:
1. 负载均衡:按 GPU 利用率分发
2. 请求队列:限流、排队
3. 推理引擎:vLLM,Continuous Batching
4. 监控告警:延迟、错误率、GPU 利用率
5. 自动扩缩容:基于队列长度
加分:考虑到缓存、多模型管理、灰度发布。
Q: 设计一个分布式训练平台
参考答案:
用户提交任务 → 任务队列 → 调度器 → GPU 集群 → 训练 → 模型存储
关键组件:
1. 任务定义:支持 PyTorch/DeepSpeed 等框架
2. 调度器:Volcano,支持 Gang Scheduling
3. 资源管理:队列、配额、优先级
4. 存储:分布式文件系统(Lustre/GPFS)
5. 监控:训练 loss、GPU 利用率、进度
6. 容错:checkpoint、自动重启
加分:考虑到多租户隔离、成本计量。
实战问题
Q: GPU 利用率只有 20%,怎么排查?
参考答案:
- 看是训练还是推理
- 训练:检查数据加载(DataLoader workers)、batch size、CPU-GPU 同步
- 推理:可能是正常的(带宽瓶颈),看并发是否够
- 用 Nsight/PyTorch Profiler 分析时间分布
Q: 分布式训练卡住不动,怎么排查?
参考答案:
- 开启 NCCL_DEBUG=INFO 看日志
- 检查网络连通性(IB 状态、NCCL P2P)
- 检查是否某张卡故障
- 检查 rank 配置是否正确
- 增加 NCCL 超时时间定位问题
Q: 推理服务 P99 延迟突然升高,怎么排查?
参考答案:
- 看是否并发增加导致排队
- 检查 GPU 显存是否满(KV Cache)
- 看是否有长请求(长上下文/长输出)
- 检查是否有其他进程占用 GPU
- 看监控指标趋势,定位变化时间点
软技能
Q: 为什么想转 AI Infra?
参考答案(真诚版):
- 看好大模型方向的发展
- 之前做后端/运维,技能可迁移
- 喜欢解决复杂的工程问题
- 薪资和职业发展空间
Q: 你觉得 AI Infra 最大的挑战是什么?
参考答案:
- 技术栈更新太快,需要持续学习
- 硬件资源昂贵,容错和效率要求高
- 需要同时懂 AI 算法和系统工程
- 规模化带来的复杂性
准备建议
必须掌握
- GPU 基础指标和监控
- 分布式训练原理(数据并行、模型并行)
- 推理优化(KV Cache、vLLM)
- K8s 基础和 GPU 调度
加分项
- 有实际项目经验
- 熟悉 DeepSpeed/Megatron
- 了解最新技术(FP8、Speculative Decoding)
- 能做系统设计
面试技巧
- 先说结论,再展开
- 不会的坦诚说不太了解
- 结合实际经验举例
- 主动提问展示思考深度
小结
面试重点:
| 领域 | 必问 | 加分 |
|---|---|---|
| GPU 基础 | nvidia-smi、显存/算力/带宽 | Roofline、H100 vs A100 |
| 分布式训练 | 数据并行 vs 模型并行 | ZeRO、NCCL |
| 推理优化 | KV Cache、vLLM | PagedAttention 原理 |
| K8s 调度 | Device Plugin | Volcano、MIG |
| 系统设计 | 基本架构 | 细节和权衡 |
下一篇讲后端转 AI Infra 的学习路径。