衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

大模型訓練loss突刺原因和解決辦法

深度學習自然語言處理 ? 來源:知乎 ? 2024-01-09 14:20 ? 次閱讀

最近閱讀了《A Theory on Adam Instability in Large-Scale Machine Learning 》這篇論文。比較全面的闡述了100B以上的大模型預訓練中出現loss spike的原因(loss 突然大幅度上漲),并介紹了一些可能的解決辦法。論文寫的非常精彩,但整體上有點散和深,我嘗試著站在工業立場上把它串一下

突刺是什么

首先介紹一下什么是loss spike:

loss spike指的是預訓練過程中,尤其容易在大模型(100B以上)預訓練過程中出現的loss突然暴漲的情況

73389aa4-aead-11ee-8b88-92fbcf53809c.png

如圖所示模型訓練過程中紅框中突然上漲的loss尖峰loss spike的現象會導致一系列的問題發生,譬如模型需要很長時間才能再次回到spike之前的狀態(論文中稱為pre-explosion),或者更嚴重的就是loss再也無法drop back down,即模型再也無法收斂

PaLM和GLM130b之前的解決辦法是找到loss spike之前最近的checkpoint,更換之后的訓練樣本來避免loss spike的出現。

突刺成因分析

這篇論文(以下稱本文)對loss spike的出現原因做了十分詳細的分析,最后認為預訓練使用的Adam優化器是導致這個現象出現的重要原因之一

首先回顧一下Adam優化器的結構(這里介紹的是較為傳統的Adam優化器,現在nlp任務更偏向于使用帶有正則化項的Adamw變體):

其中均為超參數( ,防止除0),表示第t次更新的梯度, 的初始值 為0。

本文首先對Adam的有效性做了論述,其本質在于證明了Adam優化過程是對牛頓下降法(二階導)的一個有效逼近,因此在收斂速度上大幅度領先傳統SGD(一階導),證明過程不做贅述,可以參考本文和Adam系列相關論文

Adam算法是牛頓下降法的一個迭代逼近

739ff820-aead-11ee-8b88-92fbcf53809c.png

一切顯得十分完美,但是理想很豐滿,現實很骨感,收斂過程并不是一帆風順的

首先我們想象一下這個更新參數的變化趨勢

在 的時候, ,, 集中在 附近。而在訓練到最后,假設模型收斂到某個最優點,此時 應該集中在0附近。也就是說,我們似乎可以把更新參數的變化過程想象成為一個從兩端(非穩態)向中間(穩態)收攏的過程。實際的觀察現象也是如此:

73a3d6ca-aead-11ee-8b88-92fbcf53809c.png

非穩態

73ab718c-aead-11ee-8b88-92fbcf53809c.jpg

中間態

73bbd7b6-aead-11ee-8b88-92fbcf53809c.png

穩態

進入正態分布的穩態之后,理想的更新參數變化趨勢應該是方差越來越小,所有更新參數逐漸向0靠近。這應該是一個單向的過程,即穩定的單峰狀態(unimodal)不會再次進入非穩定的雙峰狀態(bimodal),但事實并非如此,更新參數會再次進入非穩定的雙峰狀態

本文在理論層面做了研究和解釋,從中心極限定理(可以結合道爾頓板實驗理解)出發,認為隨機事件的疊加進入單峰的正態分布的必要條件之一是各個隨機事件事件之間應該是相互獨立的,但是梯度變化以及更新參數的變化并不能特別好的滿足獨立性這一條件,而這一點恰恰是導致更新參數振蕩,loss spike出現以及loss 不收斂的重要原因之一

73c289da-aead-11ee-8b88-92fbcf53809c.jpg

造成梯度變化不獨立的原因(1、淺層參數長時間不更新2、batch太大,后期梯度更新趨于平穩)上述的理論有些晦澀,本文作者可能也了解這一點,之后開始直接點題,結合實驗觀察拋出了重要現象和結論

即訓練過程中loss spike的出現與梯度更新幅度, 大小,batch大小這三個條件密切相關

本文作者對loss spike出現時模型的前后變化做了仔細拆解,發現下列一系列連續現象的出現導致了loss spike:

73c7b5fe-aead-11ee-8b88-92fbcf53809c.jpg

當前模型處在穩態(健康狀態),即單峰的正態分布狀態,并且梯度值 ,此時loss平穩,訓練過程正常

73cb2cac-aead-11ee-8b88-92fbcf53809c.jpg

2.模型淺層(embedding層)梯度 ,這一般是由于訓練一段時間之后,淺層的語義知識表示此時一般已經學習的較好。但此時深層網絡(對應復雜任務)的梯度更新還是相對較大

73dc7e8a-aead-11ee-8b88-92fbcf53809c.jpg

3.一段時間淺層(embedding層)梯度 之后會導致 , 。此時趨于0。因此導致淺層參數得不到更新(也對應于上述參數更新事件不獨立的原因)

