close

文 | Yimin_飯煲

都1202年了,不會真有深度學習煉丹俠還沒有訓練/推理過大模型吧

「沒吃過豬肉,還沒見過豬跑嗎?」在深度學習算力高度增長的今天,不論是學術界還是工業界的從業者,即使尚未達到從頭預訓練一個百億級別參數模型的土豪程度,也必定嘗試過在自己的科研/工作中使用大模型。訓練大模型已經成為了刷排行榜SOTA、處理業務問題、提高工作受關注程度甚至是大廠「秀肌肉」的一個重要手段。如何高效地訓練大模型,快速地推理大模型,方便地部署大模型也是產學研界所面臨的關鍵挑戰。

想刷SOTA想漲點,沒有大模型,萬萬不行。可是,自己訓練一個大模型,就一定能刷出SOTA和漲點麼,那也未必?且不論數據質量、工程實現難度這些一個比一個令人頭疼的問題,單單是大模型結構和訓練方法的設計,就已經讓人抓狂了。 作為一個訓練大模型方面的小白,如果讓我訓練一個大模型,我最關心的問題是:

為了解決我面對的問題,我需要訓練一個多大的模型(十億/百億/千億)?這決定了需要多少算力資源,能否在儘可能節省資源的前提下完成任務。
我需要收集多少數據來「匹配」選擇的模型。如果我所需要處理的領域只能收集到幾十/幾百GB數據,我應該如何設置模型的參數量和訓練方式?
在決定好模型的參數量之後,我應該在模型的什麼部分「堆料」?例如:我是應該將模型的層數壘高,還是應該將隱狀態的長度加的更大,還是應該將注意力頭個數目加多?在資源受限的情況下,我應該更側重在什麼部分增加參數?
在預訓練語言模型、微調語言模型、跨域遷移語言模型這些常用的應用大語言模型方式下,有沒有什麼可以遵循的設計準則?

幸運地是,針對以上令小白無從下手的問題,訓練大模型無數的工業界土豪Google/DeepMind/OpenAI熱心地為大家分享了自己的經驗。研究者們將研究模型大小、數據量、模型結構等因素如何影響模型性能這一領域稱為深度學習的尺度定律,本文將為大家解析尺度定律這一領域的三篇經典工作,分析了在預訓練、微調和跨域遷移三個常見的應用場景中的尺度定律,希望大家在讀完這篇推送後,能更好地設計和訓練自己的大模型~

論文題目:

Scaling Laws for Neural Language Models
Scaling Laws for Transfer
Scaling Efficiently: Insights from Pre-training and Fine-tuning Transformers
預訓練語言模型時的尺度定律

深度學習模型種類和任務五花八門,不妨從大模型數量最多、數據最充足、任務相對簡單的預訓練語言模型開始研究。OpenAI的工作 Scaling Laws for Neural Language Models 是尺度定律領域最早的研究。從預訓練語言模型入手,想必也有OpenAI對GPT系列工作情有獨鐘的因素。這篇文章的主要結論是:

在預訓練語言模型時,模型的性能和模型的參數量明顯正相關,而和模型的結構關係較小(這對於其他類型的模型不一定成立)
模型的表現(以交叉熵loss衡量)與模型的參數量,數據集大小和訓練計算開銷都有着明確的定量關係α α (不包含embedding層參數量)α α (token數目) , (PF-days)
當數據集較小而模型較大時會出現過擬合現象,作者指出了為避免過擬合的經驗規律,也即當我們將模型大小擴大8倍時需要將數據集大小擴大5倍。
大模型具有更好的樣本有效性,僅需要更少的優化步驟,更少的訓練數據就能達到與小模型相同的表現
在固定訓練開銷的前提下,訓練超大模型並且在收斂前停下能夠達到最優的表現(而不是將小模型訓練到收斂),由下圖可知,在訓練開銷限制增加的過程中,最優的訓練配置是在模型大小上「堆料」,而不是增加Batch Size和訓練步數。OpenAI的這一工作為隨後的尺度定律研究工作提供了基本的框架,在實驗設計上有許多可取之處,限於推送篇幅無法為大家一一介紹,有興趣的小夥伴可以去看看原文哦!
微調語言模型時的尺度定律

OpenAI的工作告訴我們在預訓練語言模型時,模型的參數量決定了模型的表現,而模型結構的影響很小。但是,OpenAI研究的因變量只有語言模型的交叉熵,而在實際應用中,預訓練語言模型更多地是為了在下游任務上進行微調和應用。Google和DeepMind的研究者們,進一步探索了在微調語言模型時遵循的尺度定律,證明了模型的結構對下游任務微調的影響很大,並且發現了現有的T5模型並不是最優的結構。作者們還壕無人性地發布了100個T5的Checkpoint! 這篇文章的主要發現是:

模型在預訓練階段的表現基本僅依賴於模型的參數量,在微調階段時的表現和模型結構關係很大。在預訓練階段表現更好的模型(NL12-XXL), 在下游任務上的表現卻明顯低於NL32-XL。

在不同的計算開銷條件下(Small, Base, Large),所得到的最優模型配置是不相同的。因此,在較小尺度下得到的最優模型配置未必能在較大的尺度上也是最優的

