大模型調參技巧—如何實現超參的跨模型尺度遷移 原創
本篇介紹超參數(學習率)跨模型尺度的遷移規律。
眾所周知,完整訓練一次大型LLM的成本是昂貴的,這就決定了我們不可能像以前一樣直接在大型LLM上反復測試超參數。
一個很自然的想法是希望可以在同結構的小模型上仔細搜索超參數,找到最優組合后直接遷移到大模型上。
盡管這個想法很樸素,但要實現它并不簡單,它需要我們了解常見的超參數與模型尺度之間的縮放規律,本次介紹的文Maximal Update Parametrization,簡稱“muP”,正是這個想法的一個實踐。具體出自論文《Tensor Programs V: Tuning Large Neural Networks via Zero-Shot Hyperparameter Transfer》。
先說結論,muP主要研究超參數跨模型尺度的遷移規律。這里有幾個關鍵詞:
1、超參數,目前主要指學習率;
2、模型尺度,目前主要是模型寬度;
3、這里的核心是“遷移”。
請注意,muP并不研究什么是最優的超參數,只研究最優超參數隨著模型尺度的變化規律,所以我們需要在某個小模型上搜索最優的超參數組合,然后遷移到大模型上,這就是muP的使用場景和使用方法。
推導muP的原理是讓模型的前向傳播、反向傳播和損失增量都不隨模型尺度的變化而發生明顯變化:
1、具體做法是分析初始化的數量級,然后認為結論可以代表后續優化的規律;
2、說白了就是假設做好初始化,后面就會自動沿著正確的軌跡走
具體方法
論文提出了一種名為μTransfer的方法來解決大型神經網絡的超參數(HP)調整問題。這個方法的核心思想是利用最大更新參數化(Maximal Update Parametrization,簡稱μP)的特性,該特性表明在模型大小變化時,許多最優的HP保持穩定。
具體來說,μTransfer的解決方案包括以下幾個步驟:
1. 目標模型的μP參數化:首先,將目標大型模型(即最終希望調整的模型)按照μP進行參數化。這確保了模型在訓練過程中,各層的更新幅度保持一致,從而在模型寬度增加時,HPs保持穩定。
2. 在小型代理模型上調整HP:然后,研究者在一個小版本的代理模型上進行HP調整。這個小型模型在寬度和/或深度上小于目標模型,但采用相同的μP參數化。
3. 零成本轉移(Zero-Shot Transfer):一旦在小型代理模型上找到了接近最優的HPs,這些HPs可以直接轉移到全尺寸的目標模型上,而無需在目標模型上進行額外的調整。這種轉移是基于μP理論,即在無限寬度極限下,模型的HPs趨于穩定。
4. 驗證和測試:最后,研究者在目標模型上驗證這些轉移過來的HPs,并與直接在目標模型上進行調整的結果進行比較,以確保性能達到預期。
比較關鍵的改進點是Normalization和殘差的影響,尤其是Normalization,它使得不依賴特殊的初始化就可以穩定前向傳播,帶來了更大的自由度和可能性。
具體示例
論文比較難理解,下面基于蘇神的文舉一個前向傳播的例子,更詳細的推理推薦直接去看蘇神的文章。(可以點擊后面原文鏈接直接跳轉)
首先依然用RMS(Root Mean Square)來作為矩陣尺度的指標
那么muP就是想研究超參數關于d的變化規律。
考慮線性層表示為
其中
我們的目的是為了讓遷移時穩定,即初始化階段X的RMS跟Y的RMS大致相等,那么W的初始化
Kaiming初始化跟LeCun初始化相比,只是方差相差一個(跟模型尺度無關的)常數2,可以證明其他激活函數的結果也類似。因此可以得到結論
這也說明了“激活函數的影響是模型尺度無關的”。
這里直接給出最終所有優化器下的結論。
這里的W指的是除Win,Wout外的所有參數,還有要強調的是,這里的關系都是“正比于”而不是“等于”。
實驗驗證
論文在Transformer、ResNet、GPT等模型上均進行了實驗,我們可以主要來看看GPT3上的實驗。
這塊作者在GPT-3的一個小型代理模型(約40M參數)上確定了超參數,然后將這些參數轉移到完整的6.7B參數模型。實驗結果顯示,μTransfer模型的性能優于原始GPT-3模型,并且與兩倍大的13B模型相當。
總結
基于muP可以在小模型上以相對較小的成本仔細搜索超參數(這里主要是學習率和初始化),然后遷移到大模型上,降低大模型的煉丹成本。當然μTransfer在實際應用中還有很多的潛在改進方向,比如如自動化代理模型選擇、跨平臺實現等。
文轉載自公眾號瓦力算法學研所,作者:喜歡瓦力的卷卷
原文鏈接:??https://mp.weixin.qq.com/s/6OZBR1IKi8mW93jrXNjZlA??
