作者:nghuyong
在大模型的研發(fā)中,通常會(huì)有下面一些需求:
1.計(jì)劃訓(xùn)練一個(gè)10B的模型,想知道至少需要多大的數(shù)據(jù)?
2.收集到了1T的數(shù)據(jù),想知道能訓(xùn)練一個(gè)多大的模型?
3.老板準(zhǔn)備1個(gè)月后開發(fā)布會(huì),給的資源是100張A100,應(yīng)該用多少數(shù)據(jù)訓(xùn)多大的模型效果最好?
4.老板對(duì)現(xiàn)在10B的模型不滿意,想知道擴(kuò)大到100B模型的效果能提升到多少?
以上這些問題都可以基于Scaling Law的理論進(jìn)行回答。本文是閱讀了一系列 Scaling Law的文章后的整理和思考,包括Scaling Law的概念和推導(dǎo)以及反Scaling Law的場(chǎng)景,不當(dāng)之處,歡迎指正。
核心結(jié)論
大模型的Scaling Law是OpenAI在2020年提出的概念[1],具體如下:
對(duì)于Decoder-only的模型,計(jì)算量(Flops), 模型參數(shù)量, 數(shù)據(jù)大小(token數(shù)),三者滿足:。(推導(dǎo)見本文最后)
模型的最終性能主要與計(jì)算量,模型參數(shù)量和數(shù)據(jù)大小三者相關(guān),而與模型的具體結(jié)構(gòu)(層數(shù)/深度/寬度)基本無關(guān)。
固定模型的總參數(shù)量,調(diào)整層數(shù)/深度/寬度,不同模型的性能差距很小,大部分在2%以內(nèi)
3.對(duì)于計(jì)算量,模型參數(shù)量和數(shù)據(jù)大小,當(dāng)不受其他兩個(gè)因素制約時(shí),模型性能與每個(gè)因素都呈現(xiàn)冪律關(guān)系
4. 為了提升模型性能,模型參數(shù)量和數(shù)據(jù)大小需要同步放大,但模型和數(shù)據(jù)分別放大的比例還存在爭(zhēng)議。
5. Scaling Law不僅適用于語言模型,還適用于其他模態(tài)以及跨模態(tài)的任務(wù)[4]:
這里橫軸單位為PF-days: 如果每秒鐘可進(jìn)行次運(yùn)算,就是1 peta flops,那么一天的運(yùn)算就是這個(gè)算力消耗被稱為1個(gè)petaflop/s-day。
核心公式
(?)=?∞+(?0?)?
第一項(xiàng)是指無法通過增加模型規(guī)模來減少的損失,可以認(rèn)為是數(shù)據(jù)自身的熵(例如數(shù)據(jù)中的噪音)
第二項(xiàng)是指能通過增加計(jì)算量來減少的損失,可以認(rèn)為是模型擬合的分布與實(shí)際分布之間的差。根據(jù)公式,增大(例如計(jì)算量),模型整體loss下降,模型性能提升;伴隨趨向于無窮大,模型能擬合數(shù)據(jù)的真實(shí)分布,讓第二項(xiàng)逼近0,整體趨向于
大模型中的scaling law
下圖是GPT4報(bào)告[5]中的Scaling Law曲線,計(jì)算量和模型性能滿足冪律關(guān)系
橫軸是歸一化之后的計(jì)算量,假設(shè)GPT4的計(jì)算量為1?;?0,000倍小的計(jì)算規(guī)模,就能預(yù)測(cè)最終GPT4的性能。
縱軸是"Bits for words", 這也是交叉熵的一個(gè)單位。在計(jì)算交叉熵時(shí),如果使用以 2 為底的對(duì)數(shù),交叉熵的單位就是 "bits per word",與信息論中的比特(bit)概念相符。所以這個(gè)值越低,說明模型的性能越好。
Baichuan2
下圖是Baichuan2[6]技術(shù)報(bào)告中的Scaling Law曲線?;?0M到3B的模型在1T數(shù)據(jù)上訓(xùn)練的性能,可預(yù)測(cè)出最后7B模型和13B模型在2.6T數(shù)據(jù)上的性能
MindLLM
下圖是MindLLM[7]技術(shù)報(bào)告中的Scaling Law曲線。基于10M到500M的模型在10B數(shù)據(jù)上訓(xùn)練的性能,預(yù)測(cè)出最后3B模型在500B數(shù)據(jù)上的性能。
Scaling Law實(shí)操: 計(jì)算效率最優(yōu)
根據(jù)冪律定律,模型的參數(shù)固定,無限堆數(shù)據(jù)并不能無限提升模型的性能,模型最終性能會(huì)慢慢趨向一個(gè)固定的值
如圖所示,如果模型的參數(shù)量為(圖中紫色的線),在數(shù)量達(dá)到,模型基本收斂。所以在數(shù)據(jù)量達(dá)到后,繼續(xù)增加數(shù)據(jù)產(chǎn)生的計(jì)算量,沒有同樣計(jì)算量下提升模型參數(shù)量帶來的收益大(計(jì)算效率更優(yōu))。根據(jù),可以進(jìn)一步轉(zhuǎn)換成模型參數(shù)與計(jì)算量的關(guān)系,即: 模型參數(shù)為,在計(jì)算量為Flops,即PF-days時(shí)基本收斂。也就是右圖中紫色線的拐點(diǎn)。
按照上面的思路,下面進(jìn)行Scaling Law的實(shí)操。
首先準(zhǔn)備充足的數(shù)據(jù)(例如1T),設(shè)計(jì)不同模型參數(shù)量的小模型(例如0.001B - 1B),獨(dú)立訓(xùn)練每個(gè)模型,每個(gè)模型都訓(xùn)練到基本收斂(假設(shè)數(shù)據(jù)量充足)。根據(jù)訓(xùn)練中不同模型的參數(shù)和數(shù)據(jù)量的組合,收集計(jì)算量與模型性能的關(guān)系。然后可以進(jìn)一步獲得計(jì)算效率最優(yōu)時(shí),即同樣計(jì)算量下性能最好的模型規(guī)模和數(shù)據(jù)大小的組合,模型大小與計(jì)算量的關(guān)系,以及數(shù)據(jù)大小與計(jì)算量的關(guān)系。
如圖所示,根據(jù)左圖可以看到計(jì)算量與模型性能呈現(xiàn)冪律關(guān)系(可以認(rèn)為數(shù)據(jù)和模型都不受限制),根據(jù)中圖和右圖,可以發(fā)現(xiàn),,即計(jì)算效率最優(yōu)時(shí),模型的參數(shù)與計(jì)算量的冪次成線性關(guān)系,數(shù)據(jù)量的大小也與計(jì)算量的冪次成線性關(guān)系。
根據(jù),可以推算出,但是,分別是多少存在分歧。
OpenAI[1]認(rèn)為模型規(guī)模更重要,即,而DeepMind在Chinchilla工作[2]和Google在PaLM工作[3]中都驗(yàn)證了,即模型和數(shù)據(jù)同等重要。
所以假定計(jì)算量整體放大10倍,OpenAI認(rèn)為模型參數(shù)更重要,模型應(yīng)放大100.73(5.32)倍,數(shù)據(jù)放大100.27(1.86)倍;后來DeepMind和Google認(rèn)為模型參數(shù)量與數(shù)據(jù)同等重要,兩者都應(yīng)該分別放大100.5(3.16)倍。
例如在PaLM的實(shí)驗(yàn)中,計(jì)算量從 放大10倍到, 模型參數(shù)也提升了3.2倍,3.35B->10.7B。具體最好在自己的數(shù)據(jù)上做實(shí)驗(yàn)來獲得你場(chǎng)景下的和
LLaMA: 反Scaling Law的大模型
假設(shè)遵循計(jì)算效率最優(yōu)來研發(fā)LLM,那么根據(jù)Scaling Law,給定模型大小,可以推算出最優(yōu)的計(jì)算量,進(jìn)一步根據(jù)最優(yōu)計(jì)算量就能推算出需要的token數(shù)量,然后訓(xùn)練就行。
但是計(jì)算效率最優(yōu)這個(gè)觀點(diǎn)是針對(duì)訓(xùn)練階段而言的,并不是推理階段,實(shí)際應(yīng)用中推理階段效率更實(shí)用。
Meta在LLaMA[8]的觀點(diǎn)是:給定模型的目標(biāo)性能,并不需要用最優(yōu)的計(jì)算效率在最快時(shí)間訓(xùn)練好模型,而應(yīng)該在更大規(guī)模的數(shù)據(jù)上,訓(xùn)練一個(gè)相對(duì)更小模型,這樣的模型在推理階段的成本更低,盡管訓(xùn)練階段的效率不是最優(yōu)的(同樣的算力其實(shí)能獲得更優(yōu)的模型,但是模型尺寸也會(huì)更大)。根據(jù)Scaling Law,10B模型只需要200B的數(shù)據(jù),但是作者發(fā)現(xiàn)7B的模型性能在1T的數(shù)據(jù)后還能繼續(xù)提升。
所以LLaMA工作的重點(diǎn)是訓(xùn)練一系列語言模型,通過使用更多的數(shù)據(jù),讓模型在有限推理資源下有最佳的性能。
具體而言,確定模型尺寸后,Scaling Law給到的只是最優(yōu)的數(shù)據(jù)量,或者說是一個(gè)至少的數(shù)據(jù)量,實(shí)際在訓(xùn)練中觀察在各個(gè)指標(biāo)上的性能表現(xiàn),只要還在繼續(xù)增長(zhǎng),就可以持續(xù)增加訓(xùn)練數(shù)據(jù)。
審核編輯:黃飛
-
GPT
+關(guān)注
關(guān)注
0文章
354瀏覽量
15402 -
OpenAI
+關(guān)注
關(guān)注
9文章
1092瀏覽量
6541 -
大模型
+關(guān)注
關(guān)注
2文章
2465瀏覽量
2762
原文標(biāo)題:大模型中的Scaling Law計(jì)算方法
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論