模型的層數(NL)對下游任務上表現的影響很大,而注意力頭的數目(NH)、前向傳播層(FF)的維度對下游任務上表現的影響相對較小。

作者提出了DeepNarrow策略,也就是在「堆料」時提高模型的層數,而不需要將其他參數過於提高。按照此策略的模型相對於標準版的T5模型更加「瘦高」。從結果可以發現,儘管參數量和FLOPs更小,DeepNarrow策略的模型表現要優於T5標準模型(在Small,Base,Large,XL,XXL多個尺度上)

作者們在GLUE之外的多個和常識推理、自然語言生成任務有關的數據集上同樣驗證了DeepNarrow策略的有效性。

跨域遷移學習時的尺度定律

跨域遷移學習是大模型另一個極其重要的應用場景。例如,我想預訓練一個Python數據上的大模型,然而Python數據的量畢竟是十分有限的。這時,可以先利用大規模的文本數據訓練一個大模型,再利用Python數據進行遷移學習,就能夠得到一個強大的Python語言模型。如下圖所示,如果先在文本上預訓練一個模型,之後在Python數據集上進行微調,就能夠比從頭訓練的Python模型取得更好的效果(小數據場景下)。固定測試誤差,定義從頭訓練Python模型所需要的數據量為,從預訓練好的文本模型遷移學習Python模型所需要的數據量為,就是從預訓練文本模型遷移的「數據量」研究者們採取了三種方式進行訓練:直接在Python代碼上訓練/在文本上預訓練在Python代碼上微調/在文本和非Python的代碼上預訓練在Python代碼上微調。通過大量地實驗發現了尺度定律在遷移學習上的許多規律。

遵循和以及模型參數量的明確函數關係 , 其中,與預訓練的語料分布無關,衡量了參數量對模型表現的影響。和預訓練的語料分布有關,預訓練和微調的語料分布越接近,越小。在文本到Python的遷移過程中。

當下游的Python數據集較小時,從文本預訓練模型遷移而來的Python模型有着更好的表現。由於Python數據集較小,當從頭訓練的模型參數量進一步擴大時會受到過擬合的影響,使得表現難以進一步提升,而預訓練過的文本模型能夠隨着參數量的提高進一步提升性能。

預訓練模型在少數據場景下更加的計算高效,也即僅需要更少的計算資源進行微調就能達到與從頭訓練相同的效果。

在小數據遷移場景下,作者發現微調模型的損失可以和前文中預訓練模型的公式放在統一的框架中,得到公式這個公式可以通過將替換為得到。

尺度定律對煉丹師有什麼用

了解完乾貨滿滿的尺度定律的三種應用後,大家會發現尺度定律的研究大多基於充分的實證實驗和數據分析,往往需要耗費大量的算力資源,需要收集大量的數據以供實驗。而作為學術界和工業界的普通煉丹師,也許無法獲得如此充足的資源來研究如何訓練自己的大模型。這裡,我想談談我從這三篇「耗資巨大」的論文中學到的東西,順便來回答文章開頭提到的問題~

大模型的堆料思路:在設計大模型結構時,優先考慮將模型的層數做深,再考慮增加注意力頭數、隱層尺寸等其他參數。
大模型的樣本有效性:在訓練數據較少的情況下,並不一定要採取小模型進行訓練。可以採用大模型進行訓練,在收斂前停下,僅需較少的訓練步驟就能達到很好的效果。這是由於大模型具有更好的樣本有效性。
大模型的遷移性:在目標任務領域數據量較小時,可以採用通用文本上預訓練過的大模型進行微調,可能取得更優的效果。
大模型對數據的要求:模型的表現同時和數據量與模型參數量相關。為了避免過擬合,在增大模型參數量的同時需要增大數據量,但要求的數據量增長速度相對較慢。當擴大模型大小8倍時只需要擴大數據量5倍。
大模型的架構設計:如果不確定應該選取怎樣的大模型結構和參數配置,可以參考Paper中已經給出的一些優秀的設計策略。
結語

尺度定律並非是在深度學習中提出的概念,而是物理學中的一個常用名詞。凡是可以用冪次關係表示的兩個或多個物理量都稱為滿足尺度定律。最早研究預訓練語言模型的尺度定律論文 Scaling Laws for Neural Language Models 的第一作者Jared Kaplan是一位來自約翰霍普金斯大學的物理學教授,因此在這篇論文中可以看到很多類似於物理學中的唯象的研究思路。深度學習和物理學都需要對實驗現象進行觀察並總結出規律,也許深度學習也可以被看成一種新的「物理學」分支。希望將來能看到更多物理學家參與的深度學習工作,能給深度學習帶來更多的理論和實踐Insights~

後台回復關鍵詞【入群】

加入賣萌屋NLP/IR/Rec與求職討論群

後台回復關鍵詞【頂會】

獲取ACL、CIKM等各大頂會論文集!

[1] Scaling Laws for Neural Language Models.https://arxiv.org/abs/2001.08361[2] Scaling Laws for Transfer.https://arxiv.org/abs/2102.01293[3] Scaling Efficiently: Insights from Pre-training and Fine-tuning.https://arxiv.org/abs/2109.10686
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()