KDD 2021 | 用NAS實(shí)現(xiàn)任務(wù)無關(guān)且可動態(tài)調(diào)整尺寸的BERT壓縮
編者按:如今,基于 Transformer 的大規(guī)模預(yù)訓(xùn)練語言模型,如 BERT、XLNE、RoBERTa 和 GPT-3 等,已經(jīng)在很多自然語言處理任務(wù)中都取得了十分驚人的效果。但是巨大的模型尺寸,使其在眾多不同的下游任務(wù)中進(jìn)行部署時非常困難。而且由于存在大量復(fù)雜的場景以及不同的下游任務(wù),單獨(dú)為不同場景設(shè)計(jì)一種壓縮過的 BERT 模型既耗時又耗力。
因此,微軟亞洲研究院的研究員們針對這些問題展開了研究,并提出了 NAS-BERT 技術(shù)。相關(guān)研究論文“NAS-BERT:Task-Agnostic and Adaptive-Size BERT Compression with Neural Architechture Search”已被跨學(xué)科數(shù)據(jù)科學(xué)會議 KDD 2021 收錄。歡迎感興趣的讀者點(diǎn)擊閱讀原文,查看論文全文。
不同設(shè)備往往對訓(xùn)練的模型有不同的要求,如模型占用內(nèi)存的大小、推理時延等。為了滿足設(shè)備的要求,技術(shù)人員往往需要對大規(guī)模的預(yù)訓(xùn)練模型進(jìn)行壓縮處理。但是由于存在大量復(fù)雜的場景和不同的下游任務(wù),專門為每一種場景設(shè)計(jì)壓縮過的BERT模型,需要投入大量的人力和計(jì)算資源。
對此,微軟亞洲研究院的研究員們提出了 NAS-BERT 技術(shù)(相關(guān)論文已發(fā)表在 KDD 2021 大會上),可以直接在上游預(yù)訓(xùn)練任務(wù)中進(jìn)行壓縮訓(xùn)練,使壓縮模型不再依賴于下游的具體任務(wù)。并且 NAS-BERT 只需通過一次搜索就可以直接產(chǎn)生不同尺寸的模型,進(jìn)而滿足不同設(shè)備的要求。所以即使是資源受限的設(shè)備,也可以動態(tài)選擇合適的架構(gòu)。相較于傳統(tǒng)方法,NAS-BERT 極大地提高了訓(xùn)練效率。
論文鏈接:https://arxiv.org/abs/2105.14444
如表1所示,之前大部分的壓縮工作都是針對具體任務(wù)本身而設(shè)計(jì)方法實(shí)現(xiàn)的。比如,DisilBERT 等工作會直接在上游模型進(jìn)行壓縮學(xué)習(xí),對下游任務(wù)無關(guān),但不能適應(yīng)各種不同受限資源的場景。DynaBERT 則可以在下游任務(wù)中通過一次訓(xùn)練產(chǎn)生多種不同大小的模型,以達(dá)到動態(tài)調(diào)整尺寸的目的。而 NAS-BERT 與其他幾種工作不同,它可以同時做到任務(wù)無關(guān)和動態(tài)調(diào)整尺寸,并且達(dá)到優(yōu)越的性能。
表1:之前的 BERT 壓縮工作
為了讓 NAS-BERT 實(shí)現(xiàn)上述目的,研究員們直接在上游預(yù)訓(xùn)練階段對 NAS-BERT 進(jìn)行了架構(gòu)搜索(NAS)與訓(xùn)練,并且一次性搜索出各種大小的模型,以方便各種場景的部署。通過嘗試架構(gòu)層面的組合方式,NAS-BERT 不僅能夠探索模型本身的潛力,還可以搜索出更加優(yōu)越的架構(gòu)。
具體而言,NAS-BERT 首先在上游預(yù)訓(xùn)練任務(wù)上訓(xùn)練一個超網(wǎng)絡(luò)。其中,超網(wǎng)絡(luò)中的一個有向無環(huán)圖就是一個架構(gòu),不同的架構(gòu)在超網(wǎng)絡(luò)中共享參數(shù)來降低訓(xùn)練成本。然后研究員們再通過自動架構(gòu)搜索技術(shù)去訓(xùn)練這個超網(wǎng)絡(luò)。由于超網(wǎng)絡(luò)中包括各種尺寸的模型,因此可以覆蓋到各種不同的模型大小。最后,在用超網(wǎng)絡(luò)去評價每個架構(gòu)的性能并選擇出優(yōu)越的架構(gòu)。
然而在 BERT 預(yù)訓(xùn)練任務(wù)上做自動架構(gòu)搜索是具有挑戰(zhàn)性的。其主要原因有:1. BERT 預(yù)訓(xùn)練本身收斂慢并且需要巨大的計(jì)算資源;2. 巨大的搜索空間會進(jìn)一步導(dǎo)致訓(xùn)練超網(wǎng)絡(luò)變得困難。為了解決這兩個問題,NAS-BERT 主要采用了模塊化搜索和逐漸縮小搜索空間的技術(shù)。同時,為了在縮小搜索空間的基礎(chǔ)上能夠給出各種不同的架構(gòu),NAS-BERT 還使用了分桶搜索把搜索空間分成眾多不同的桶,不同桶中的架構(gòu)有著不同的模型大小和延遲,桶中的架構(gòu)相互競爭,從而選出最優(yōu)越的架構(gòu)。并且不同桶的架構(gòu)通過權(quán)重共享,以降低架構(gòu)搜索的代價。通過使用這些技術(shù),NAS-BERT 才得以快速地搜索出各種不同的優(yōu)越架構(gòu)。
搜索空間的架構(gòu)設(shè)計(jì)
NAS-BERT 的架構(gòu)設(shè)計(jì)(如圖1所示),首先使用了一個預(yù)訓(xùn)練的 BERT 模型作為教師模型,然后用教師模型指導(dǎo)超網(wǎng)絡(luò)的搜索。為了降低搜索空間,NAS-BERT 把學(xué)生模型(超網(wǎng)絡(luò))分成了幾個不同的搜索模塊,然后每個搜索模塊會進(jìn)行單獨(dú)的訓(xùn)練。超網(wǎng)絡(luò)模塊的監(jiān)督信號由教師模型的相應(yīng)模塊給出。換言之,就是給定一批數(shù)據(jù),可以得到教師模型的每個模塊輸入輸出的隱藏表征,再用這些輸入輸出的隱藏表征去訓(xùn)練搜索模塊。這樣,不同的搜索模塊可以分開搜索且并行訓(xùn)練,指數(shù)級地降低了搜索空間。
對于每一個搜索模塊,網(wǎng)絡(luò)設(shè)計(jì)如圖1(a)所示,網(wǎng)絡(luò)的每一層包括了所有可能的搜索的候選操作(例如卷積、注意力網(wǎng)絡(luò))。一個架構(gòu)就是一條從底部到最上層的單向路徑,不同的架構(gòu)(路徑)共享權(quán)重以降低訓(xùn)練所需要的資源。
圖1:NAS-BERT 方法框架圖
為了使搜索的架構(gòu)多樣化,研究員們分別采用了三種不同的操作方法:注意力網(wǎng)絡(luò) MHA,前饋網(wǎng)絡(luò) FFN 和可分離卷積 CONV。MHA 和 FFN 是 Transformer 模型中的操作方法,采用這兩種方法,可以使 Transformer 容納在搜索空間中。由于 CONV 已經(jīng)在很多自然語言任務(wù)中取得了不錯的效果,因此研究員們也將其加入了搜索空間,以探索卷積和其他操作組合的潛力(操作設(shè)計(jì)請見圖2)。同時,為了使搜索的架構(gòu)具有各種不同的模型大小,研究員們讓每一種操作都有128/192/256/384/512這5種不同的隱藏層大小,如表2所示。與此同時,還加入了 Identity(無操作),使其能搜索出各種不同層的架構(gòu)。
表2:操作集合的設(shè)計(jì)
圖2:卷積操作的設(shè)計(jì)
通過采用這種設(shè)計(jì),可以使一個6層的搜索模塊中有超過20萬種可能的架構(gòu)。如果采用4個搜索模塊,架構(gòu)的組合方式將超過10^20種。為了訓(xùn)練這個超網(wǎng)絡(luò),每次得到一批數(shù)據(jù),就要隨機(jī)采樣一個架構(gòu)進(jìn)行訓(xùn)練,進(jìn)而監(jiān)督和學(xué)習(xí)教師模塊的隱藏表征。由于搜索模塊采樣出來的架構(gòu)輸入輸出的隱藏層大小可能和教師模塊不一致,所以可以直接引入一個可學(xué)習(xí)的線性層進(jìn)行轉(zhuǎn)換,并和超網(wǎng)絡(luò)一起訓(xùn)練。
漸進(jìn)架構(gòu)搜索,分桶設(shè)計(jì)與模型選擇
雖然分模塊搜索已經(jīng)大大減小了搜索空間,但是訓(xùn)練超網(wǎng)絡(luò)依然需要很長的時間收斂。而且大量的模型在競爭有限的資源,將導(dǎo)致每個模型的評估結(jié)果都不準(zhǔn)確,嚴(yán)重影響了架構(gòu)搜索的排序性能。所以研究員們在訓(xùn)練過程中的每一輪 epoch 結(jié)束時,會把搜索空間中一些沒有希望的架構(gòu)裁剪掉,然后在裁剪后的搜索空間上繼續(xù)訓(xùn)練。通過這種方式,可以將更多的計(jì)算資源給到更有希望的架構(gòu),進(jìn)而得到更加準(zhǔn)確的評估,這既減少了資源的浪費(fèi),又加快了搜索過程。
然而直接對整個搜索空間進(jìn)行裁剪,會導(dǎo)致無法得到大量不同大小的架構(gòu)。因?yàn)槌W(wǎng)絡(luò)在搜索過程中可能偏向于大模型或者收斂快的模型,所以無約束的裁剪會使得最后得到的架構(gòu)大小趨于相同?;诖?,研究員們提出了分桶裁剪的方法,并且采用具體的數(shù)字為例,闡述了在分桶裁剪過程中,搜索空間是如何變化的。
首先研究員們將搜索空間均勻地分成10個桶,每個桶的架構(gòu)被約束在不同的參數(shù)量和延遲下。盡管不同的架構(gòu)落在不同的桶里,但是在訓(xùn)練的時候,它們的參數(shù)仍然是共享的。在每個迭代訓(xùn)練結(jié)束的時候,研究員們會隨機(jī)從每個桶里采樣出2000個架構(gòu),同時使用超網(wǎng)絡(luò)評價它們在驗(yàn)證集上的分?jǐn)?shù),并刪除一半的架構(gòu)。通過重復(fù)這個過程,可以不斷地收縮搜索空間,直到每個桶里只剩下10個架構(gòu)。這樣對于一個搜索模塊而言,最終就得到了100個架構(gòu)。假設(shè)共有4個搜索模塊,那么就有100^4種組合方式,每一種組合方式都是一個完整的架構(gòu)。
由于每個搜索模塊中的100個架構(gòu)來自不同的桶,因此它們有著顯著不同的大小和延遲。所以通過組合不同的搜索模塊而得到的100^4種架構(gòu),也具有顯著不同的模型大小和延遲。
為了評估每個架構(gòu)的性能,研究員們會首先評價每個搜索模塊中100個架構(gòu)在驗(yàn)證集上的損失。然后用不同模塊的損失直接加和作為組合架構(gòu)的性能。通過這種方式,僅僅通過4*100次驗(yàn)證集測試,就可以粗略得到所有架構(gòu)的性能。該方法對于延遲的評估也是類似的,即先測量每個搜索模塊內(nèi)架構(gòu)的延遲,然后再用不同模塊的延遲加和作為整個架構(gòu)的延遲。
所以當(dāng)給定任何一種關(guān)于模型大小和延遲的約束時,可以通過查表的方式快速找到性能最高的架構(gòu)。這種架構(gòu)本身是在上游預(yù)訓(xùn)練任務(wù)中挑選出來的,因此與下游任務(wù)無關(guān)。
實(shí)驗(yàn)結(jié)果
為了評估搜索得到的架構(gòu)性能,研究員們重新在上游任務(wù)上訓(xùn)練了這個架構(gòu),然后在各種下游任務(wù)中測試了模型的性能。
在搜索階段使用的教師模型是 BERT 110M 的模型。教師模型和搜索出來的架構(gòu)都是在 BookCorpus+English Wikipedia (16GB) 數(shù)據(jù)上進(jìn)行了預(yù)訓(xùn)練。為了和 BERT 的12層 Transformer 對齊,超網(wǎng)絡(luò)包含了24個子層(每一個 Transformer 層等于一層 MHA 加一層FFN)。研究員們在大量的下游任務(wù)上評估搜索出來的架構(gòu)的性能,包括 GLUE 和 SQuAD 數(shù)據(jù)集,并選擇了5M,10M,30M,60M參數(shù)量的架構(gòu)為例,來展示搜索出來的架構(gòu)效果。
研究員們首先把 NAS-BERT 搜索出來的架構(gòu)和手工設(shè)計(jì)的 BERT 架構(gòu)進(jìn)行了對比。從表3中可以看到,NAS-BERT 在各種模型大小及延遲條件下,都超過了手工設(shè)計(jì)的 BERT 模型。
表3:NAS-BERT 和 BERT 對比
進(jìn)一步,研究員們將 NAS-BERT 和之前的模型壓縮工作進(jìn)行對比。之前的模型壓縮工作主要采用了多種蒸餾技巧和訓(xùn)練方式。而 NAS-BERT 只使用了簡單的兩階段蒸餾來突出其搜索出的架構(gòu)優(yōu)勢,不使用復(fù)雜的蒸餾技術(shù)或訓(xùn)練方法,如注意力蒸餾,逐層替換等。從表4可以看到,NAS-BERT 超過了之前的方法,證明了架構(gòu)本身的優(yōu)越性。
表4:NAS-BERT 和之前的 BERT 壓縮工作對比
為了證明縮小搜索空間方法的有效性,研究員們又做了一組實(shí)驗(yàn)——與不使用逐漸縮小搜索空間進(jìn)行對比。從圖3的損失函數(shù)曲線來看,使用逐漸縮小搜索空間顯著加快了收斂速度。從最終搜索得到的架構(gòu)來看,使用逐漸縮小搜索空間能夠幫助搜索到更好的架構(gòu)。
圖3:逐漸縮小搜索空間的分離實(shí)驗(yàn)
同時,研究員們還探究了縮小搜索空間的其他方法。與從架構(gòu)層面縮小搜索空間不同,研究員們嘗試了從操作層面縮小搜索空間的方法(具體見論文)。從表5可以看到,從架構(gòu)層面縮小搜索空間更為準(zhǔn)確,因此能搜索到更好的架構(gòu)。
表5:不同逐漸縮小搜索空間的分離試驗(yàn)
最后,研究員們使用了各種不同的訓(xùn)練方式來訓(xùn)練 NAS-BERT,并將其與 BERT 模型對比,以證明搜索的架構(gòu)的魯棒性。并且研究員們還嘗試了在訓(xùn)練過程中,在上游預(yù)訓(xùn)練階段或下游微調(diào)階段或兩者都有的情況下,觀察 NAS-BERT 搜索的架構(gòu)的魯棒性。從表6中可以看到,NAS-BERT 在各種訓(xùn)練配置上,都能顯著超過手工設(shè)計(jì)的 BERT 架構(gòu)。
表6:不同訓(xùn)練方式的分離實(shí)驗(yàn)
表7展示了部分 NAS-BERT 搜索得到的架構(gòu)。可以發(fā)現(xiàn),搜索出來的架構(gòu)都由不同的操作且復(fù)雜的方式組成,這證明了 NAS-BERT 能夠搜索出更加新穎的新架構(gòu)。
表7:部分 NAS-BERT 搜索得到的架構(gòu)
微軟亞洲研究院的研究員們在本篇論文中提出的 NAS-BERT,是一種用自動架構(gòu)搜索方法實(shí)現(xiàn)任務(wù)無關(guān)且動態(tài)調(diào)整尺寸的 BERT 壓縮技術(shù)。其擁有新穎的搜索空間、卷積、注意力、前饋網(wǎng)絡(luò)以及不同的隱藏層大小。加上高效的搜索方法,NAS-BERT 可以探索出不同操作的復(fù)雜組合方式得到模型的潛力。研究員們通過大量的比較和分離實(shí)驗(yàn),也證明了 NAS-BERT 搜索得到架構(gòu)的有效性。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。
高壓發(fā)生器相關(guān)文章:高壓發(fā)生器原理