73e0578a-aead-11ee-8b88-92fbcf53809c.png

4.此時雖然淺層(embedding層)參數長時間不更新,但是深層的參數依然一直在更新。長時間這樣的狀態之后,batch之間的樣本分布變化可能就會直接導致淺層(embedding層)再次出現較大的梯度變化(可以想象成一個水壩蓄水太久終于被沖開了。至于小模型為什么不會出現這種情況,推測是小模型函數空間小,無法捕獲樣本的分布變化,越大規模的模型對樣本之間不同維度的特征分布變化越敏感),此時 , 再次集中在 附近(此時 , ),變成雙峰的非穩定狀態,本文提到了淺層(embedding層)這種突然的參數變化可能造成模型的連鎖反應進而出現loss spike的現象(這也對應了更換樣本重新訓練有可能會減少loss spike的出現頻率,實際上就是選擇分布變化較小的樣本,減小淺層梯度變換幅度)

73e5069a-aead-11ee-8b88-92fbcf53809c.png

5.這個階段模型處于非穩態,梯度變化幅度較大,每一次的梯度變化和更新參數變化事件之間又出現了一定的獨立性,因此經過一定的時間之后模型有可能再次進入穩態,loss再次drop back down(注意,本文著重提了這個再次drop back down并不是一定出現的,也很有可能loss長期處于flat狀態,再也無法收斂)

因此我們得出一些結論,loss spike的出現和淺層的梯度更新幅度, 大小密切相關(batch大小帶來的相關性問題倒是顯得沒那么大說服力),實際上就是淺層網絡參數突然進入到了之前長時間不在的狀態與模型深層參數當前的狀態形成了連鎖反應造成了模型進入非穩態。同時一般情況即使出現loss spike也會自動回復到正常狀態,但也有可能再也不會

突刺解法

本文最后提到了防止loss spike出現的一些方法:

1.如之前提到的PaLM和GLM130B提到的出現loss spike后更換batch樣本的方法(常規方法,但是成本比較高)

2.減小learning rate,這是個治標不治本的辦法,對更新參數的非穩態沒有做改進

3.減小 大小。或者直接把 設為0,重新定義

在等于0時候的值(這應該是個值得嘗試的辦法)

值得一提的是智譜華章在本文發表之前,在去年的GLM130B訓練時似乎也觀察到了淺層梯度變化和loss spike相關這一現象(GLM-130B: An Open Bilingual Pre-trained Model),他采取的是把淺層梯度直接乘以縮放系數 來減小淺層梯度更新值

73eecda6-aead-11ee-8b88-92fbcf53809c.jpg

出自130b

73f5190e-aead-11ee-8b88-92fbcf53809c.jpg

其實這塊我有個自己的想法,和是否也可以做衰減,隨著訓練過程逐漸減小,來避免loss spike的現象

另外假設我們能一次性加載所有樣本進行訓練(實際上不可能做到),是否還會出現loss spike的現象

最后目前流行的fp8,fp16混合訓練,如果upscale設置的過小,導致梯度在進入優化器之前就下溢,是不是會增加淺層梯度長時間不更新的可能性,進而增加loss spike的出現的頻率。(這么看來似乎提升upscale大小以及優化 大小是進一步提升模型效果的一個思路)

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Palm
    +關注

    關注

    0

    文章

    22

    瀏覽量

    11292
  • 人工智能
    +關注

    關注

    1796

    文章

    47666

    瀏覽量

    240281
  • 大模型
    +關注

    關注

    2

    文章

    2545

    瀏覽量

    3164

