知识卡片

AllReduce作为分布式ML的通用抽象

专业/工作 · 288

内容

AllReduce把分布式训练中”多节点数据同步”这件事抽象成两个阶段:先按树形结构逐层向上求和(Reduce),再把最终结果沿原路径向下广播给所有节点(Broadcast),结束后每个节点都拿到同一份全局结果。它之所以能同时支撑线性模型的梯度下降、KMeans的质心统计、XGBoost树模型的分位数与直方图聚合这些看起来完全不同的算法,是因为这些算法的分布式实现本质上都可以拆解成”本地计算局部统计量 + 全局聚合 + 广播回各节点”这一个循环——只要一个算法能被表达成多轮的统计查询,就能直接套用AllReduce并行化,不需要为每种算法单独设计通信协议。

参考来源

《深入理解XGBoost:高效机器学习算法与进阶》第6章《分布式XGBoost》