技術指南

完全分片數據並行

完全分片数据并行 (FSDP) 是一种分布式训练技术,可将模型的参数、梯度和优化器状态拆分到多个 GPU 上,因此每个设备仅保留一个切片。

概述

完全分片数据并行 (FSDP) 是一种分布式训练技术,可将模型的参数、梯度和优化器状态拆分到多个 GPU 上,因此每个设备仅保留一个切片。它使得在硬體上訓練大型模型成為可能,而單一 GPU 的記憶體永遠無法容納整個模型。

完全分片資料並行是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

傳統的資料並行性在每個 GPU 上保留模型的完整副本,這會浪費記憶體並限制模型大小。 FSDP 由 Meta 的 PyTorch 普及,并受到 Microsoft 的 ZeRO 的启发,而是跨设备分片三件事:参数、梯度和优化器状态。在前向传递过程中,每个 GPU 通过全收集临时收集其正在计算的层的全部权重,运行计算,然后立即释放收集的副本。向後傳遞的工作原理類似,然後是減少分散,將梯度切片分配回其所屬的 GPU。由于每个设备仅永久存储模型的一小部分,因此内存使用量与 GPU 数量大致呈线性下降,从而使团队可以训练具有数百或数千亿参数的模型。

技術洞察

FSDP 用額外的通訊來節省記憶體。每层的权重根据需要在使用前进行全聚集重建,并在使用后立即丢弃,而梯度则通过减少分散进行组合和分割。透過在目前層運行時預先取下一層的參數,通訊可以與計算重疊,從而隱藏大部分網路延遲。調整分片粒度(包裝策略)可以平衡記憶體佔用與通訊開銷。

掌握完全分片資料並行

完全分片数据并行 (FSDP) 是一种分布式训练技术,可将模型的参数、梯度和优化器状态拆分到多个 GPU 上,因此每个设备仅保留一个切片。它使得在硬體上訓練大型模型成為可能,而單一 GPU 的記憶體永遠無法容納整個模型。完全分片資料並行是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。为了建立深入的理解,请将完全分片数据并行视为一种操作模型,而不是单个功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

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

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

戰略影響

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

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

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

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

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

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

完全分片數據並行的未來

FSDP 正在成為開放大型模型訓練的預設設置,PyTorch 中的 FSDP2 提高了可用性和每個參數分片。预计与万亿参数模型的张量和管道并行性更紧密的集成,对混合精度和 fp8 的更好支持,以及为您选择分片边界的更智能的自动包装。随着 NVLink 和 InfiniBand 等 GPU 间互连变得越来越快,分片的通信成本不断缩小,使其在更大的规模上变得实用。

現實世界的實施

在 8 個單獨無法承受全部權重的 GPU 上微調 700 億參數的 Llama 模型。

透過在數百個加速器上分片優化器狀態(Adam 主導記憶體),在人工智慧實驗室預先訓練大型語言模型。

研究人員使用 PyTorch 的 FSDP 包裝器在大學集群上訓練視覺變壓器,而無需購買旗艦 80GB GPU。

將 FSDP 與混合精度 bfloat16 結合,可將記憶體大致減半並加快多模式模型的訓練吞吐量。

實施模式

實踐中的完全分片資料並行

在 8 個單獨無法承受全部權重的 GPU 上微調 700 億參數的 Llama 模型。

在 8 個 GPU 上微調 700 億參數的 Llama 模型,這些 GPU 單獨無法承受全部權重。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

實踐中的完全分片資料並行

透過在數百個加速器上分片優化器狀態(Adam 主導記憶體),在人工智慧實驗室預先訓練大型語言模型。

透過在數百個加速器上分片優化器狀態(Adam 主導記憶體),在人工智慧實驗室中預先訓練大型語言模型。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

實踐中的完全分片資料並行

研究人員使用 PyTorch 的 FSDP 包裝器在大學集群上訓練視覺變壓器,而無需購買旗艦 80GB GPU。

研究人員使用 PyTorch 的 FSDP 包裝器在大學集群上訓練視覺轉換器,而無需購買旗艦 80GB GPU。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

實踐中的完全分片資料並行

將 FSDP 與混合精度 bfloat16 結合,可將記憶體大致減半並加快多模式模型的訓練吞吐量。

將 FSDP 與混合精度 bfloat16 結合,可將記憶體大致減半並加快多模式模型的訓練吞吐量。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

風險與防護欄

!

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

!

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

!

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

實施路線圖

1

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

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

2

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

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

3

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

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

4

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

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

不斷探索