epoch是一個(gè)重要的深度學(xué)習(xí)概念,它指的是模型訓(xùn)練過(guò)程中完成的一次全體訓(xùn)練樣本的全部訓(xùn)練迭代。在傳統(tǒng)的深度學(xué)習(xí)模型訓(xùn)練中,epoch的設(shè)置可以類似于傳統(tǒng)機(jī)器學(xué)習(xí)模型訓(xùn)練的迭代次數(shù),一般認(rèn)為越多的epoch會(huì)讓模型擬合得越好。 然而,在LLM時(shí)代,很多模型的epoch只有1次或者幾次。例如,2022年谷歌的PaLM模型,其訓(xùn)練的epoch數(shù)量只有1。而MetaAI訓(xùn)練的LLaMA模型,在不同數(shù)據(jù)集上訓(xùn)練的epoch設(shè)置都是1-2。這似乎與我們之前理解的模型訓(xùn)練充分有不一致。那么,為什么這些大語(yǔ)言模型的epoch次數(shù)都很少。如果我們自己訓(xùn)練大語(yǔ)言模型,那么epoch次數(shù)設(shè)置為1是否足夠,我們是否需要更多的訓(xùn)練?上周,新加坡國(guó)立大學(xué)的研究人員發(fā)布了一篇全新的論文《To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis》,研究了大語(yǔ)言模型的epoch次數(shù)設(shè)置問(wèn)題。
為什么要考慮在重復(fù)的數(shù)據(jù)集上做多次訓(xùn)練?在此前的研究中,大家發(fā)現(xiàn)大語(yǔ)言模型的規(guī)模和訓(xùn)練數(shù)據(jù)集中tokens的數(shù)量對(duì)模型的性能有很大的影響。大模型擴(kuò)展定律都認(rèn)為模型的規(guī)模與訓(xùn)練數(shù)據(jù)的規(guī)模必須同時(shí)擴(kuò)大才能讓模型產(chǎn)生更好的性能。但是,tokens數(shù)量似乎并不是很足夠,如下圖所示是作者研究的模型參數(shù)規(guī)模增長(zhǎng)和目前互聯(lián)網(wǎng)是可用的數(shù)據(jù)集tokens數(shù)量增長(zhǎng)情況: 在這幅圖中,藍(lán)色的虛線是互聯(lián)網(wǎng)上數(shù)據(jù)集中tokens數(shù)量預(yù)估結(jié)果,高質(zhì)量文本中tokens數(shù)量每年增長(zhǎng)只有4%-5%,與世界經(jīng)濟(jì)增長(zhǎng)率差不多,但是顯著慢于模型規(guī)模的增長(zhǎng)。例如,MetaAI訓(xùn)練的LLaMA-65B模型用了1.4萬(wàn)億tokens,而2023年全球的tokens估計(jì)只有9萬(wàn)億!按照目前模型規(guī)模的發(fā)展情況,在2023年-2027年幾年的時(shí)間里,我們的模型將把全球所有數(shù)據(jù)集的tokens都訓(xùn)練完成,此后,我們很可能陷入缺少tokens訓(xùn)練的地步,這被作者稱為tokens危機(jī)。 這就很自然的讓大家想到,我們是否可以通過(guò)增加訓(xùn)練的epochs來(lái)做重復(fù)的訓(xùn)練,以提高模型的效果?在如Vision Transformers這樣的模型中,模型訓(xùn)練的epochs高達(dá)300次,而大語(yǔ)言模型的訓(xùn)練epochs通常都是1-2次,多的也都是個(gè)位數(shù)。2022年,Hoffmann的論文中提出用重復(fù)的tokens訓(xùn)練大語(yǔ)言模型會(huì)讓模型降低性能,而Taylor在訓(xùn)練Galactica模型時(shí)候發(fā)現(xiàn)epochs次數(shù)達(dá)到4次也可以提升模型效果。顯然,在重復(fù)數(shù)據(jù)集上訓(xùn)練多次對(duì)模型的影響目前還沒(méi)有一個(gè)相對(duì)完善的研究。但是這個(gè)問(wèn)題很重要! 因此,新加坡國(guó)立大學(xué)的研究人員做了這項(xiàng)研究,系統(tǒng)性分析了大語(yǔ)言模型epochs的設(shè)置影響,從3個(gè)方面得出了11個(gè)結(jié)論!本文將主要總結(jié)一下這些結(jié)論。 作者使用了開(kāi)源的數(shù)據(jù)集和模型做了很多測(cè)試,對(duì)于實(shí)驗(yàn)設(shè)置我們不再描述。 預(yù)訓(xùn)練數(shù)據(jù)集重復(fù)的影響是什么?1、模型參數(shù)規(guī)模與tokens數(shù)量需要匹配首先是模型參數(shù)規(guī)模的增長(zhǎng)與模型需要的tokens數(shù)量基本是呈線性的。 這意味如果你要充分訓(xùn)練一個(gè)LLM,需要根據(jù)它的參數(shù)數(shù)量來(lái)收集足夠的tokens。 2、多輪epoch的訓(xùn)練會(huì)降低模型性能作者分別使用C4數(shù)據(jù)集的子集,然后只是用了其中一部分?jǐn)?shù)據(jù)集,并通過(guò)設(shè)置多次epochs來(lái)讓模型總的訓(xùn)練過(guò)的tokens差不多水平,觀察模型的性能。 如下圖所示,可以看到,數(shù)據(jù)集重復(fù)的次數(shù)越多,模型的性能越差: 此外,如果tokens數(shù)量不夠,模型參數(shù)規(guī)模越大,越容易出現(xiàn)過(guò)擬合的現(xiàn)象! 盡管重復(fù)數(shù)據(jù)上的訓(xùn)練會(huì)降低預(yù)訓(xùn)練模型的效果,但是這種方式對(duì)于下游任務(wù)的影響也沒(méi)有人探測(cè)過(guò)。因此,作者也繼續(xù)做了這方面的研究,得到的結(jié)論是在下游任務(wù)上也會(huì)出現(xiàn),即如果預(yù)訓(xùn)練模型在重復(fù)數(shù)據(jù)上進(jìn)行,盡管訓(xùn)練的總的tokens數(shù)量可能一致,但是,其下游任務(wù)的效果也是更差! 影響多次Epochs訓(xùn)練效果下降的原因是什么?3、更大規(guī)模的數(shù)據(jù)集會(huì)緩解重復(fù)epochs對(duì)模型性能下降的影響在這個(gè)實(shí)驗(yàn)中,作者將重復(fù)的次數(shù)固定,然后看模型在不同規(guī)模數(shù)據(jù)集上重復(fù)訓(xùn)練的性能影響。如下圖所示: 可以看到,當(dāng)在個(gè)tokens和個(gè)tokens上重復(fù)訓(xùn)練次之后發(fā)現(xiàn),前者更容易出現(xiàn)過(guò)擬合,而tokens的數(shù)據(jù)集上重復(fù)訓(xùn)練,模型性能下降不明顯。 4、提高數(shù)據(jù)集的質(zhì)量也無(wú)法挽救重復(fù)訓(xùn)練帶來(lái)的過(guò)擬合Taylor在訓(xùn)練Galactica模型時(shí)候認(rèn)為他之所以用4epochs能提高訓(xùn)練效果可能是因?yàn)樗臄?shù)據(jù)集質(zhì)量更好。然而,本文的作者發(fā)現(xiàn),相對(duì)更高質(zhì)量的數(shù)據(jù)集并不能降低重復(fù)訓(xùn)練帶來(lái)的影響。 作者用相同的重復(fù)策略在C4數(shù)據(jù)集和Wikipedia數(shù)據(jù)集上分別訓(xùn)練模型,發(fā)現(xiàn)二者都會(huì)因?yàn)橹貜?fù)訓(xùn)練帶來(lái)模型性能的下降。這里的Wikipedia數(shù)據(jù)集質(zhì)量相對(duì)C4更好一點(diǎn)。說(shuō)明相對(duì)提高數(shù)據(jù)集質(zhì)量可能不會(huì)影響重復(fù)訓(xùn)練的負(fù)面效應(yīng)。 5、參數(shù)數(shù)量和FLOPs在重復(fù)訓(xùn)練上的影響模型規(guī)模的增長(zhǎng)其實(shí)表現(xiàn)在2個(gè)方面,一個(gè)是模型參數(shù),一個(gè)是模型所需要的計(jì)算量。模型參數(shù)相同的情況下,采用不同的模型架構(gòu)所需要的FLOPs是不同的。作者對(duì)比了MoE架構(gòu),并采用ParamShare方法降低相同參數(shù)模型的FLOPs。 經(jīng)過(guò)測(cè)試發(fā)現(xiàn),F(xiàn)LOPs較大的模型性能會(huì)更好一點(diǎn),但是依然無(wú)法有效降低重復(fù)訓(xùn)練帶來(lái)的模型損失。 6、小計(jì)算量模型的過(guò)擬合趨勢(shì)與大計(jì)算量的差不多這是一個(gè)有趣的發(fā)現(xiàn),盡管在前面的實(shí)驗(yàn)中,相同參數(shù)規(guī)模不同計(jì)算量的模型都會(huì)受到重復(fù)數(shù)據(jù)集訓(xùn)練的影響。但是二者在模型性能表現(xiàn)的趨勢(shì)上類似。 這意味著我們可以利用較低計(jì)算量的模型預(yù)估大模型的訓(xùn)練結(jié)果。在大語(yǔ)言模型的訓(xùn)練中,訓(xùn)練成本很高。采用類似的模型,但是更低的計(jì)算量來(lái)預(yù)估模型的表現(xiàn)將十分有價(jià)值! 7、多樣的訓(xùn)練目標(biāo)可以減輕多Epoch下降嗎?目前大語(yǔ)言模型的訓(xùn)練目標(biāo)有很多,例如預(yù)測(cè)下一個(gè)單詞是神什么的生成式目標(biāo),也有把單詞masked之后用來(lái)判斷是什么單詞的判別式目標(biāo)。如果語(yǔ)言模型的訓(xùn)練目標(biāo)多樣化,那么實(shí)際上更加可能受到多epoch帶來(lái)的性能損失。 例如,UL2這種模型就不適合多Epoch的訓(xùn)練,MLM這種模型受到的影響反而更小。 正則化可以降低多epochs的影響嗎正則技術(shù),如dropout、droppath、weight decay等都是常用的防止過(guò)擬合的技術(shù)。而多Epochs的負(fù)面影響也都是過(guò)擬合。因此,作者研究了這些正則技術(shù)是否可以降低多epochs的影響。 8、Dropout是一個(gè)被大語(yǔ)言模型忽視的正則技術(shù),雖然慢,但是可以降低多epochs的影響在目前超過(guò)100億參數(shù)規(guī)模的大語(yǔ)言模型中,如GPT-3、PaLM、LLaMA等,都沒(méi)有使用dropout(可能是因?yàn)樘耍?。而前面說(shuō)的Galactica訓(xùn)練使用了,這是Galactica能夠訓(xùn)練4Epochs提升性能的最重要的原因。 9、在訓(xùn)練過(guò)程中逐漸使用dropout是有效的策略在前面的討論中,作者已經(jīng)發(fā)現(xiàn)dropout可以降低多epochs的影響,但是dropout會(huì)降低模型的性能。因此,作者考慮不在全部訓(xùn)練中使用dropout,而是逐漸引入。 最終發(fā)現(xiàn),如果前期訓(xùn)練不用dropout,在后續(xù)的迭代中使用dropout也是有效的! 10、dropout對(duì)不同規(guī)模模型的影響不同盡管前面已經(jīng)證明dropout使用可以降低多epochs的影響,但是在不同規(guī)模模型下是不同的。對(duì)于規(guī)模較大的模型,dropout不能有效降低多epochs帶來(lái)的壞處! 11、通過(guò)MoE掃描確定稠密模型的最佳超參數(shù)最后一個(gè)結(jié)論其實(shí)與epoch關(guān)系不大,作者強(qiáng)調(diào)的是MoE的模型表現(xiàn)與大模型真正的訓(xùn)練有類似的趨勢(shì),因此用MoE去提前預(yù)估大模型的性能,做參數(shù)調(diào)優(yōu)是一個(gè)非常好的思路。 多epochs訓(xùn)練對(duì)大語(yǔ)言模型性能影響的總結(jié)根據(jù)前面的實(shí)驗(yàn)我們知道,如果在tokens數(shù)量一定的數(shù)據(jù)集上做多epochs的模型訓(xùn)練,會(huì)影響模型的性能,降低模型的效果。這在預(yù)訓(xùn)練和下游任務(wù)都會(huì)產(chǎn)生影響。但是,隨著模型的發(fā)展,高質(zhì)量數(shù)據(jù)集的tokens數(shù)將很快用完。而采用正則技術(shù)雖然會(huì)影響模型訓(xùn)練效率,但是會(huì)降低這種影響。 所有的一切表明,在不久的將來(lái),我們會(huì)面臨tokens訓(xùn)練完的危機(jī),這時(shí)候多epochs顯然不是好的方向,這意味著我們應(yīng)該尋找新的大語(yǔ)言模型的方向,或者說(shuō)可能很快我們也會(huì)達(dá)到現(xiàn)有LLM的天花板! |
|