預熱訓練 是什麼?
Warmup — 預熱訓練 的完整解釋
預熱訓練是一種在模型訓練初期,逐步提高學習率的策略,旨在穩定訓練過程,避免初期梯度爆炸或震盪。
容易混淆
預熱訓練 vs 學習率排程 學習率排程是整段訓練中學習率怎麼變,預熱訓練只是前面那一小段特別慢慢升高的設計。
預熱訓練 vs 早停 早停是訓練到一半發現效果變差就停下來,預熱訓練是讓開頭更穩,不是提前結束訓練。
預熱訓練 vs 固定小學習率 固定小學習率是整段都慢,預熱訓練是先慢後快,之後再接正常排程。
最關鍵的區別:預熱只管開頭,目的在穩住訓練起跑。
記住這句就好
先慢慢加速,模型比較不會摔倒。
實際案例
大型語言模型微調 新模型一開始參數分布還不穩,如果直接用大學習率,loss 可能會猛跳。先做一段 warmup,常能讓訓練曲線更平順。
影像模型接續訓練 你從預訓練權重接著訓練,資料量又不大,開頭使用 warmup 可以降低一開始把原本有用的權重拉壞的機率。
算法與應用
Warmup 的核心不是多訓練,而是控制前期更新幅度。
常見做法有線性 warmup、指數 warmup,或先 warmup 再接 cosine decay。
它常和大 batch、AdamW、Transformer 一起出現,因為這些設定在訓練初期比較容易不穩。
情境判斷
Q1(直覺題): 你發現模型在前幾百步 loss 一直亂跳,先想到 warmup 合理嗎?
→ 合理,因為 warmup 就是用來穩住開頭。
Q2(判斷題): 如果你訓練的是小模型,資料也少,warmup 一定有幫助嗎?
→ 不一定。warmup 不是萬能,模型大小、資料量和學習率都會影響它值不值得加。
相關術語
常見問題
warmup 要設幾步才夠?
沒有固定答案,常見是總訓練步數的 1% 到 10%,或依模型和資料大小調整。
warmup 可以跟學習率衰減一起用嗎?
可以,而且很常一起用。前面 warmup,後面再慢慢衰減,是常見組合。
warmup 只有深度學習才需要嗎?
主要出現在深度學習,但任何需要先穩定再加速的最佳化流程,都能借用這個概念。
warmup 跟 batch size 有關嗎?
有關。batch 越大、訓練初期更新越激烈時,warmup 往往更常被用來降風險。