M8-027M8: ML Systems, Engineering & ResearchTraining Platforms & Experiment TrackingMedium
Mastery:
Training Platforms & Experiment Tracking: 解释分布式训练的调度与容错。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 调度:资源分配/拓扑感知/抢占;容错:checkpoint 恢复、弹性训练、以及'慢节点'处理。
📌 Key Takeaways
- •调度:gang scheduling(全有或全无)、拓扑感知(NVLink/IB)、优先级与抢占
- •容错:定期 checkpoint + 自动恢复;弹性训练(动态调整规模)
- •慢节点(straggler)检测与处理;以及'重启成本'的权衡
📐 Mathematical Derivations
数学机理:<strong>分布式训练的调度</strong>——(1) <strong>Gang scheduling(成组调度)</strong>——(a) <strong>问题</strong>——分布式训练的所有 worker <strong>必须同时启动</strong>(因为它们需同步通信);若只分配了部分资源,则已分配的 worker 会'空等'(浪费);(b) <strong>做法</strong>——<strong>原子性分配</strong>(要么全部分配、要么都不分配);(c) <strong>意义</strong>——避免'死锁'(A 等 B 的资源、B 等 A 的)与'资源浪费'。(2) <strong>拓扑感知(topology-aware)</strong>——(a) <strong>带宽层次</strong>——NVLink(节点内,~900GB/s)≫ IB(节点间,~400Gb/s=50GB/s)≫ 以太网;(b) <strong>做法</strong>——把'通信密集'的并行(TP)放在<strong>节点内</strong>(NVLink),'通信较少'的(PP/DP)跨节点;(c) <strong>影响</strong>——错误的拓扑映射会导致'通信瓶颈'(性能差数倍)。(3) <strong>优先级与抢占</strong>——(a) 高优先级任务可抢占低优先级的(如'紧急实验'抢占'探索性实验');(b) <strong>抢占需支持</strong>(被抢占的任务需 checkpoint 后释放资源);(c) <strong>公平性</strong>(多团队共享集群时)。(4) <strong>容错(fault tolerance)</strong>——(a) <strong>Checkpoint</strong>——(i) <strong>定期保存</strong>(模型 + 优化器状态 + 数据进度);(ii) <strong>异步 checkpoint</strong>(不阻塞训练——后台写);(iii) <strong>频率权衡</strong>(太频繁则开销大、太少则丢失进度多);(b) <strong>自动恢复</strong>——(i) 检测故障(进程退出/心跳超时);(ii) <strong>重启</strong>(从最近 checkpoint 恢复);(iii) <strong>重启成本</strong>(大模型重启可能需数分钟到数十分钟——加载权重/初始化);(c) <strong>弹性训练(elastic)</strong>——(i) 训练过程中<strong>动态调整</strong> worker 数量(节点故障时缩容、有新资源时扩容);(ii) <strong>需支持</strong>(如 PyTorch Elastic/Torchelastic);(iii) <strong>难点</strong>——学习率/批大小需随规模调整;(d) <strong>'慢节点'(straggler)</strong>——(i) <strong>问题</strong>——同步训练中'最慢的 worker 决定整体速度';(ii) <strong>检测</strong>——监控各 worker 的'每步时间';(iii) <strong>处理</strong>——(1) 诊断(硬件/网络/数据倾斜);(2) 剔除(用弹性训练踢掉慢节点);(3) 容错机制(如'异步更新'或'备份 worker');(iv) <strong>常见原因</strong>——GPU 降频(过热)、网络拥塞、数据加载慢(IO)、其他任务抢占。(5) <strong>重启成本的权衡</strong>——(a) 大模型重启成本高(加载权重/编译/预热);(b) 故'<strong>预防优于恢复</strong>'(健康检查、预热、冗余);(c) <strong>'冗余 worker'</strong>(备用节点,故障时替换);(d) <strong>'快速恢复'</strong>(权重预加载/共享存储)。<strong>与其他问题的关系</strong>——(a) 与'分布式并行'(TP/PP/DP 的拓扑);(b) 与'训练成本控制'(重启浪费算力);(c) 与'可靠性与降级'。<strong>实践建议</strong>——(a) <strong>gang scheduling</strong>(避免死锁与浪费);(b) <strong>拓扑感知</strong>(TP 节点内、PP/DP 跨节点);(c) <strong>异步 checkpoint</strong>(不阻塞);(d) <strong>弹性训练 + 慢节点剔除</strong>;(e) <strong>健康检查与冗余</strong>(预防);(f) <strong>监控每步时间</strong>(检测 straggler)。<strong>度量</strong>——(a) 有效训练时间占比(vs 重启/等待);(b) 集群利用率;(c) 重启时间;(d) straggler 检出率。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'gang scheduling'避免死锁与浪费</strong>——面试中能指出是深度理解的标志。② <strong>'拓扑感知'影响性能数倍</strong>——TP 必须在节点内(NVLink)。③ <strong>'慢节点决定整体速度'</strong>——同步训练的特性;需检测与剔除。④ <strong>'异步 checkpoint'不阻塞训练</strong>——但需处理'一致性'(快照的原子性)。⑤ <strong>'重启成本高'→预防优于恢复</strong>——健康检查/预热/冗余。⑥ <strong>面试要点</strong>——被问'分布式训练怎么容错',应给出'<strong>调度(gang/拓扑感知/抢占)+ 容错(checkpoint/自动恢复/弹性训练)+ 慢节点处理 + 重启成本权衡</strong>';能指出'gang scheduling'与'拓扑感知'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕不用 gang scheduling(死锁或浪费)
- ✕不做 straggler 检测(慢节点拖累整体)
🎯 Interviewer Follow-ups
- ?为什么需要'gang scheduling'?
- ?如何检测'慢节点'?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.