微调也重要:探究参数初始化、训练顺序和提前终止对结果的影响
論文標(biāo)題:
Fine-Tuning Pretrained Language Models: Weight Initializations, Data Orders, and Early Stopping
論文作者:
Jesse Dodge, Gabriel Ilharco, Roy Schwartz, Ali Farhadi, Hannaneh Hajishirzi, Noah Smith
論文鏈接:
https://arxiv.org/abs/2002.06305
當(dāng)前的預(yù)訓(xùn)練模型如BERT都分為兩個(gè)訓(xùn)練階段:預(yù)訓(xùn)練和微調(diào)。但很多人不知道的是,在微調(diào)階段,隨機(jī)種子不同會(huì)導(dǎo)致最終效果呈現(xiàn)巨大差異。
本文探究了在微調(diào)時(shí)參數(shù)初始化、訓(xùn)練順序和提前終止對(duì)最終效果的影響,發(fā)現(xiàn):參數(shù)初始化和訓(xùn)練順序在最終結(jié)果上方差巨大,而使用提前終止可以節(jié)省訓(xùn)練開銷。
這啟示我們?nèi)ミM(jìn)一步探索更健壯、穩(wěn)定的微調(diào)方式。?
預(yù)訓(xùn)練模型中的微調(diào)
當(dāng)前所有的預(yù)訓(xùn)練模型都分為兩個(gè)訓(xùn)練階段:預(yù)訓(xùn)練和微調(diào)。
預(yù)訓(xùn)練就是在大規(guī)模的無標(biāo)注文本上,用掩碼語言模型(MLM)或其他方式無監(jiān)督訓(xùn)練。
微調(diào),就是在特定任務(wù)的數(shù)據(jù)集上訓(xùn)練,比如文本分類。
然而,盡管微調(diào)使用的參數(shù)量?jī)H占總參數(shù)量的極小一部分(約0.0006%),但是,如果對(duì)參數(shù)初始化使用不同的隨機(jī)數(shù)種子,或者是用不同的數(shù)據(jù)訓(xùn)練順序,其會(huì)對(duì)結(jié)果產(chǎn)生非常大的影響——一些隨機(jī)數(shù)直接導(dǎo)致模型無法收斂,一些隨機(jī)數(shù)會(huì)取得很好的效果。
比如,下圖是在BERT上實(shí)驗(yàn)多次取得的結(jié)果,遠(yuǎn)遠(yuǎn)高于之前BERT的結(jié)果,甚至逼近更先進(jìn)的預(yù)訓(xùn)練模型。似乎微調(diào)階段會(huì)對(duì)最終效果產(chǎn)生巨大的方差。
為此,我們想知道有哪些因素會(huì)導(dǎo)致模型最終效果的巨大不確定性。
本文研究了兩個(gè)因素:(微調(diào)的)參數(shù)初始化和數(shù)據(jù)的訓(xùn)練順序。結(jié)果表明,不同的初始化和不同的訓(xùn)練順序會(huì)導(dǎo)致最后在具體任務(wù)上效果的差異。
為此,本文提出使用提前終止的策略,降低搜索最佳模型的訓(xùn)練開銷。
總的來說,本文貢獻(xiàn)如下:
本文表明,微調(diào)階段的不同的隨機(jī)數(shù)種子會(huì)導(dǎo)致最終結(jié)果的巨大差異;
權(quán)重初始化和數(shù)據(jù)的訓(xùn)練順序是影響差異的因素之一;
使用提前終止的方法可以減少訓(xùn)練開銷。
在閱讀完本文之后,可以思考:
你認(rèn)為健壯的模型應(yīng)該是怎樣的?它應(yīng)該對(duì)隨機(jī)數(shù)種子非常敏感嗎?如果大規(guī)模調(diào)整隨機(jī)數(shù)種子來找到表現(xiàn)(驗(yàn)證集上)最好的模型,這是不是一種“擬合隨機(jī)數(shù)”?
你認(rèn)為導(dǎo)致微調(diào)階段模型對(duì)隨機(jī)數(shù)種子敏感的原因有哪些?
研究方法
為了探究微調(diào)階段對(duì)最終結(jié)果的影響,本文在四個(gè)分類數(shù)據(jù)集上實(shí)驗(yàn):MRPC,RTE,CoLA和SST。前三個(gè)比較小,SST比較大。
所有的實(shí)驗(yàn)都基于預(yù)訓(xùn)練好的BERT,每次微調(diào)都運(yùn)行三個(gè)epoch。
微調(diào)的參數(shù)既包括BERT主體,即原來預(yù)訓(xùn)練的部分,也包括最后一層分類層(下稱這一層為“微調(diào)層”)。微調(diào)層都按照標(biāo)準(zhǔn)正態(tài)分布采樣初始化。
對(duì)每一個(gè)隨機(jī)數(shù),它都會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的微調(diào)層初始化和數(shù)據(jù)的訓(xùn)練順序,所以,對(duì)個(gè)不同的隨機(jī)數(shù),一共有個(gè)不同的組合。本文設(shè)。
為了量化隨機(jī)數(shù)種子對(duì)最終結(jié)果的影響,本文采取了“期望驗(yàn)證集效果”的方法。簡(jiǎn)單來說,就是多次實(shí)驗(yàn)中在驗(yàn)證集上取得最好的結(jié)果的期望值。
隨機(jī)數(shù)種子的影響
首先來看看總體隨機(jī)數(shù)種子的影響。下圖是期望效果隨著試驗(yàn)次數(shù)增加(每次實(shí)驗(yàn)的種子都不同)的變化曲線。
可以看到,隨著實(shí)驗(yàn)次數(shù)的增加,模型總的效果是不斷上升的,而且,在試驗(yàn)次數(shù)較少的時(shí)候,模型效果的方差特別大,后來漸漸變小。
綠色的線是在三輪結(jié)束后再測(cè)評(píng),橙色的是每一輪都測(cè)評(píng)一次,而藍(lán)色是每一輪測(cè)評(píng)十次。
這三者都具有相同的增長(zhǎng)模式。這就說明了不同的隨機(jī)數(shù)種子的確會(huì)導(dǎo)致迥然不同的效果差異。
權(quán)重初始化和訓(xùn)練順序的影響
隨機(jī)數(shù)種子的改變會(huì)影響什么的變化呢?
因?yàn)槟P皖A(yù)訓(xùn)練部分的參數(shù)是不變的、超參數(shù)是不變的,那么最明顯的改變就是微調(diào)層參數(shù)的初始化值,和數(shù)據(jù)訓(xùn)練的順序(因?yàn)樵谖⒄{(diào)之前一般需要shuffle,這涉及到隨機(jī)數(shù)種子)了。
我們可以猜想,這二者是導(dǎo)致模型效果差異的因素。
下面首先來看二者對(duì)結(jié)果的影響,如下圖所示。橫軸是不同的訓(xùn)練順序,縱軸是不同的參數(shù)初始化值。
可以看到,在四個(gè)數(shù)據(jù)集上,最后效果的差異都非常大,這說明不同隨機(jī)種子導(dǎo)致的不同的參數(shù)初始化、不同的訓(xùn)練順序?qū)Y(jié)果的方差是比較大的。
而且,就算是同一個(gè)種子,在不同的數(shù)據(jù)集上表現(xiàn)也有可能不一樣。
那么,有沒有一些種子,它產(chǎn)生的初始化參數(shù)和訓(xùn)練順序在所有數(shù)據(jù)集上都有比較好的效果呢?
下圖畫出了實(shí)現(xiàn)最好(壞)效果的參數(shù)初始化和訓(xùn)練順序的種子的核密度估計(jì)。
可以看到,那些表現(xiàn)好的種子分布比較集中,在四個(gè)數(shù)據(jù)集上都能實(shí)現(xiàn)比較好的效果;而表現(xiàn)差的種子在各個(gè)數(shù)據(jù)集上表現(xiàn)不一,有好有壞,而且結(jié)果的方差也更大。
這說明,的確存在一些種子,它能產(chǎn)生在四個(gè)數(shù)據(jù)集上都表現(xiàn)較好的初始化參數(shù)和訓(xùn)練順序。
使用提前終止減少訓(xùn)練開銷
那么一個(gè)問題是,一定要等到訓(xùn)練結(jié)束之后才能判斷當(dāng)前模型產(chǎn)生的結(jié)果是好是壞嗎?一個(gè)簡(jiǎn)單的想法是,我們可以提前結(jié)束那些在一開始就表現(xiàn)不好的模型。
但是,一開始表現(xiàn)不好的模型不一定就意味著它在訓(xùn)練結(jié)束的時(shí)候也表現(xiàn)不好,我們需要知道它們有多大的相關(guān)性,如下圖所示。
可以看到,大多數(shù)一開始就壞掉的模型有極大可能在最后也無法收斂,而一開始就不錯(cuò)的模型很有可能會(huì)收斂,那么,這就啟示我們一開始就停掉那些表現(xiàn)不好的模型。
那么,怎么去提前終止呢?本文給出的方法是:首先同時(shí)跑個(gè)模型,然后訓(xùn)練到總體的的時(shí)候(比如),分別評(píng)估這個(gè)模型的效果,保留其中個(gè)最好的,丟掉其他的。
這個(gè)算法的總體運(yùn)行開銷是,是訓(xùn)練一個(gè)完整模型的開銷,其相對(duì)完整訓(xùn)練所有模型的開銷是。
實(shí)驗(yàn)表明,在同樣的計(jì)算資源預(yù)算下,使用提前終止方法可以有效提高最好模型的結(jié)果,或者說提高了訓(xùn)練找到最好模型的效率。
小結(jié)
本文從一個(gè)預(yù)訓(xùn)練模型普遍存在的現(xiàn)象出發(fā)——微調(diào)階段產(chǎn)生的結(jié)果方差很大,研究預(yù)訓(xùn)練模型BERT對(duì)隨機(jī)數(shù)種子的敏感程度。
大量實(shí)驗(yàn)表明,預(yù)訓(xùn)練模型,至少BERT的最終結(jié)果非常容易受到隨機(jī)數(shù)種子的影響。
而隨機(jī)數(shù)種子影響最明顯的就是微調(diào)層的參數(shù)初始化和數(shù)據(jù)的訓(xùn)練數(shù)據(jù),因此,參數(shù)初始化和訓(xùn)練順序是影響模型最終結(jié)果比較重要的因素。
本文還提出了一種簡(jiǎn)單的提前終止的方法,用于減少無謂的訓(xùn)練開銷,更快尋找最佳模型(隨機(jī)數(shù)種子)。
思考討論
你認(rèn)為健壯的模型應(yīng)該是怎樣的?它應(yīng)該對(duì)隨機(jī)數(shù)種子非常敏感嗎?如果大規(guī)模調(diào)整隨機(jī)數(shù)種子來找到表現(xiàn)(驗(yàn)證集上)最好的模型,這是不是一種“擬合隨機(jī)數(shù)”?見仁見智。
筆者認(rèn)為健壯的模型不應(yīng)該是對(duì)隨機(jī)數(shù)種子如此敏感的,單從本文的論述和方法上講,有“擬合隨機(jī)數(shù)”的嫌疑,或者說BERT在健壯性上是有缺陷的。
你認(rèn)為導(dǎo)致微調(diào)階段模型對(duì)隨機(jī)數(shù)種子敏感的原因有哪些?
筆者認(rèn)為,可以把預(yù)訓(xùn)練想象成一個(gè)搭積木的過程,這個(gè)過程就是把積木搭得比較高但是有些錯(cuò)落;而微調(diào)就是繼續(xù)在這之上搭積木,如果一開始搭得太歪,就會(huì)導(dǎo)致積木垮塌,而放的位置比較好,就可以保持平衡。
那么,隨機(jī)種子的作用就是給你一樣放積木的起點(diǎn),它對(duì)結(jié)果的影響(平衡或崩塌)可以從三個(gè)方面解釋:(1)基底不夠穩(wěn)定(健壯),也就是預(yù)訓(xùn)練結(jié)果不夠穩(wěn)定;(2)隨機(jī)放置的方差太大,也就是初始化的方差太大,需要調(diào)整初始化策略;(3)先預(yù)訓(xùn)練后微調(diào)的方法不夠健壯。
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的微调也重要:探究参数初始化、训练顺序和提前终止对结果的影响的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧盟最高法院整顿“精准投放广告”行为,社
- 下一篇: 双目深度估计中的自监督学习概览