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

「沒吃過豬肉,還沒見過豬跑嗎?」在深度學習算力高度增長的今天,不論是學術界還是工業界的從業者,即使尚未達到從頭預訓練一個百億級別參數模型的土豪程度,也必定嘗試過在自己的科研/工作中使用大模型。訓練大模型已經成為了刷排行榜SOTA、處理業務問題、提高工作受關注程度甚至是大廠「秀肌肉」的一個重要手段。如何高效地訓練大模型,快速地推理大模型,方便地部署大模型也是產學研界所面臨的關鍵挑戰。
想刷SOTA想漲點,沒有大模型,萬萬不行。可是,自己訓練一個大模型,就一定能刷出SOTA和漲點麼,那也未必?且不論數據質量、工程實現難度這些一個比一個令人頭疼的問題,單單是大模型結構和訓練方法的設計,就已經讓人抓狂了。 作為一個訓練大模型方面的小白,如果讓我訓練一個大模型,我最關心的問題是:
幸運地是,針對以上令小白無從下手的問題,訓練大模型無數的工業界土豪Google/DeepMind/OpenAI熱心地為大家分享了自己的經驗。研究者們將研究模型大小、數據量、模型結構等因素如何影響模型性能這一領域稱為深度學習的尺度定律,本文將為大家解析尺度定律這一領域的三篇經典工作,分析了在預訓練、微調和跨域遷移三個常見的應用場景中的尺度定律,希望大家在讀完這篇推送後,能更好地設計和訓練自己的大模型~
論文題目:


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





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數據集較小,當從頭訓練的模型參數量進一步擴大時會受到過擬合的影響,使得表現難以進一步提升,而預訓練過的文本模型能夠隨着參數量的提高進一步提升性能。
預訓練模型在少數據場景下更加的計算高效,也即僅需要更少的計算資源進行微調就能達到與從頭訓練相同的效果。
在小數據遷移場景下,作者發現微調模型的損失可以和前文中預訓練模型的公式放在統一的框架中,得到公式這個公式可以通過將替換為得到。


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


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