大規模訓練

DeepSpeed(ZeRO)

DeepSpeed 是微軟的訓練函式庫,最為人所知的是它提出並推廣了 ZeRO——把優化器狀態、梯度與參數切分到各資料平行 rank。它以極少的程式改動包裹既有模型,讓團隊能把參數量推到遠超複製式擺放所能容納的程度,同時保留簡單的資料平行程式設計模型。它把三個 ZeRO 階段包裝在一份 JSON 設定之後,而不需動模型結構。

在核心分片之外,DeepSpeed 的招牌動作是在 GPU 單獨容納不下時,把狀態往記憶體階層下方溢流。ZeRO-Offload 把優化器狀態與優化器步移到 CPU 記憶體與 CPU 核心上;ZeRO-Infinity 再延伸到 NVMe,把磁碟當成另一層,使遠大於 GPU 總記憶體的模型也能訓練,代價是受頻寬限制的步驟。該庫也附帶融合核心、一系列混合精度與量化工具,以及一個推論引擎,但它的擴展身份仍是 ZeRO 加卸載。

DeepSpeed 與 PyTorch FSDP 如今能力多有重疊——兩者都實作了 ZeRO-3 演算法——兩者間的取捨大致是生態系與工具鏈問題。DeepSpeed 的卸載階層仍是它在記憶體受限叢集上訓練超大模型的差異化優勢,前提是要理解受 NVMe 限制的步驟是以吞吐換取可行性。

又稱
DeepSpeedZeRO-OffloadZeRO-Infinity