概述
將模型的訓練狀態保存為片段(分片)的技術,以便可以保存和重新加載大型模型,而不會受到內存或磁碟限制的影響,因此崩潰的運行可以準確地從中斷的地方繼續。對於任何在多個 GPU 上運行數天或數週的訓練作業來說都是至關重要的。
檢查點分片和可恢復訓練是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。
深入探討
訓練檢查點是恢復所需的所有內容的快照:模型權重、優化器狀態、學習率計劃、資料載入器的位置和隨機數產生器種子。對於大型模型,此快照可能有數百 GB,對於單一檔案或單一電腦的記憶體來說太大了。檢查點分片將該快照拆分為多個檔案和多個等級,因此每個 GPU 僅並行寫入自己的切片。然後,可恢復訓練會重新載入這些分片並精確地恢復完整狀態。如果沒有它,在第 200 小時崩潰的多周運行將不得不從頭開始。 PyTorch 分散式檢查點、DeepSpeed 和 Hugging Face Hub 的分片安全張量格式等框架可以實現此例程。
技術洞察
分片之所以有效,是因為分散式訓練已經跨等級劃分了權重和優化器狀態(透過資料、張量或零並行)。每個等級僅序列化其分區,通常序列化為安全張量之類的格式,允許延遲、記憶體映射載入。索引檔案將參數名稱對應到分片檔案。為了確定性地恢復,系統還保留 RNG 狀態、優化器步數和確切的資料載入器偏移量,因此重新運行會重現相同的批次序列。
掌握檢查點分片和可恢復訓練
將模型的訓練狀態保存為片段(分片)的技術,以便可以保存和重新加載大型模型,而不會受到內存或磁碟限制的影響,因此崩潰的運行可以準確地從中斷的地方繼續。對於任何在多個 GPU 上運行數天或數週的訓練作業來說都是至關重要的。檢查點分片和可恢復訓練是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將檢查點分片和可恢復訓練視為一種操作模型,而不是單一功能:定義所需的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。
在實踐中,使用檢查點分片和可恢復訓練的強大團隊根據可靠性和成本優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。
多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。
戰略影響
多年來,架構決策決定著效能和營運成本。
多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
更好的工程選擇可以減少生產中的可靠性事故。
更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
現實世界的實施
前沿模型運行在數千個 GPU 上,每隔幾百步自動保存分片檢查點,因此單一失敗的節點只需要幾分鐘,而不是幾天。
Hugging Face 將大型開放式模型分發為多個 safetensors 分片和一個 index.json,以便用戶可以逐一下載和載入它。
研究人員恢復中斷的微調,恢復精確的優化器動力、步數和資料載入器位置以無縫繼續。
在廉價的可搶佔式雲端 GPU 上進行現貨實例訓練,其中頻繁的分片檢查點使作業能夠在被驅逐和重新安排的情況下倖存下來。
實施模式
檢查點分片和可恢復訓練的實踐
前沿模型運行在數千個 GPU 上,每隔幾百步自動保存分片檢查點,因此單一失敗的節點只需要幾分鐘,而不是幾天。
前沿模型運行在數千個 GPU 上,每隔幾百步自動保存分片檢查點,因此單一失敗的節點只需要幾分鐘,而不是幾天。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
檢查點分片和可恢復訓練的實踐
Hugging Face 將大型開放式模型分發為多個 safetensors 分片和一個 index.json,以便用戶可以逐一下載和載入它。
Hugging Face 將大型開放式模型分發為多個 safetensors 分片和一個 index.json,以便用戶可以逐一下載和載入它。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
檢查點分片和可恢復訓練的實踐
研究人員恢復中斷的微調,恢復精確的優化器動力、步數和資料載入器位置以無縫繼續。
研究人員恢復中斷的微調,恢復精確的優化器動力、步數和資料載入器位置,以無縫地繼續進行。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
檢查點分片和可恢復訓練的實踐
在廉價的可搶佔式雲端 GPU 上進行現貨實例訓練,其中頻繁的分片檢查點使作業能夠在被驅逐和重新安排的情況下倖存下來。
在廉價的可搶佔式雲端 GPU 上進行現貨實例訓練,其中頻繁的分片檢查點使工作能夠在被驅逐和重新安排的情況下倖存下來。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
風險與防護欄
優化一項基準測試可以隱藏更廣泛的系統弱點。
基礎設施和維護成本常常被低估。
隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。
實施路線圖
在實施之前定義延遲、品質和成本目標。
在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
在實際負載和資料條件下進行基準測試。
在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
儀器監控錯誤、漂移和使用者影響。
儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
在擴展之前準備回滾和事件回應路徑。
在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。