挑戰單卡單日訓練BERT,ViT作者推薦
結果:性能接近基準BERT
Pine 發自 凹非寺
量子位 | 公眾號 QbitAI
單個GPU,只花一天時間,能把BERT訓練成什么樣?
現在,終于有研究人員做這件事了,在有限的計算條件之下看看語言模型的真實性能如何。
要知道在以往,大多數專業人員的關注點都在極端計算的條件下的語言模型性能。
但這樣的語言訓練模型環境,對很多研究人員和從業人員是不可能存在的。
因此這個單天單個GPU的挑戰,就有網友稱是一個最希望看到的基準。
連ViT作者,谷歌大腦研究員Lucas Beyer都發文推薦,稱這是一個令人耳目一新的轉變。
具體的過程和結果如何,一起來看看~
挑戰過程
這次研究的目標也很明確,就是反其道行之:縮小語言訓練模型的算力,在有限的計算量的情況下如何達到BERT的性能水平。
既然要縮小計算量,那第一步肯定是對模型作出一些限定。
這也還是之前提到的,限定時間和GPU個數:單天單個GPU。
關于GPU,研究人員分別選取了3個進行測試,即rtx2080ti、rtxa4000和rtxa6000,每個單元有4個CPU核和32GB內存。
在限定計算量之后,就要對模型的其他參數進行一些調整,以進一步對BERT的實際適用性進行評估。
這些調整包括初始數據設置、模型架構、訓練以及數據集的改進。
并且在調整的過程中,整體基調都是圍繞“實際使用”進行的,避免跳轉到專業的設置,為此,研究人員將所有內容都保持在PyTorch框架的實現級別上。
先來說說初始數據設置,這部分可以簡單概括為以下幾點:
- 將標記化的數據打包成長度為128的隨機序列,不相關的片段用
- 分割;
- 刪除< cls > 標記,因為在訓練前訓練中加入它并沒有對性能產生多大影響;
- 將序列長度為64到96微小批量累積到大批量再處理。
然后是對架構的修改,下圖顯示了不同模型在隨著token數量的增加MLM任務損失的變化。
結果很顯然,一個模型損失的衰減很大程度地取決于模型的大小,而不是模型的類型。
并且,因為每個token的性能與模型大小之間的關系緊密耦合,若想通過改變Transformer模型的大小和類型來獲得巨大性能增益是不太可能的。
不過對于同大小的所有模型,每個梯度效率是幾乎保持不變的,因此可以在保證模型大小不變的情況下,選擇能夠通過快速搜索加速計算的架構。
具體的優化和其他調整如下:
- 減少注意力頭的數量來降低梯度成本:禁用所有QKV偏差;
- 禁用所有線性層偏差,通過加速梯度計算,不會對模型大小產生明顯影響;
- 實現比例正弦位置嵌入,相較于學習或非比例正弦嵌入有增量收益;
- LN的預標準化比后LN更有益;
- 去除非線性頭部并無影響。
接下來便要對訓練進行設置,具體也就不再贅述,直接來看相關調整:
- 優化器依舊是Adam;
- 設定Learning Rate計劃和批量大??;
- 丟掉Dropout環節。(因為Dropout會導致每秒更新的凈減少)
而在數據集方面,研究團隊采用了兩種基于數據的途徑來更好地縮小規模,分別是以各種方式過濾、處理或排序現有的數據和交換數據源,具體可以看下表。
性能接近最初的BERT
在調整完各種參數后,這個單卡一天的BERT性能到底如何?直接看看最終的數據!
在下游性能評估時是通過GLUE來進行的,下表能夠看到在3個不同顯卡上的得分,非常接近最初的BERT。
而當模型訓練計算量為16倍時,即(2天,在8個GPU),依舊是一樣的數據和設置,最終得到的結果比最初的BERT提高了很多,達到了RoBERTa的性能水平。
如果想了解更多,可以點擊下面鏈接查看論文原文~
論文原文:
https://arxiv.org/abs/2212.14034
參考鏈接:
https://twitter.com/giffmana/status/1608568387583737856
- GPT-5不能停!吳恩達田淵棟反對千人聯名,OpenAI CEO也發聲了2023-03-30
- ChatGPT標注數據比人類便宜20倍,80%任務上占優勢 | 蘇黎世大學2023-03-29
- 馬斯克嘲諷比爾蓋茨不懂AI/ 蘋果收購AI視頻公司/ 壁仞GPU聯創出走…今日更多新鮮事在此2023-03-28
- GPT-4老板:AI可能會殺死人類,已經出現我們無法解釋的推理能力2023-03-28




