發表日期 3/3/2022, 12:35:08 PM
機器之心報道
機器之心編輯部
1000 層的 Transformer,深得嚇人。
昨日齣爐的論文《DeepNet: Scaling Transformers to 1,000 Layers》在研究社區引起瞭熱議,作者來自微軟亞洲研究院。
該研究直接把 Transformer 深度提升到 1000 層!
下麵讓我們看下這篇研究說瞭什麼。
近年來,大規模 Transformer 模型齣現瞭這樣一種趨勢:隨著模型參數從數百萬增加至數十億甚至數萬億,性能相應地實現瞭顯著提升。大規模模型在一係列任務上都取得瞭 SOTA 性能,並在小樣本和零樣本學習設置下展現齣瞭令人矚目的能力。如下圖 1 所示,盡管參數量已經很大瞭,但 Transformer 模型的深度(depth)卻受到瞭訓練不穩定的限製。
Nguyen 和 Salazar (2019) 發現,基於 post-norm 連接(Post-LN),pre-norm 殘差連接(Pre-LN)能夠提升 Transformer 的穩定性。但是,Pre-LN 在底層的梯度往往大於頂層,因而導緻與 Post-LN 相比性能下降。為瞭緩解這一問題,研究人員一直努力通過更好的初始化或更好的架構來改進深度 Transformer 的優化。這些方法可以使多達數百層的 Transformer 模型實現穩定化,然而以往的方法沒有能夠成功地擴展至 1000 層。
微軟亞研在一篇新論文《DeepNet: Scaling Transformers to 1,000 Layers》中終於將 Transformer 的深度擴展到瞭 1000 層。
論文地址:https://arxiv.org/pdf/2203.00555.pdf
研究者的目標是提升 Transformer 模型的訓練穩定性,並將模型深度進行數量級的擴展。為此,他們研究瞭不穩定優化的原因,並且發現爆炸式模型更新是造成不穩定的罪魁禍首。基於這些觀察,研究者在殘差連接處引入瞭一個新的歸一化函數 ―― DEEPNORM,它在將模型更新限製為常數時具有理論上的閤理性。
這一方法簡單但高效,隻需要改變幾行代碼即可。最終,該方法提升瞭 Transformer 模型的穩定性,並實現瞭將模型深度擴展到瞭 1000 多層。
此外,實驗結果錶明,DEEPNORM 能夠將 Post-LN 的良好性能和 Pre-LN 的穩定訓練高效結閤起來。研究者提齣的方法可以成為 Transformers 的首選替代方案,不僅適用於極其深(多於 1000 層)的模型,也適用於現有大規模模型。
值得指齣的是,在大規模多語言機器翻譯基準上,文中 32 億參數量的 200 層模型(DeepNet)比 120 億參數量的 48 層 SOTA 模型(即 Facebook AI 的 M2M 模型)實現瞭 5 BLEU 值提升。
有知乎網友疑問:就實現效果來說,1000 層是否有必要?論文作者之一董力(Li Dong)錶示,1000 層更多地是為瞭探究上限,實際跑的過程中並非一定要上韆層。此外,訓練代碼很快就會公開。
DEEPNORM 方法
如下圖 2 所示,使用 PostLN 實現基於 Transformer 的方法很簡單。與 Post-LN 相比,DEEPNORM 在執行層歸一化之前 up-scale 瞭殘差連接。
圖 2:(a) DEEPNORM 的僞代碼,例如可以用其他標準初始化代替 Xavier 初始化 (Glorot and Bengio, 2010) ,其中 α 是一個常數。(b) 不同架構的 DEEPNORM 參數(N 層編碼器,M 層解碼器)。
此外,該研究還在初始化期間 down-scale 瞭參數。值得注意的是,該研究隻擴展瞭前饋網絡的權重,以及注意力層的值投影和輸齣投影。此外,殘差連接和初始化的規模取決於圖 2 中不同的架構。
深度 Transformer 的不穩定性
該研究分析瞭深度 Transformer 不穩定的原因。
首先,研究者觀察發現:更好的初始化方法可以讓 Transformer 的訓練更穩定。之前的工作(Zhang et al., 2019a; Huang et al., 2020; Xu et al., 2021)也證實瞭這一點。
因此,研究者分析瞭有無適當初始化的 Post-LN 的訓練過程。通過更好的初始化,在執行 Xavier 初始化後通過down-scale 第 l 層的權重。例如,第 l 層 FFN 的輸齣投影被初始化為其中 d’是輸入和輸齣維度的平均值。研究者將此模型命名為 Post-LN-init。請注意,與之前的工作(Zhang et al., 2019a)不同, Post-LN-init 是縮窄瞭較低層的擴展而不是較高層。研究者相信這種方法有助於將梯度擴展的影響與模型更新區分開來。此外,Post-LN-init 與 Post-LN 具有相同的架構,從而消除瞭架構的影響。
該研究在 IWSLT-14 De-En 機器翻譯數據集上訓練瞭 18L-18L Post-LN 和 18L-18L Post-LN-init。圖 3 可視化瞭它們的梯度和驗證損失麯綫。如圖 3 (c) 所示,Post-LN-init 收斂,而 Post-LN 沒有。Post-LN-init 在最後幾層中具有更大的梯度範數,盡管其權重已按比例縮小。此外,研究者可視化最後一個解碼器層的梯度範數,模型深度從 6L-6L 到 24L-24L。
下圖 3 顯示,無論模型深度如何,最後一層 Post-LN-init 的梯度範數仍遠大於 Post-LN 的梯度範數。得齣的結論是,深層梯度爆炸不應該是 Post-LN 不穩定的根本原因,而模型更新的擴展往往可以解釋這一點。
然後研究者證明 Post-LN 的不穩定性來自一係列問題,包括梯度消失以及太大的模型更新。如圖 4 (a) 所示,他們首先可視化模型更新的範數 ||ΔF|| 在訓練的早期階段:
其中 x 和 θ_i 分彆代錶輸入和第 i 次更新後的模型參數。Post-LN 在訓練一開始就有爆炸式的更新,然後很快就幾乎沒有更新瞭。這錶明該模型已陷入虛假的局部最優。
warm-up 和更好的初始化都有助於緩解這個問題,使模型能夠順利更新。當更新爆炸時,LN 的輸入會變大(見圖 4 (b) 和圖 4 (c))。根據 Xiong 等人 (2020) 的理論分析,通過 LN 的梯度大小與其輸入的大小成反比:
相比於沒有 warm-up 或正確初始化的情況,圖 4 (b) 和圖 4 (c) 錶明 ||x|| 的明顯大於。這解釋瞭 Post-LN 訓練中齣現的梯度消失問題(見圖 4 (d))。
最重要的是,不穩定性始於訓練開始時的大型模型更新。它使模型陷入糟糕的局部最優狀態,這反過來又增加瞭每個 LN 的輸入量。隨著訓練的繼續,通過 LN 的梯度變得越來越小,從而導緻嚴重的梯度消失,使得難以擺脫局部最優,並進一步破壞瞭優化的穩定性。相反,Post-LN-init 的更新相對較小,對 LN 的輸入是穩定的。這減輕瞭梯度消失的問題,使優化更加穩定。
DeepNet:極深的 Transformer 模型
研究者首先介紹瞭極深的 Transformer 模型 ――DeepNet,該模型可以通過緩解爆炸式模型更新問題來穩定優化過程。
DeepNet 基於 Transformer 架構。與原版 Transformer 相比,DeepNet 在每個子層使用瞭新方法 DEEPNORM,而不是以往的 Post-LN。DEEPNORM 的公式如下所示。
其中,α 是一個常數,G_l (x_l , θ_l) 是參數為 θ_l 的第 l 個 Transformer 子層(即注意力或前饋網絡)的函數。DeepNet 還將殘差內部的權重 θ_l 擴展瞭 β。
接著,研究者提供瞭對 DeepNet 模型更新預期大小(expected magnitude)的估計。
他們可視化瞭 IWSLT-14 De-En 翻譯數據集上,Post-LN 和 DeepNet 在早期訓練階段的模型更新情況,如下圖 5 所示。可以看到,相較於 Post-LN,DeepNet 的模型更新幾乎保持恒定。
最後,研究者提供理論分析,以錶明 DeepNet 的更新受到瞭 DEEPNORM 的常數限製。具體地,他們展示瞭 DeepNet 的預期模型更新受到瞭適當參數 α 和 β 的常數限製。研究者的分析基於 SGD 更新,並通過實證證明對 Adam 優化器效果很好。
研究者提供瞭對編碼器 - 解碼器架構的分析,它能夠以相同的方式自然地擴展到僅編碼器和僅解碼器的模型。具體如下圖所示,他們將模型更新的目標設定如下:
僅編碼器(例如 BERT)和僅解碼器(例如 GPT)架構的推導能夠以相同的方式進行。研究者將步驟總結如下:
神經機器翻譯
該研究驗證瞭 DeepNet 在流行的機器翻譯基準上的有效性,包括 IWSLT-14 德語 - 英語 (De-En) 數據集和 WMT-17 英語 - 德語 (En-De) 數據集。該研究將 DeepNet 與多個 SOTA 深度 Transformer 模型進行比較,包括 DLCL 、NormFormer 、ReZero 、R- Fixup 、T-Fixup 、DS-init 和 Admin。
下錶 1 報告瞭 WMT-17 En-De 翻譯數據集上的基綫和 DeepNet 的結果:
下圖 6 顯示瞭 IWSLT-14 數據集的結果
下圖 7 報告瞭 WMT-17 驗證集的損失麯綫
大規模多語言神經機器翻譯
該研究首先使用 OPUS-100 語料庫來評估模型。OPUS100 是一個以英語為中心的多語言語料庫,涵蓋 100 種語言,是從 OPUS 集閤中隨機抽取的。該研究將 DeepNet 擴展到 1,000 層,該模型有一個 500 層的編碼器、 500 層的解碼器、512 個隱藏大小、8 個注意力頭和 2,048 維度的前饋層。
下錶 2 總結瞭 DeepNet 和基綫的結果。結果錶明,增加網絡深度可以顯著提高 NMT 的翻譯質量:48 層的模型比 12 層的模型平均獲得 3.2 點的提高。DeepNet 可以成功地將深度擴展到 1,000 層,比基綫提高 4.4 BLEU。值得注意的是,DeepNet 隻訓練瞭 4 個 epoch,並且在計算預算更多的情況下,性能可以進一步提高。
深度擴展規律:該研究在 OPUS100 數據集上訓練具有 層的 DeepNet,下圖 8 顯示瞭深度擴展麯綫。與雙語 NMT 相比,多語 NMT 從擴展模型深度受益更多。可以觀察到多語 NMT 的 BLEU 值呈對數增長,規律可以寫成:L (d) = A log (d) + B,其中 d 是深度,A, B 是關於其他超參數的常數。
更多數據和語言說明:為瞭探索 DeepNet 在多語 NMT 上的局限性,該研究隨後使用 Schwenk 等人提齣的 CCMatrix 擴展訓練數據。此外,該研究還擴展瞭 CCAligned 、OPUS 和 Tatoeba 的數據,以涵蓋 Flores101 評估集的所有語言。最終的數據由 102 種語言、1932 個方嚮和 12B 對句子組成。利用這些數據,該研究用 100 層編碼器、100 層解碼器、1024 個隱藏維度、16 個頭、4096 個前饋層中間維度對 DeepNet 進行訓練。
該研究將 DeepNet 與 SOTA 多語 NMT 模型 M2M-100 進行瞭比較。M2M-100 有一個 24 層的編碼器、一個 24 層的解碼器和 4,096 個隱藏大小,從而産生高達 12B 的參數。與 M2M-100 相比,DeepNet 深而窄,參數隻有 3.2B。
在 M2M-100 之後,該研究在幾個多語言翻譯評估數據集上評估模型,包括 WMT、OPUS 、TED、 Flores。WMT 的語言對是以英語為中心的。包括英語在內的 10 種語言,其中大部分是高資源語言。對於 OPUS 數據集,該研究從包含 30 個評估對的測試集中選擇非英語方嚮。TED 評估集有 28 種語言和 756 個方嚮,數據來自口語領域。Flores 數據集包含 102 種語言之間的所有翻譯對。該研究使用涵蓋 M2M-100 和 DeepNet 支持的語言的子集,産生 87 種語言和 7,482 個翻譯方嚮。
下錶 3 報告瞭結果,為瞭公平比較,該研究使用與基綫相同的評估方法。結果錶明 DeepNet 在所有評估數據集上的性能都明顯優於 M2M-100,錶明深化模型是提高 NMT 模型質量的一個非常有前景的方嚮。
感興趣的讀者可閱讀論文原文,瞭解更多細節內容。
時在中春,陽和方起―― 機器之心AI科技年會
機器之心 AI科技年會 將於 3月23日 在北京舉辦,在分享交流對人工智能的判斷與思考外,更重要的是與讀者、閤作夥伴和好友們真實的見一麵。
這是一次注重交流與見麵的聚會,所以叫「年會」,沒叫「大會」。
在這場年會上,有三個方嚮我們希望和大傢分享:人工智能、AI for Science和智能汽車。
人工智能論壇關注高性能計算、聯邦學習、係統機器學習、強化學習、CV與NLP發展、RISC-V等。
AI x Science論壇關注AI與蛋白質、生物計算、數學、物理、化學、新材料和神經科學等領域的交叉研究進展。
首席智行官大會關注智能汽車、汽車機器人、無人駕駛商業化、車規級芯片和無人物流等。
當然,按以往的慣例,我們還將邀請行業內最具代錶性與專業的權威嘉賓帶來他們的思考與判斷。