2025-12-10 17:51:29 作者:狼叫獸
據悉,昇思MindSpore開源社區將于 2025 年 12 月 25日在杭州舉辦昇思人工智能框架峰會人工智能。本次峰會將展示昇思親和超節點技術創新點。面向本次大會的昇思人工智能框架技術發展與行業實踐論壇,本文基本昇思AI框架技術發展實踐,就AI框架共有的優化器并行相關技術進行探討。
大模型訓練中,隨著模型參數向萬億級邁進,顯存壓力呈指數級增長,因此高效地利用顯存,是訓練能否有效進行的關鍵因素人工智能。為此,業界發展出多種“以通信換顯存”的并行策略——其中最主流的是DeepSpeed Zero(ZeRO)、Megatron FSDP(Fully Sharded Data Parallel)。這些技術看似不同,實則都是將權重在dp(data parallel)維度進一步切分,以通信換顯存。
昇思MindSpore的優化器并行方案于2020提出并將其實現開源,早于DeepSpeed Zero和Megatron FSDP,且Pytorch的原生并行庫Titan提出的FSDP方案采用了與昇思MindSpore的優化器并行完全相同的方案人工智能。 本文將深入剖析這些技術,并揭示一個常被忽略的關鍵問題:“權重副本”到底需不需要?
Zero的深入剖析
DeepSpeed提出Zero概念時人工智能,就對權重、梯度、優化器狀態的分級切分給了嚴格的定義,如下表如下:
表1. Zero切分的定義
根據Zero分級切分定義人工智能,其形成的切分效果如下圖所示:
人工智能?:人工智能">
圖1. Zero的切分效果
Zero的切分是針對模型的優化器狀態、梯度、模型參數這3份靜態顯存進行切分,但這里存在一個隱藏問題:如果只切分優化器狀態而不切權重,那更新時用哪個權重?實際上,還有一個“權重副本”(parameter copy) 需要參與計算人工智能。因此模型靜態顯存應為優化器狀態、梯度、模型參數和權重副本4份,進而更新Zero的定義如下表:
表2. Zero切分的更新定義
Zero-1的實現切分了優化器狀態和權重副本人工智能,其模型的前向與反向在梯度累加場景下會執行N次(N為梯度累加次數),但AllGather與ReduceScatter只執行一次,其流程如圖2所示:
人工智能?:人工智能">
圖2. Zero-1的流程
Zero-2對權重副本、優化器狀態、梯度都進行了切分,其流程圖如圖3所示人工智能。為了能夠切分梯度,在梯度累加前,先對反向出來的梯度執行一次ReduceScatter,那么這個ReduceScatter要執行N次,這樣為了節省梯度參數的顯存,引入了過量的ReduceScatter開銷,因此在實際大模型訓練中含梯度累加的場景,一般僅使用Zero-1。
人工智能?:人工智能">
圖3. Zero-2的流程
Zero-3對所有靜態顯存都進行了切分,其流程圖如圖4所示人工智能。為了除低顯存在前反向開始計算前都會進行AllGather操作,引入了巨大的通信開銷,同樣在大模型訓練的梯度累加場景一般是不可接受的。
人工智能?:人工智能">
圖4. Zero-3的流程
昇思MindSpore的優化器并行方案:去權重副本人工智能,更簡潔
昇思MindSpore的優化器并行方案自2020年起就采用了一種無需權重副本的方案,其核心思路是“要切分優化器狀態,就必須要切權重本身”人工智能。模型的靜態顯存可分優化器狀態:直接切分到dp域,權重:隨優化器狀態切分,梯度:權在梯度累加時才分配靜態顯存。昇思MindSpore優化器并行Zero的方案通過表3給出。
表3. 昇思MindSpore優化器并行Zero切分的定義
昇思MindSpore優化器并行Zero-1的流程只切分優化器狀態與權重,分為非梯度累加與梯度累加2個場景,其中非梯度累加流程如圖5所示,梯度累加流程如圖6所示人工智能。在非梯度累加場景,去掉了梯度的靜態顯存,因此顯存利用是明顯優于DeepSpeed原版的。
人工智能?:人工智能">
圖5. 昇思MindSpore優化器并行Zero-1非梯度累加場景的流程
人工智能?:人工智能">
圖6. 昇思MindSpore優化器并行Zero-1梯度累加場景的流程
昇思MindSpore優化器并行Zero-2的流程與DeepSpeed/Megatron的實現沒有本質區別,如圖7所示人工智能。
人工智能?:人工智能">
圖7. 昇思MindSpore優化器并行Zero-2的流程
昇思MindSpore優化器并行Zero-3的流程與DeepSpeed/Megatron的實現也沒有本質區別,給反向的AllGather通過對前向AllGather的重計算來實現,如圖8所示人工智能。
人工智能?:人工智能">
圖8. 昇思MindSpore優化器并行Zero-3的流程
名字只是表象,思想才是核心人工智能。昇思MindSpore的優化器并行方案相較于DeepSpeed和Megaron方案有以下2大優勢:
1. 避免冗余靜態顯存:無需維護權重副本,顯存更優人工智能。2. 流程更簡潔:前向開始前執行AllGather獲取完整權重,反向結束后釋放。
PyTorch 最新原生并行庫Titan的FSDP方案也采用了類似設計,說明該思路已成趨勢人工智能。
本次在杭州舉辦的昇思人工智能框架峰會人工智能。將會邀請思想領袖、專家學者、企業領軍人物及明星開發者等產學研用代表,共探技術發展趨勢、分享創新成果與實踐經驗。歡迎各界精英共赴前沿之約,攜手打造開放、協同、可持續的人工智能框架新生態!
人工智能?:人工智能">