日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RoFormerV2:自然语言理解的极限探索

發布時間:2024/10/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RoFormerV2:自然语言理解的极限探索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?PaperWeekly 原創 ·?作者 | 蘇劍林

單位 | 追一科技

研究方向 | NLP、神經網絡

大概在 1 年前,我們提出了旋轉位置編碼(RoPE),并發布了對應的預訓練模型 RoFormer [1]。隨著時間的推移,RoFormer 非常幸運地得到了越來越多的關注和認可,比如 EleutherAI 新發布的 60億 [2] 和 200億 [3] 參數的 GPT 模型中就用上了 RoPE 位置編碼,Google 新提出的 FLASH 模型論文中則明確指出了 RoPE 對 Transformer 效果有明顯的提升作用。

與此同時,我們也一直在嘗試繼續加強 RoFormer 模型,試圖讓 RoFormer 的性能“更上一層樓”。經過近半年的努力,我們自認為取得了還不錯的成果,因此將其作為“RoFormerV2”正式發布:

Github:

https://github.com/ZhuiyiTechnology/roformer-v2

極限探索

在預訓練模型興起之后,不少研究人員都對一個問題相當感興趣:預訓練模型的極限在哪里?當然,“極限”這個詞含義很豐富,以 GPT3 為代表的一系列工作試圖探索的是參數量、數據量的極限,而微軟近來提出的 DeepNet 則探究的是深度的極限。對于我們來說,我們更想知道同一參數量下的性能極限,試圖最充分地“壓榨”預訓練模型的性能,RoFormerV2 正是這一理念的產物。

簡單來說,RoFormerV2 先在 RoFormer 的基礎上對模型結構做了適當的簡化,從而獲得了一定的速度提升。訓練方面,除了進行常規的無監督 MLM 預訓練外,我們還收集了 20 多 G 的標注數據,進行了有監督的多任務預訓練。在有監督式訓練之下,模型效果獲得了長足的提升,基本上實現了同一參數量下速度和效果的最優解。

特別地,3 億參數量的 RoFormer large,在 CLUE 榜單 [4] 上超過了若干 10 億 + 參數量的模型,做到了第 5 名,它也是榜上前5名中參數量最少的模型:

▲ RoFormerV2 large在CLUE上的“成績單”

模型介紹

相比 RoFormer,RoFormerV2 的主要改動是簡化模型結構、增加訓練數據以及加入有監督訓練,這些改動能讓 RoFormerV2 最終取得了速度和效果的“雙贏”。

結構的簡化

在結構上,RoFormerV2 主要去掉了模型的所有 Bias 項,以及 Layer Norm 換成了簡單的 RMS Norm,并且去掉了 RMS Norm 的 gamma 參數。這些改動的靈感主要來自 Google 的 T5 模型。

大家的潛意識里可能會覺得 Bias 項以及 Layer Norm 的 beta 和 gamma 參數計算量都很小,至少對速度來說是無關痛癢的。但事實出乎我們的意料:去掉這些看似“無關痛癢”的參數外,RoFormerV2 的訓練速度獲得了明顯的提升!

一些參考數據如下(RoFormer 和 RoBERTa 速度接近,就不列出來了,base 版的測試顯卡為 3090,large 版的測試顯卡為 A100):

無監督訓練

同 RoFormer 一樣,RoFormerV2 也是先通過 MLM 任務進行無監督預訓練,不同的地方主要有兩點:

1. RoFormer 是在 RoBERTa 權重基礎上進行訓練,RoFormerV2 是從零訓練;

2. RoFormer 的無監督訓練只有 30 多 G 數據,RoFormerV2 則用到了 280G 數據。

從零訓練相比于在已有權重基礎上繼續訓練會更加困難,主要體現在 Post Norm 結構更難收斂。為此,我們提出了一種新的訓練技術:將殘差設計為

其中 初始化為 0 并線性地緩慢增加到 1,相關討論還可以參考《淺談 Transformer 的初始化、參數化與標準化》[5]。該方案跟 ReZero 相似,不同的是 ReZero 中 是可訓練參數且去掉 操作,而實驗顯示我們的改動相比 ReZero 的最終效果更好,幾乎是 DeepNet 之前的最優解。

多任務訓練

前面提到 RoFormerV2 的結構有所簡化以獲得速度的提升,但由于“沒有免費的午餐”,同樣的訓練設置之下 RoFormerV2 相比 RoBERTa、RoFormer 的效果會有輕微下降。為了彌補回這部分下降的效果,更有效地挖掘模型潛力,我們補充了有監督式的多任務預訓練。

具體來說,我們收集了 77 個共計 20G 的標注數據集,構建了 92 個任務進行多任務訓練,這些數據集涵蓋文本分類、文本匹配、閱讀理解、信息抽取、指代消解等常見自然語言理解任務,以求模型能獲得比較全面的自然語言理解能力。為了完成訓練,我們在 bert4keras 基礎上進一步開發了一個多任務訓練框架,靈活支持不同格式的任務進行混合訓練,并整合了梯度歸一化等技術(參考《多任務學習漫談(二):行梯度之事》)來確保每個任務都達到盡可能優的效果。

RoFormerV2 并不是第一個嘗試多任務預訓練的模型,在它之前有 MT-DNN [6]、T5 [7] 以及前段時間的 ZeroPrompt [8] 都已經肯定過多任務預訓練的價值,而我們主要是在中文上進行了充分的驗證并首先進行了開源。

實驗結果

我們主要在 CLUE 榜單上對比效果:

可以看到,多任務訓練的提升是相當可觀的,在大多數任務上 RoFormerV2 不僅“追回”了結構簡化帶來的效果差距,還有一定的提升,平均來說算得上達到了同級模型的最優效果。另外,CMNLI 和 CHID 兩個任務上,RoFormerV2 都不如 RoBERTa,這是因為這兩個任務都訓練數據都非常多(數十萬級別),當訓練數據量足夠大時,模型的效果主要取決于模型的容量,多任務訓練帶來的提升比較小。

所以,總的來說就是:如果你的任務類型比較常規,數據量不是特別大,那么 RoFormerV2 往往是一個不錯的選擇;如果你希望加快一點訓練速度,那么也可以選擇 RoFormerV2;但如果你的任務數據量特別大,那么 RoFormerV2 通常不會有優勢。

本文小結

本文主要對我們新發布的 RoFormerV2 模型做了基本的介紹,它主要通過結構的簡化來提升速度,并通過無監督預訓練和有監督預訓練的結合來提升效果,從而達到了速度與效果的“雙贏”。

參考文獻

[1] https://github.com/ZhuiyiTechnology/roformer

[2] https://github.com/kingoflolz/mesh-transformer-jax/#gpt-j-6b

[3] https://blog.eleuther.ai/announcing-20b/

[4] https://www.cluebenchmarks.com/rank.html

[5] https://kexue.fm/archives/8620

[6] https://arxiv.org/abs/1901.11504

[7] https://arxiv.org/abs/1910.10683

[8] https://arxiv.org/abs/2201.06910

🔍

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

·

總結

以上是生活随笔為你收集整理的RoFormerV2:自然语言理解的极限探索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。