預熱訓練 是什麼?

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 往往更常被用來降風險。