探討大模型預訓練與微調之間的相互作用
今天給大家帶來一篇探討大模型預訓練與微調之間關系的文章,主要通過微調預訓練階段各個checkpoint,來發現預訓練本身或對下游微調有哪些影響。
- 大模型在預訓練過程中的性能如何變化?
- 更多步數的預訓練對下游微調有何影響?
- 大模型微調學到了什么,又忘記了什么?
Paper: https://arxiv.org/abs/2408.06663
由于目前開源模型中,開放全量checkpoints的模型較少,并且實驗成本較大,以下分析結果主要基于OLMo-1B模型(同時訓練細節、預訓練數據、微調數據都公開了)進行實驗,微調數據詳細如下表所示,
大模型在預訓練過程中的性能如何變化?
針對大模型在預訓練過程中的checkpoints,進行下游任務zero-shot或few-shot測試,如上圖可以發現,大模型隨著訓練步數的增加,并不是所有任務數據的效果會隨之提高,部分任務數據在整個預訓練過程中,基本沒有變化。效果提高的任務數據,也主要在訓練前期提高較多,后期趨于平穩。
模型在預訓練過程中,更多在學習知識,即使學習更多,可能也不會使用。
更多步數的預訓練對下游微調有何影響?
如上圖所示,可以發現,在預訓練時表現較好的任務數據,在微調過程中并不會得到改善,即在預訓練過程中已經獲取了知識信息,微調則沒有幫助。
但在預訓練階段表現不好的任務數據,微調模型的每個checkpoint都會有明顯的改善,一般微調收益先增加再減少。
那么,如果模型在某一任務上一定需要下游微調時,可能早停的checkpoint效果更優。
大模型微調學到了什么,又忘記了什么?
從任務格式、任務遷移和領域知識三個維度來分析微調學到了哪些內容。
- 任務格式:利用三種任務格式(默認格式、IO格式、Intruct格式)驗證大模型在不同checkpoint上的性能。發現:在預訓練早期,微調格式與預訓練格式一致可以獲取更好的效果,隨著預訓練步數增加,大模型對格式的敏感性會隨之下降,可以變的更加靈活。微調階段可以教會大模型去適應任務格式。
- 任務遷移:很多研究已經發現模型微調會導致某些任務的改進,但另一些任務的退化。通過實驗發現,在生成任務上微調,在其他生成任務和分類任務上驗證基本無下降;在分類任務上微調,在其他分類任務上無下降,但在分類任務上有明顯下降。
- 領域知識:模型在學習其他能力之后,是否一定會遺忘微調之前擁有的領域知識。如下圖所示,對于不同任務的結論不一致,所有NLI數據在MNLI上微調后,都會得到提高;但在Paws微調后,其他釋義檢測數據集均有下降。意味著遺忘和學習都發生。
本文轉載自NLP工作站,作者:劉聰NLP
贊
收藏
回復
分享
微博
QQ
微信
舉報

回復
相關推薦