核心要点
能从模型规模、数据量、预算、时间约束分析
理解 CPU/GPU/TPU 适用场景
知道内存、互联、存储 I/O 瓶颈
能提及 Spot、混合精度等成本优化
简要回答
选型需权衡模型大小、batch/数据规模、训练时限与预算:小模型 CPU 即可;深度学习用 GPU;超大模型需多卡互联与大显存,并考虑 I/O 与 Spot 成本。
标准回答
一、先给出结论和背景
- 模型与算法:- 小模型(XGBoost、小 MLP):CPU 多核 + 足够 RAM
- CNN/Transformer 训练:GPU(CUDA)
- 超大 LLM:多 GPU + NVLink/InfiniBand,张量/流水线并行
- 显存(VRAM):- 估算:参数 + 梯度 + 优化器状态 + 激活(与 batch 成正比)
- 7B FP16 训练约需 60GB+;用 gradient checkpointing、ZeRO、LoRA 降需求
- 数据 I/O:- 大数据训练瓶颈常在存储:本地 NVMe > 网络 S3(需 prefetch/cache)
- 分布式需高带宽防 GPU 饿死
二、拆开关键步骤和判断点
- 时间 vs 成本:- 紧急项目:多卡 A100 满配;研究探索:Spot V100 可接受中断
- 精度与硬件:- BF16 需 Ampere+;INT8 训练少见,推理常用
- 软件生态:- PyTorch CUDA 版本与驱动匹配;TPU 需 JAX/XLA 栈
三、补上落地边界和取舍
- 合规与位置:- 数据不出区域选对应 region;敏感数据禁公有云则 on-prem
- 决策流程:估算 FLOPs/显存 → 定 SLA → 比价 cloud instance → PoC benchmark。详见 MLOps 入门、GPU 与训练。
面试里要把 选择机器学习训练算力资源时需考虑哪些因素 放到训练到上线的链路里说:离线指标只是第一步,还要补特征一致性、版本管理、灰度实验、监控漂移和回滚方案。这样能证明你理解的是生产系统,而不是只会背流程图。
回答思路
【定义】用一句话说清「选择机器学习训练算力资源时需考虑哪些因素」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:无脑上最大 GPU;忽视数据 I/O;不算显存直接 OOM;全球数据却选错 region 合规。
追问
追问 1:如何估算训练需要多少显存?
粗算:参数量×(2+2+8) bytes(FP16 权重+梯度+Adam 状态)+ 激活(与 batch、层数相关)。用工具如 torch.cuda.max_memory_allocated() 实测更准。
追问 2:多卡训练选什么互联?
单机 NVLink 最佳;多机需 InfiniBand/RoCE 高带宽低延迟,否则 all-reduce 成瓶颈。云上看是否 placement group / RDMA。
追问 3:Spot 实例训练如何容错?
频繁 Checkpoint 到 S3;分布式用 elastic training(节点丢失继续);Spot 中断前 graceful save;混合 on-demand 保底。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
