分類目錄:《深入理解深度學(xué)習》總目錄
預(yù)訓(xùn)練語言模型的一個趨勢是使用更大的模型配合更多的數(shù)據(jù),以達到“大力出奇跡”的效果。隨著模型規(guī)模的持續(xù)增大,單塊GPU已經(jīng)無法容納整個預(yù)訓(xùn)練語言模型。為了解決這個問題,谷歌提出了ALBERT,該模型與BERT幾乎沒有區(qū)別,但其所占用的顯存空間可以減少至BERT的十分之一乃至更少,方便了預(yù)訓(xùn)練語言模型的訓(xùn)練與部署。為了不大幅降低模型的性能,相比BERT,ALBERT有如下幾點改進:
- Embedding層低秩分解。
- 跨層參數(shù)共享。
- 使用SOP(Sentence Order Prediction)訓(xùn)練方法代替NSP訓(xùn)練方法
Embedding層低秩分解是為了固定Embedding層的參數(shù)規(guī)模,使其不隨模型的增大而增大??鐚訁?shù)共享則讓模型只記住一個Transformer Block的參數(shù),就可以還原整個模型,大大減少了參數(shù)存儲的空間,是ALBERT效果如此突出的最重要原因。NSP訓(xùn)練方法已經(jīng)被諸多模型證明沒有效果,故ALBERT采用了SOP訓(xùn)練方法,并用實驗證明其有效。
算法細節(jié)
Embedding層低秩分解
設(shè)Embedding層的輸出向量維度為
E
E
E,隱層向量(Transformer Block的輸入/輸出向量)維度為
H
H
H,模型詞表大小為
V
V
V。在BERT中,一般默認
E
E
E和
H
H
H一致,即Embedding層的輸出直接作為Transformer Block層的輸入。Embedding層只是一個靜態(tài)映射,詞的向量化過程不涉及上下文信息,因此Embedding層的輸出維度
E
E
E沒有必要隨著
H
H
H的增大而增大,保持在一定規(guī)模即可,以免造成參數(shù)冗余。具體而言,ALBERT在固定
E
E
E之后,引入了一個變換矩陣,該矩陣的作用就是將維度為E的Embedding層輸出向量變換為維度為
H
H
H的向量,以便輸入至Transformer Block模塊。在數(shù)學(xué)上,這個變換可以視為如下因式分解操作:
V
×
H
=
V
×
E
×
H
V\times H=V\times E\times H
V×H=V×E×H
從參數(shù)量的角度看,參數(shù)規(guī)模從BERT的 O ( V × H ) O(V\times H) O(V×H)下降到ALBERT的 O ( V × E + E × H ) O(V\times E+E\times H) O(V×E+E×H)。以BERT為例,詞表的大小 V V V為30000,隱層向量維數(shù) H H H為768,光是Embedding層就需要2304萬個參數(shù),而ALBERT固定Embedding層輸出維數(shù) E E E為128,可以計算得到ALBERT的Embedding層只需要約394萬個參數(shù),只有BERT的六分之一。若BERT繼續(xù)橫向擴大, H H H變?yōu)?048乃至4096,則ALBERT節(jié)省參數(shù)空間的特性將更明顯,可以達到更大的壓縮比。
跨層參數(shù)共享
ALBERT采用了Transformer Block層參數(shù)共享的方法來減少模型的存儲參數(shù)量。為了尋找最佳的參數(shù)共享方案,ALBERT做了大量實驗,分別探究了以下幾種情況下的模型性能:
- 所有層的所有參數(shù)均共享。
- 只共享Multi-Head Attention層參數(shù)。
- 只共享Feed Forward層參數(shù)。
- 每M層為一組,組內(nèi)共享所有參數(shù)。
實驗結(jié)果如下圖所示,ALBERT-base在只共享Multi-Head Attention層參數(shù)時可以取得最好的效果,幾乎沒有任何負面影響,甚至在某些任務(wù)上還能有增益??上У氖牵琈ulti-Head Attention層參數(shù)并不是ALBERT-base的主要參數(shù)部分,即參數(shù)存儲空間壓縮力度不夠。所有層的參數(shù)都共享和只共享Feed Forward層參數(shù),均有性能上可控范圍內(nèi)的損失,但是壓縮力度很強。對于每
M
M
M層一組的共享方法,實驗結(jié)果表明,
M
M
M越小,性能越好(當
M
M
M為1時為不共享),但是參數(shù)壓縮力度也越小。
最終,ALBERT選擇了“性價比”最高的共享所有層參數(shù)的方案,犧牲了一定的性能,換來了極大的參數(shù)存儲空間壓縮比。
SOP訓(xùn)練方法
SOP與NSP一樣,也是一種以句對分類標簽為訓(xùn)練目標的訓(xùn)練方法,其與NSP的差別在于負樣本的選取。SOP挑選正樣本的方式與NSP一樣,均為連續(xù)的兩個句子,但與NSP隨機挑選毫無語義關(guān)系的句子作為負樣本不同,SOP將正樣本的兩個句子交換位置,作為負樣本。為了證明SOP訓(xùn)練方法的有效性,ALBERT也做了一組對比實驗,分別探究了只使用MLM訓(xùn)練方法、使用“MLM+NSP”訓(xùn)練方法和使用“MLM+SOP”訓(xùn)練方法的性能對比,如下圖所示。實驗結(jié)果表明,在二分類任務(wù)中,額外使用SOP訓(xùn)練方法得到的模型在NSP任務(wù)上表現(xiàn)較好(78.9%的準確率),而額外使用NSP訓(xùn)練方法得到的模型在SOP任務(wù)上表現(xiàn)得一般(52.0%的準確率)。在各項任務(wù)的平均準確率上,使用NSP與不使用NSP訓(xùn)練方法的模型基本一致,而使用SOP訓(xùn)練的模型會略勝一籌。
綜上所述,ALBERT對Embedding層和Transformer Block層分別使用了低秩分解和參數(shù)共享的方法,大大減少了參數(shù)存儲空間,使得一個超大模型可以順利地在單塊GPU上訓(xùn)練與部署。值得一提的是,ALBERT減少的是參數(shù)的存儲空間,并沒有減少模型在訓(xùn)練及推理過程中的計算量。在訓(xùn)練過程中,由于需要梯度更新的參數(shù)大大減少,訓(xùn)練速度有所加快,但是在下游任務(wù)達到同樣表現(xiàn)時,ALBERT的計算量遠超參數(shù)更大的BERT,導(dǎo)致其推理速度更慢。雖然ALBERT沒有減少整體的運算量,但是在模型與訓(xùn)練數(shù)據(jù)規(guī)模與日俱增的“軍備”競賽中,參數(shù)共享是一個非常值得重視的工作。未來,配合蒸餾等方法,其模型參數(shù)壓縮比和性能會更好。文章來源:http://www.zghlxwxcb.cn/news/detail-498351.html
參考文獻:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 車萬翔, 崔一鳴, 郭江. 自然語言處理:基于預(yù)訓(xùn)練模型的方法[M]. 電子工業(yè)出版社, 2021.
[4] 邵浩, 劉一烽. 預(yù)訓(xùn)練語言模型[M]. 電子工業(yè)出版社, 2021.
[5] 何晗. 自然語言處理入門[M]. 人民郵電出版社, 2019
[6] Sudharsan Ravichandiran. BERT基礎(chǔ)教程:Transformer大模型實戰(zhàn)[M]. 人民郵電出版社, 2023
[7] 吳茂貴, 王紅星. 深入淺出Embedding:原理解析與應(yīng)用實戰(zhàn)[M]. 機械工業(yè)出版社, 2021.文章來源地址http://www.zghlxwxcb.cn/news/detail-498351.html
到了這里,關(guān)于深入理解深度學(xué)習——BERT派生模型:ALBERT(A Lite BERT)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!