标准回答
需求与指标
先澄清:是支撑单个千卡 LLM 预训练,还是多团队多任务共享集群?核心指标:扩展效率(加卡是否近线性提速)、GPU 利用率(MFU)、平均无故障训练时长与恢复时间、单位训练成本。
整体架构
资源调度层(K8s + GPU 调度)→ 训练框架层(并行 + 优化)→ 数据管线层 → 实验/产物管理层 → 监控层,贯穿全栈。
并行策略
按模型规模组合 并行:数据并行(多副本同步梯度)打底;模型放不下时上张量并行(层内切分,需高速 NVLink);超深模型用流水线并行(层间切分);用 DeepSpeed ZeRO 分片优化器状态/梯度/参数省显存。三维并行(DP×TP×PP)按 GPU 互联拓扑组合,TP 放机内、PP/DP 跨机。
调度与容错
GPU 调度做拓扑感知(同任务的卡尽量同机/同交换机,减跨机通信)、gang scheduling 保证整组同时启动。容错是大规模训练命门:定期异步 checkpoint,节点故障/抢占时从最近 ckpt 弹性恢复,支持动态增减节点继续训练。
数据与实验
数据管线做分布式读取、shuffle 与预取,避免 IO 成瓶颈;实验管理记录超参、代码版本、指标与产物,保证可复现。
监控与成本
监控 GPU 利用率、通信占比、loss 曲线与吞吐,异常(loss 爆炸、慢节点 straggler)告警;用利用率和成本看板驱动资源回收与混部,弹性用 Spot/潮汐算力降本。
常见误区
⚠️ 常见踩坑
只讲并行策略不讲容错与调度:千卡训练每天都可能掉卡,没有 checkpoint + 弹性恢复,一次故障就前功尽弃;也别忽略数据 IO 与通信瓶颈,否则加卡不提速、扩展效率塌方。
追问
追问 1:三维并行(数据/张量/流水线)如何配比?依据是什么?
依据模型大小、单卡显存与集群互联拓扑。张量并行通信最密集,应放在 NVLink 高带宽的机内、规模不宜过大(常 8 以内);流水线并行跨机,要平衡气泡(micro-batch 越多气泡越小);数据并行最外层扩规模。先用 TP 让模型放进单机,PP 跨机切深度,DP 复制扩吞吐,再叠 ZeRO 进一步省显存。最终以实测 MFU 与扩展效率调参定型。
追问 2:千卡训练故障频繁,如何最小化损失并快速恢复?
异步分层 checkpoint:把 ckpt 写本地 SSD 再后台上传,缩短写阻塞;用冗余/分片 ckpt 避免单点。检测 straggler 与掉卡后,弹性训练从最近 ckpt 重启并把故障节点替换为备机,无备机时降并行度继续。配合健康检查、自动重调度与「热备节点池」,把恢复从小时级压到分钟级;高价值任务可做 in-memory checkpoint 或冗余副本进一步降损。
追问 3:如何提升 GPU 利用率(MFU)与降低成本?
算子层用混合精度(BF16/FP8)、FlashAttention、融合算子减少访存;通信用梯度分桶 overlap、ZeRO 通信重叠计算降同步开销;消除 IO 瓶颈(数据预取/缓存)与 straggler。集群层做混部(训练 + 离线任务填谷)、潮汐与 Spot 算力、按利用率回收闲置卡。用 MFU 与每 token 成本看板量化,持续找瓶颈优化扩展效率。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📖 术语表
🛠️ AI 工具
- DeepSpeed
深度学习训练优化库,42,156+ stars。微软开发的开源深度学习优化库,提供 ZeRO 内存优化、3D 并行等核心技术,大幅降低大模型训练成本