原文標題:大模型訓練loss突刺原因和解決辦法

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PCB翹曲原因解決辦法 PCB翹曲度的計算公式

    今天給大家分享的是 PCB 翹曲原因解決辦法、PCB 翹曲度的計算公式。
    發表于 07-02 10:10 ?6061次閱讀
    PCB翹曲<b class='flag-5'>原因</b>及<b class='flag-5'>解決辦法</b> PCB翹曲度的計算公式

    音頻系統噪聲產生的主要原因和解決辦法

    音頻系統噪聲產生的主要原因和解決辦法
    發表于 12-11 20:08

    變壓器的常見故障和解決辦法

    變壓器的常見故障和解決辦法  故障現象            
    發表于 07-18 15:33 ?4461次閱讀

    電腦開機啟動時提示(顯示)NTLDR文件丟失解決辦法原因

    電腦開機啟動時提示(顯示)NTLDR文件丟失解決辦法原因分析 一、其實WINDOWS XP這個NTLDR文件丟失有個最簡便的解決辦法
    發表于 03-10 11:44 ?1.3w次閱讀

    電腦無法上網的原因解決辦法

    電腦無法上網的原因解決辦法   問:家里的寬帶最近好像出了問題,明明在任務欄下面已經顯示了網絡連接,可是就打不開網頁
    發表于 03-01 10:25 ?1.6w次閱讀

    音箱沒聲音的原因和解決辦法

    本文首先介紹了音箱發聲的原理,其次闡述了四種音箱沒聲音的原因和解決辦法,最后還介紹了電腦音箱沒聲音的原因解決辦法,具體的跟隨小編一起來了解一下。
    發表于 05-28 14:33 ?4.4w次閱讀

    板式給料機鏈條磨損過快原因分析和解決辦法

    板式給料機鏈條磨損過快原因分析和解決辦法 板式給料機在使用中存在著鏈條磨損快,設備使用壽命低等缺陷。 1.板式給料機存在的問題 在實際使用中板式輸送機存在如下問題: 1)輸送鏈負荷重、拉力過大。 2
    發表于 01-04 10:11 ?1564次閱讀

    LED顯示屏的常見故障及解決辦法的介紹

    LED顯示屏通訊新號載入不上的原因和解決辦法
    發表于 02-10 14:43 ?3384次閱讀

    電梯IP五方對講的問題和解決辦法的介紹

    梯云物聯:深圳電梯IP五方對講有什么問題和解決辦法
    發表于 04-11 18:16 ?5828次閱讀

    空氣開關跳閘常見原因解決辦法和卸下步驟

      在使用空氣開關中,如果出現跳閘情況,需要首先確定跳閘原因,然后根據具體原因采取相應的解決辦法。如果無法確定跳閘原因,應該及時停機檢查,并根據需要請專業人員進行維修。為了確保電氣設備
    發表于 04-08 15:42 ?2.7w次閱讀

    討論自激振蕩形成的原因以及解決辦法

    我們在使用運放或比較器芯片時有時候會碰到自激振蕩的問題,本文討論自激振蕩形成的原因以及解決辦法
    的頭像 發表于 05-02 14:31 ?3875次閱讀
    討論自激振蕩形成的<b class='flag-5'>原因</b>以及<b class='flag-5'>解決辦法</b>

    PCBA加工焊點拉尖產生的原因解決辦法

    一站式PCBA智造廠家今天為大家講講什么是PCBA加工焊點拉尖?PCBA加工焊點拉尖產生原因解決辦法。接下來為大家介紹PCBA加工焊點拉尖產生原因解決辦法
    的頭像 發表于 05-10 08:56 ?1472次閱讀

    電感嘯叫的原因和解決辦法

    電感嘯叫就是指在20Hz-200Hz的電流激勵頻率下,電感會發出人耳能聽見的吱吱聲。 電感嘯叫的原因之一是電感不固定形成空腔噪聲。 接下來,詳細為你說下電感嘯叫的原因和解決辦法
    的頭像 發表于 05-31 09:15 ?1.6w次閱讀
    電感嘯叫的<b class='flag-5'>原因</b><b class='flag-5'>和解決辦法</b>

    晶振失效三大原因解決辦法

    停止工作,給設備的正常運行帶來嚴重影響。本文將從三個方面介紹晶振失效的原因和解決辦法。 一、環境因素: 環境因素是導致晶振失效的一個常見原因。一些惡劣的環境條件,如高溫、高濕、高腐蝕性氣體等,會對晶振產生負面影響
    的頭像 發表于 01-24 15:40 ?2499次閱讀

    Profinet IO通信故障原因解決辦法

    通信故障時有發生,影響生產效率和系統穩定性。本文將深入探討Profinet IO通信故障的常見原因,并提出詳細的解決辦法,以幫助技術人員快速定位和解決問題。
    的頭像 發表于 02-03 14:50 ?72次閱讀
    云梦县| 大发888娱乐场下载iypu rd| 澳门百家乐官网怎洋赢钱| 威尼斯人娱乐公司| 百家乐官网谁能看准牌| 连山| 娱乐城百家乐的玩法技巧和规则| 御匾会百家乐官网的玩法技巧和规则 | 津南区| 大发888娱乐城下载新澳博| 网络百家乐破解平台| 御金百家乐官网娱乐城| 桐城市| 万龙百家乐的玩法技巧和规则| 百家乐官网平注法口诀技巧| 百家乐官网下对子的概率| 香港六合彩网址| 威尼斯人娱乐网网址| 百家乐论坛在线提供| 百家乐官网计划策略| 百家乐官网龙虎规则| 丹阳棋牌游戏中心| 新利百家乐的玩法技巧和规则| 百家乐概率投注| 百家乐官网号解码器| 来博百家乐官网现金网| 六合彩图库大全| 水果机游戏机遥控器| 百家乐规律打法| 开心8百家乐游戏| 百樂坊百家乐官网的玩法技巧和规则 | 百家乐网站建设| 在线百家乐官网策略| 百家乐官网技巧公司| 百家乐官网洗码软件| 大发888官方6| 威尼斯人娱乐场积分| 百家乐出庄的概率| 百家乐总厂在哪里| 百利宫百家乐官网的玩法技巧和规则 | 足球网|