技術指南

DeepSpeed 和 Megatron 訓練堆疊

DeepSpeed (Microsoft) 和 Megatron-LM (NVIDIA) 是軟體堆疊,使數千個 GPU 的數十億參數的訓練模型變得切實可行。

概述

DeepSpeed (Microsoft) 和 Megatron-LM (NVIDIA) 是軟體堆疊,使數千個 GPU 的數十億參數的訓練模型變得切實可行。如果沒有它們,今天的前沿模型根本無法適應記憶體或在合理的時間內完成訓練。

DeepSpeed 和 Megatron 訓練堆疊是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

在一個 GPU 上訓練大型模型是不可能的,因為權重、梯度和優化器狀態不適合。這些堆疊將工作分配給許多 GPU。 Megatron-LM 開創了張量並行性,在 GPU 上的每一層內切片單獨的矩陣乘法,以及管道並行性,將不同的層放在不同的 GPU 上。 DeepSpeed 的標誌性貢獻是 ZeRO(零冗餘優化器),它將優化器狀態、梯度和參數跨 GPU 分片而不是複製它們,從而大幅削減每個 GPU 的記憶體。兩者經常結合(Megatron-DeepSpeed)來訓練 BLOOM-176B 和 Megatron-Turing NLG 等模型。他們還添加了混合精度、激活檢查點和卸載到 CPU 或 NVMe,因此大型模型可以在有限的硬體上進行訓練。

技術洞察

ZeRO 有三個增加記憶體節省的階段:第 1 階段對優化器狀態進行分片,第 2 階段還對梯度進行分片,第 3 階段對參數本身進行分片,在前向和後向傳遞過程中按需收集它們。與張量並行性(層內)和管道並行性(層間)結合,形成「3D並行性」。關鍵的壓力是通訊開銷:每個分片分割都會增加 GPU 到 GPU 的流量,因此工程師調整分割以保持快速 NVLink 和 InfiniBand 連結飽和。

掌握 DeepSpeed 和 Megatron 訓練堆疊

DeepSpeed (Microsoft) 和 Megatron-LM (NVIDIA) 是軟體堆疊,使數千個 GPU 的數十億參數的訓練模型變得切實可行。如果沒有它們,今天的前沿模型根本無法適應記憶體或在合理的時間內完成訓練。 DeepSpeed 和 Megatron 訓練堆疊是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 DeepSpeed 和威震天訓練堆疊視為一種操作模型,而不是單一功能:定義所需的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。

在實踐中,使用 DeepSpeed 和 Megatron 訓練堆疊的強大團隊根據可靠性和成本優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。

多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。

戰略影響

多年來,架構決策決定著效能和營運成本。

多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

更好的工程選擇可以減少生產中的可靠性事故。

更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

DeepSpeed 和 Megatron 訓練堆疊的未來

預計與 PyTorch 的原生 FSDP(完全分片資料並行)進行更緊密的集成,它吸收了許多 ZeRO 思想,模糊了研究堆疊和核心框架之間的界限。編譯器驅動的方法和自動並行規劃器旨在消除手動調整。隨著訓練集群成長到數十萬個加速器,容錯、彈性擴展和與運算的重疊通訊成為主要的工程前沿,同時支援 NVIDIA Blackwell 和客製化訓練晶片等新硬體。

現實世界的實施

使用跨數百個 GPU 的組合 Megatron-DeepSpeed 堆疊來訓練開放式多語言 BLOOM-176B 模型。

Microsoft 和 NVIDIA 使用 3D 平行訓練 5,300 億參數的 Megatron-Turing NLG 模型。

ZeRO-Offload 讓研究人員透過將優化器狀態溢位到 CPU RAM 來微調單一工作站 GPU 上的數十億參數模型。

在這些堆疊中使用激活檢查點,透過重新計算激活而不是儲存全部激勵來適應更長的上下文視窗。

實施模式

DeepSpeed 和 Megatron 訓練堆疊的實踐

使用跨數百個 GPU 的組合 Megatron-DeepSpeed 堆疊來訓練開放式多語言 BLOOM-176B 模型。

使用跨數百個 GPU 的威震天-DeepSpeed 組合堆疊來訓練開放式多語言 BLOOM-176B 模型 當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移跟踪生產力增益和錯誤成本時,通常會獲得更好的結果。

DeepSpeed 和 Megatron 訓練堆疊的實踐

Microsoft 和 NVIDIA 使用 3D 平行訓練 5,300 億參數的 Megatron-Turing NLG 模型。

Microsoft 和 NVIDIA 使用 3D 平行性訓練 5300 億個參數的 Megatron-Turing NLG 模型 當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

DeepSpeed 和 Megatron 訓練堆疊的實踐

ZeRO-Offload 讓研究人員透過將優化器狀態溢位到 CPU RAM 來微調單一工作站 GPU 上的數十億參數模型。

ZeRO-Offload 讓研究人員透過將優化器狀態溢位到 CPU RAM 來微調單一工作站 GPU 上的數十億參數模型。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

DeepSpeed 和 Megatron 訓練堆疊的實踐

在這些堆疊中使用激活檢查點,透過重新計算激活而不是儲存全部激勵來適應更長的上下文視窗。

在這些堆疊中使用激活檢查點,透過重新計算激活而不是儲存所有激活來適應更長的上下文視窗。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

風險與防護欄

!

優化一項基準測試可以隱藏更廣泛的系統弱點。

!

基礎設施和維護成本常常被低估。

!

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

2

在實際負載和資料條件下進行基準測試。

在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

3

儀器監控錯誤、漂移和使用者影響。

儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

4

在擴展之前準備回滾和事件回應路徑。

在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

不斷探索