大規模訓練

專家平行(expert parallelism)

混合專家層擁有許多並列的前饋子網路——也就是專家——但每個 token 只被路由到其中少數幾個。由於專家彼此獨立、每個 token 又只觸發一個子集,擴展它們最自然的方式就是把不同專家放到不同裝置上。這就是專家平行:每個裝置儲存並計算一組互不重疊的專家,於是總參數量隨裝置數成長,而每個 token 的計算量仍固定在它實際造訪的那幾個專家上。

其定義性機制是一對 all-to-all 集合通訊。路由器為每個 token 評分後,第一次 all-to-all 把每個 token 派送到主持其所選專家的那個裝置;專家在本地運行;第二次 all-to-all 再把處理完的 token 送回原本的位置。all-to-all 的流量取決於 token 如何分布在各專家上,因此負載不均是核心大敵——熱門專家的裝置過載而其他裝置閒置,於是有容量因子、輔助負載平衡損失與丟棄 token 等策略來馴服它。專家平行通常會對非專家(注意力)權重搭配資料平行。

專家平行正是不用兆級計算就能訓練兆級參數稀疏模型的方法:它把容量與 FLOPs 解耦。它的擴展天花板是 all-to-all——一種全域、對延遲敏感的交換,比稠密訓練的 all-reduce 更嚴峻地考驗互連拓樸。

all-to-all 是專家平行的標誌性成本;和 all-reduce 不同,它的流量透過路由器與資料相依,因此一個平衡不佳的模型,洗牌 token 的時間可能超過計算它們的時間。

又稱
EPMoE parallelism專家平行