What is Checkpoint(檢查點)?
在訓練特定時間點保存的模型權重和訓練狀態快照,用於恢復、評估和選擇最佳效能版本。
Definition
檢查點是模型在訓練過程中特定時間點的完整狀態的序列化快照。這包括模型權重、優化器狀態(Adam 的動量和方差緩衝區)、學習率排程器狀態、當前步驟和 epoch 編號以及隨機數生成器狀態。定期保存檢查點有多種用途:崩潰恢復(在硬體故障後恢復訓練)、模型選擇(根據驗證指標選擇最佳效能版本)以及實驗管理(比較不同訓練階段的模型)。
在 LLM 微調中,檢查點通常在每個 epoch 結束時保存,並可選擇在固定步驟間隔保存。每個檢查點代表一個可以載入用於推論或進一步訓練的完整模型。由於檢查點捕獲了完整的優化器狀態,它們能夠精確恢復訓練——繼續訓練產生與不中斷訓練相同的結果。
檢查點管理在規模化時成為重要的運營問題。7B 模型的單個檢查點可能是 14-28 GB(取決於精度),包含優化器狀態時總量上升到 56-112 GB。每 500 步保存檢查點的訓練可能累積 TB 級的檢查點資料。團隊必須實施保留策略——例如,僅保留按驗證損失排名前 3 的檢查點和最近的檢查點用於崩潰恢復。
Why It Matters
沒有檢查點,訓練中的任何中斷——硬體故障、共享計算上的搶佔、意外的進程終止——意味著從頭開始。對於運行數小時或數天的 LLM 微調工作,這代表著計算和時間的巨大浪費。檢查點將訓練從全有或全無的操作轉變為可恢復的漸進過程。
除了恢復之外,基於檢查點的模型選擇是一項關鍵的品質技術。模型通常在訓練中途達到最佳驗證效能,然後才過擬合到訓練資料。透過在定期間隔保存檢查點並在驗證集上評估每個檢查點,團隊可以選擇泛化最好的檢查點,而非預設使用最終的訓練狀態。
How It Works
檢查點保存整合在訓練迴圈中。在配置的間隔——每 N 步、每個 epoch,或由驗證指標改善觸發——訓練器將模型狀態序列化到磁碟。現代訓練框架如 Hugging Face Transformers、PyTorch Lightning 和 Axolotl 都支援具有可配置策略的自動檢查點管理。
檢查點載入反轉此過程:序列化的狀態被反序列化並載入到模型和優化器物件中。對於僅推論使用,只需載入模型權重——優化器狀態可以丟棄,減少記憶體佔用。一些框架支援檢查點分片,其中大型檢查點被分割到多個檔案以進行並行 I/O,減少非常大模型的保存和載入時間。
Example Use Case
一個團隊微調 13B 模型,運行訓練 5 個 epoch 並在每個 epoch 保存檢查點。驗證損失在第 3 個 epoch 前持續改善,但在第 4 和第 5 個 epoch 因過擬合而惡化。他們選擇第 3 個 epoch 的檢查點作為生產模型,比第 5 個 epoch 模型表現好 8%。沒有檢查點功能,他們將部署過擬合的第 5 epoch 模型或被迫用不同設定重新運行訓練。
Key Takeaways
- 檢查點是模型權重和訓練狀態的序列化快照。
- 它們支援崩潰恢復、模型選擇和實驗追蹤。
- 基於檢查點的模型選擇通常比使用最終訓練狀態產生更好的結果。
- 儲存管理很重要——單個檢查點可能有數十 GB。
- 現代訓練框架自動化檢查點的保存、載入和保留策略。
How Ertas Helps
Ertas Studio 在微調 期間自動保存檢查點,讓使用者跨檢查點比較驗證指標,以選擇最佳效能的模型版本用於 GGUF 匯出和部署。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.