微軟開源深度學習優化庫 DeepSpeed,可訓練 1000 億參數的模型

五嘎子 4年前發布 | 3K 次閱讀 深度學習

  人工智能的最新趨勢是,更大的自然語言模型可以提供更好的準確性,但是由于成本、時間和代碼集成的障礙,較大的模型難以訓練。微軟日前開源了一個深度學習優化庫 DeepSpeed,通過提高規模、速度、可用性并降低成本,可以在當前一代的 GPU 集群上訓練具有超過 1000 億個參數的深度學習模型,極大促進大型模型的訓練。

  根據微軟的介紹,DeepSpeed 庫中有一個名為 ZeRO(零冗余優化器,Zero Redundancy Optimizer)的組件,這是一種新的并行優化器,它可以大大減少模型和數據并行所需的資源,同時可以大量增加可訓練的參數數量。研究人員利用這些突破創建了圖靈自然語言生成模型(Turing-NLG),這是最大的公開語言模型,參數為 170 億。

  ZeRO 作為 DeepSpeed 的一部分,是一種用于大規模分布式深度學習的新內存優化技術,它可以在當前的 GPU 集群上訓練具有 1000 億個參數的深度學習模型,其吞吐量是當前最佳系統的 3 到 5 倍。它還為訓練具有數萬億個參數的模型提供了一條清晰的思路。

  ZeRO 具有三個主要的優化階段,分別對應于優化器狀態、??梯度和參數分區。

  ZeRO 克服了數據并行和模型并行的局限性,同時實現兩者的優點,它通過跨數據并行進程將模型狀態劃分為上圖所示的參數、梯度和優化器狀態分區,而不是復制它們,從而消除了數據并行進程之間的內存冗余。在訓練期間使用動態通信規劃(dynamic communication schedule),在分布式設備之間共享必要的狀態,以保持數據并行的計算粒度和通信量。

  目前實施了 ZeRO 的第一階段,即優化器狀態分區(簡稱 ZeRO-OS),具有支持 1000 億參數模型的強大能力,此階段與 DeepSpeed 一起發布。

  DeepSpeed 與 PyTorch 兼容,DeepSpeed API 是在 PyTorch 上進行的輕量級封裝,這意味著開發者可以使用 PyTorch 中的一切,而無需學習新平臺。此外,DeepSpeed 管理著所有樣板化的 SOTA 訓練技術,例如分布式訓練、混合精度、梯度累積和檢查點,開發者可以專注于模型開發。同時,開發者僅需對 PyTorch 模型進行幾行代碼的更改,就可以利用 DeepSpeed 獨特的效率和效益優勢來提高速度和規模。

  DeepSpeed 在以下四個方面都表現出色:

  更具體的介紹查看微軟的博客:

  https://www.microsoft.com/en-us/research/blog/zero-deepspeed-new-system-optimizations-enable-training-models-with-over-100-billion-parameters

 本文由用戶 五嘎子 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  轉載自:https://www.oschina.net/news/113328/microsoft-opensource-deepspeed