Microsoft開源了零冗余優化器版本2(ZeRO-2),這是一種分布式深度學習優化算法,可根據集群大小進行超線性擴展。與以前的分布式學習技術相比,Microsoft使用ZeRO-2培訓了10倍的1000億參數自然語言處理(NLP)模型。
程序經理Rangan Majumder和杰出的工程師Wang Junhua在博客中寫道,描述了該算法及其實驗。ZeRO-2是Microsoft開源DeepSpeed庫的一部分,用于深度學習培訓優化。ZeRO-2優化了訓練過程中的內存消耗,允許對多達1,700億個參數的模型進行分布式訓練。該算法還減少了分布式集群中工作節點之間的通信,實現了超線性并行加速,從而將培訓時間減少了多達10倍。DeepSpeed團隊在1,024個GPU的集群上使用ZeRO-2,達到了創紀錄的44分鐘的時間來訓練BERT自然語言模型,比NVIDIA的結果提高了30%以上。
NLP研究的最新趨勢表明,通過在較大數據集上訓練的較大模型,可以提高準確性。OpenAI提出了一套“縮放定律”,表明模型精度與模型大小具有冪律關系,并且最近通過創建具有1750億個參數的GPT-3模型對該想法進行了測試。由于這些模型太大而無法容納單個GPU的內存,因此對其進行訓練需要一堆機器和模型并行訓練技術,以在整個集群中分配參數。有幾種實現有效的模型并行性的開源框架,包括GPipe和NVIDIA的Megatron,但是由于集群節點之間的通信開銷,它們具有次線性加速,并且使用框架通常需要模型重構。
ZeRO-2使用以下三種策略來減少訓練所需的內存:減少模型狀態內存需求,將層激活卸載到CPU以及減少內存碎片。ZeRO-2可以通過在并行進程之間劃分梯度和參數,將模型狀態內存需求減少多達8倍。層激活值是從前向訓練過程中保存的,以便稍后在后向過程中使用,但是ZeRO-2將它們暫時從GPU的內存移動到主機CPU的內存。最后,即使可用內存不連續,即使內存可用,內存分配也可能失敗。ZeRO-2通過為連續用途(例如激活和漸變)預先分配連續的內存塊來減少碎片。
-
深度學習
+關注
關注
73文章
5506瀏覽量
121259 -
自然語言處理
+關注
關注
1文章
619瀏覽量
13579 -
nlp
+關注
關注
1文章
489瀏覽量
22052
發布評論請先 登錄
相關推薦
評論