在分布式训练(Distributed Training)中,Straggler(落后者/慢节点) 是指在并行计算集群中,处理速度显著慢于其他节点的机器或进程。 由于目前主流的训练模式是 同步 SGD(Synchronous SGD),即所有节点必须在每一步(Step)结束时进行梯度同步(AllReduce),整个系统的速度取决于最慢的那个节点(木桶效应)。因此,处理 Straggler 是提升集群效率的关键。 以下是处理 Straggler 问题的几种主要策略,按从算法层到系统层的顺序分类: --- 1. 算法与同步策略层 (Synchronization Strategies) 这是最直接的应对方式,通过改变参数更新的机制来容忍慢节点。 异步 SGD (Asynchronous SGD): 原理: 各个 Worker 独立计算梯度并推送到参数服务器(Parameter Server),不需要等待其他 Worker。 优点: 完全消除了 Straggler 的影响,计算资源利用率极高。 缺点: 会引入梯度陈旧(Gradient Staleness) 问题,导致模型收敛困难或精度下...