技術指南

大型模型的張量平行性

將單一神經網路層內的數學分割到多個 GPU 上的方法,這樣對於一個裝置來說太大的模型仍然可以運作。

概述

將單一神經網路層內的數學分割到多個 GPU 上的方法,這樣對於一個裝置來說太大的模型仍然可以運作。這很重要,因為前沿模型擁有數千億個參數,沒有任何一個 GPU 能夠單獨保存或計算得足夠快。

大型模型的張量並行性是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

張量並行性(也稱為層內模型並行性)在 GPU 上分割各個權重矩陣,而不是將整個層放在單獨的裝置上。在 Transformer 中,大矩陣乘法(注意力投影和前饋 MLP)被拆分:例如,MLP 的第一個權重矩陣按列分區,第二個權重矩陣按行分區,因此每個 GPU 計算一個切片,然後單個 all-reduce 組合結果。注意力分散在多個頭中,每個 GPU 處理一個子集。由於每個 GPU 都會同時執行每一層的一部分,因此張量並行性會減少每個 GPU 的記憶體並加快運算速度,但它需要每層 GPU 之間進行頻繁的高頻寬通訊。這就是為什麼它通常被限制在由 NVLink 連接的節點內,並與管道和資料並行性相結合,以實現非常大的訓練和服務作業。

技術洞察

由 Megatron-LM 推廣的技巧是選擇分區尺寸,從而最大限度地減少通訊。按列拆分第一個 MLP 矩陣可讓每個 GPU 在本地應用非線性,無需同步;逐行拆分第二行意味著輸出只需要一次全歸約即可對部分結果求和。因此,每一層大約會產生兩個全歸約(向前)和兩個(向後)。由於這些集合發生在每一層,因此延遲占主導地位,因此張量並行性存在於 NVLink 等快速節點內連結背後,而不是較慢的節點間網路背後。

掌握大型模型的张量并行性

將單一神經網路層內的數學分割到多個 GPU 上的方法,這樣對於一個裝置來說太大的模型仍然可以運作。這很重要,因為前沿模型擁有數千億個參數,沒有任何一個 GPU 能夠單獨保存或計算得足夠快。大型模型的張量並行性是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將大型模型的張量並行性視為一種操作模型,而不是單一功能:定義所需的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。

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

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

戰略影響

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

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

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

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

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

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

大型模型张量并行的未来

張量並行性仍然是基礎性的,但越來越多地融入「3D並行性」(張量+管道+數據),並與混合專家模型的專家並行性相結合。 Megatron-LM、DeepSpeed 和 vLLM 等框架可自動執行分片。隨著 GPU 互連(NVLink、NVSwitch)和光學結構變得更快,節點邊界限制放寬,允許更廣泛的張量並行組。期望更聰明的自動並行化,選擇分片尺寸和群組大小,以最大限度地減少給定集群拓撲的通訊。

現實世界的實施

使用 Megatron-LM 將每一層的權重矩陣分片到一個 NVLink 連接節點中的 8 個 GPU 上,從而訓練 175B 參數模型。

在 vLLM 中使用 tensor_parallel_size=4 提供 70B 參數的聊天模型,以便權重適合四個 GPU 並即時回應。

將 Transformer 注意力頭拆分到 GPU 上,以便每個裝置計算一個子集,然後連接下一層的輸出。

結合節點內的張量平行性和跨節點的管道並行性,在大型 GPU 叢集上訓練萬億參數模型。

實施模式

大型模型的张量并行实践

使用 Megatron-LM 將每一層的權重矩陣分片到一個 NVLink 連接節點中的 8 個 GPU 上,從而訓練 175B 參數模型。

通过使用 Megatron-LM 将每一层的权重矩阵分片到一个 NVLink 连接节点中的 8 个 GPU 来训练 175B 参数模型。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

大型模型的张量并行实践

在 vLLM 中使用 tensor_parallel_size=4 提供 70B 參數的聊天模型,以便權重適合四個 GPU 並即時回應。

在 vLLM 中使用 tensor_parallel_size=4 提供 70B 參數的聊天模型,以便權重適合四個 GPU 並即時回應。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

大型模型的张量并行实践

將 Transformer 注意力頭拆分到 GPU 上,以便每個裝置計算一個子集,然後連接下一層的輸出。

将 Transformer 注意力头拆分到 GPU 上,以便每个设备计算一个子集,然后连接下一层的输出。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會得到更好的結果。

大型模型的张量并行实践

結合節點內的張量平行性和跨節點的管道並行性,在大型 GPU 叢集上訓練萬億參數模型。

將節點內的張量並行性和跨節點的管道並行性相結合,在大型 GPU 叢集上訓練萬億參數模型 當團隊預先定義質量閾值、為邊緣情況保留人工升級路徑並隨著時間的推移跟踪生產力增益和錯誤成本時,通常會獲得更好的結果。

風險與防護欄

!

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

!

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

!

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

實施路線圖

1

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

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

2

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

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

3

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

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

4

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

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

不斷探索