大模型所謂的參數是什么?大模型為什么需要訓練?大模型訓練到底干了什么? 原創
“ 大模型的本質是機器學習,機器學習的本質就是一種數學模型。”
我們經常能聽到這樣的說法,某某大模型有多少參數,某某大模型參數量又提升了,這里所說的參數到底是什么?
我們知道大模型是訓練出來的,那么哪些訓練數據都跑哪去了,大模型訓練的過程中都干了什么? 為什么大模型需要訓練?
01、大模型的參數到底是什么?
我們知道大模型的發展從剛開始的幾百個參數,到現在的上千億個參數,比如GPT-3就有一千七百多億個參數。
而隨著參數數量的提升,大模型的功能也變得越來越強大,特別是現在GPT-4o的出現,大模型已經可以和人類進行正常的語音和視頻交流。
但很多人都不知道這個參數到底是個什么東西?
首先,我們要明白一件事,不要把訓練數據當作參數;訓練數據是訓練數據,參數是參數。
大模型是基于機器學習模型,通過大量數據訓練出來的模型,所以叫做大模型。
而現在主流的大模型都是基于神經網絡模型構建的模型,不論是基于卷積神經網絡(CNN),還是循環神經網絡(RNN),亦或者是Transformer神經網絡等。
但神經網絡模型只是機器學習模型中的一個分類,其它還包括支持向量機,決策樹,回歸模型等。
而這里說的大模型的參數,是基于神經網絡模型而構建的參數。我們知道,神經網絡模型有很多層,每一層都有很多個神經元,而每一層又需要進行連接;
這就是大模型參數的由來,比如權重與偏置,就是每個神經元都有的參數。
一般情況下,大模型的參數是在網絡架構時就設定好的,參數數量一般不會發生變化;但也有例外情況,比如動態神經網絡就會對參數數量進行動態調整。
02、大模型訓練的具體過程?
我們都知道,訓練大模型需要準備大量的數據,然后對模型進行訓練。那么這個訓練的過程到底是干了什么,哪些訓練數據的作用是什么?
其實說白了,大模型訓練的本質就是調整參數。
在前面我們說了,大模型有很多個參數,現在的大模型基本上參數都是以億為單位;當然,參數的數量根據大模型的架構而有所不同。
訓練的過程其實就是把訓練數據輸入到大模型中,然后模型根據這些數據對參數進行調整的過程,以求達到一個最優解。
如果把神經網絡看作一個黑盒,那么我們輸入數據,經過神經網絡這個黑盒處理之后,再輸出我們的數據。
如下圖所示,就是一個簡單的神經網絡模型圖:
神經網絡單層模型
類似于人體有無數個神經元組成,而從數學理論來說,更多的神經元與更復雜的神經網絡架構,就能夠進行更加復雜的數據處理。
所以,就有了多層的神經網絡架構,如下圖所示,神經網絡由多個神經層組成。如GPT-3就有96層。
多層神經網絡
這就是神經網絡的模型架構。
訓練開始時,需要把訓練數據輸入到模型中,具體的輸入方式這里暫不討論,我們只需要知道訓練數據需要輸入到神經網絡中即可。
因為模型有多個神經層,所以訓練數據從輸入層進入大模型之后;需要在模型的多個神經層之間進行流轉,而這個過程術語叫做正向傳播。
數據從輸入層,一層一層的傳播到輸出層,然后輸出結果;但由于大模型剛開始就像一個小學生,所以它輸出的結果往往不盡人意。
所以,為了解決這個問題,大模型的輸出結果需要跟實際結果進行匹配,術語叫做計算損失差,損失差越大說明輸出結果越差。
而有了損失差,說明當前的模型是有問題的;所以就需要對模型進行調整,這就是所謂的反向傳播。
意思就是,模型把輸出的結果再次輸入到模型中,然后模型根據這個結果,使用某種算法對模型中的參數進行調整,比如不同神經元的權重等。
而調整參數的這個東西叫做優化器。
模型訓練流程
然后,模型根據這個原理,使用訓練數據一次一次的輸入,然后一次一次的對參數進行調整。最后達到一個最優解,也就是訓練好的大模型。
這也是為什么大模型要經過很多輪的訓練,才能達到比較滿意的效果。
當然,大模型的神經層并不是越多越好,訓練數據也不是越多越好,有時候更多的參數和訓練數據訓練出來的結果,可能還沒有少一點的效果好。
而這也有專門的評估函數對訓練結果進行評估。
以上就是大模型訓練的原理。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/wS1nsrVa2Yhfqb7p7jj3Wg??
