EdgeBERT:极限压缩,比ALBERT再轻13倍!树莓派上跑BERT的日子要来了?
本文首發(fā)于NLP寶藏公號(hào)【夕小瑤的賣萌屋】,瘋狂暗示!
這個(gè)世界上有兩種極具難度的工程:第一種是把很平常的東西做到最大,例如把語言模型擴(kuò)大成能夠?qū)懺妼懳膶懘a的GPT-3;而另一種恰恰相反,是把很平常的東西做到最小。對(duì)于NLPer來說,這種“小工程”最迫在眉睫的施展對(duì)象非BERT莫屬。
從18年那個(gè)109M參數(shù)的BERT,到52M參數(shù)的蒸餾后的DistilBERT,再到14.5M參數(shù)的蒸餾更多層的TinyBERT,最后到12M參數(shù)的層級(jí)共享的ALBERT,曾經(jīng)那個(gè)在集群上加載參數(shù)都費(fèi)勁的BERT現(xiàn)在甚至已經(jīng)可以跑在手機(jī)平臺(tái)上了。當(dāng)我們?yōu)锽ERT的輕量化歡呼雀躍之時(shí),有這樣一群人站了出來——只是手機(jī)端可不夠!他們的理想,是讓BERT跑在物聯(lián)網(wǎng)設(shè)備上,跑在低功耗芯片上,跑在我們能觸及的每一個(gè)電子器件上!
這樣一群來自哈佛/塔夫茨/HuggingFace/康奈爾的軟件和硬件極客們,此刻已披上了法袍,化身為為BERT極限瘦身的煉金術(shù)士,向著這個(gè)看似不可能的目標(biāo)添加著許多讓人意想不到的配方…
論文題目:
EdgeBERT: Optimizing On-Chip Inference for Multi-Task NLP
論文鏈接:
https://arxiv.org/pdf/2011.14203.pdf
Arxiv訪問慢的小伙伴也可以在【夕小瑤的賣萌屋】訂閱號(hào)后臺(tái)回復(fù)關(guān)鍵詞【0105】下載論文PDF~
配方基底:ALBERT
出處:ALBERT: A Lite BERT for Self-supervised Learning of Language Representations(ICLR'20)
鏈接:https://arxiv.org/pdf/1909.11942.pdf
EdgeBERT是在ALBERT的基礎(chǔ)上進(jìn)行優(yōu)化的。
ICLR'20上谷歌提出的ALBERT是目前最佳的BERT壓縮方案。相比于過去利用知識(shí)蒸餾從原始BERT模型得到壓縮模型(例如DistilBERT [1]、TinyBERT [2])和利用浮點(diǎn)數(shù)量化得到壓縮模型(例如Q8BERT [3]),ALBERT選擇直接拋棄BERT的預(yù)訓(xùn)練參數(shù),只繼承BERT的設(shè)計(jì)思想。正所謂不破不立,繼承BERT靈魂的ALBERT僅用12M參數(shù)就取得了和其他BERT變體相當(dāng)?shù)男阅堋?/p>
ALBERT對(duì)BERT的設(shè)計(jì)采取了以下三點(diǎn)改進(jìn):
- 嵌入層分解:BERT中,WordPiece的嵌入維度和網(wǎng)絡(luò)中隱藏層維度一致。作者提出,嵌入層編碼的是上下文無關(guān)信息,而隱藏層則在此基礎(chǔ)上增加了上下文信息,所以理應(yīng)具有更高的維數(shù);同時(shí),若嵌入層和隱藏層維度一致,則在增大隱藏層維數(shù)時(shí)會(huì)同時(shí)大幅增加嵌入層參數(shù)量。ALBERT因此將嵌入層進(jìn)行矩陣分解,引入一個(gè)額外的嵌入層 。設(shè)WordPiece詞匯表規(guī)模為 ,嵌入層維度為 ,隱藏層維度為 ,則嵌入層參數(shù)量可由 降低為 。
- 參數(shù)共享:BERT中,每個(gè)Transformer層參數(shù)均不同。作者提出將Transformer層的所有參數(shù)進(jìn)行層間共享,從而將參數(shù)量壓縮為僅有一層Transformer的量級(jí)。
- 上下句預(yù)測(cè)任務(wù)→句序預(yù)測(cè)任務(wù):BERT中,除語言模型的MLM任務(wù)外還進(jìn)行了上下句預(yù)測(cè)任務(wù),判斷句2是否為句1的下一句,然而該任務(wù)被RoBERTa和XLNET等模型證實(shí)效果一般。作者提出將其替換為句序預(yù)測(cè)任務(wù),判斷句2和句1之間的句子順序來學(xué)習(xí)文本一致性。
ALBERT的設(shè)計(jì)相當(dāng)成功,成為了壓縮BERT的經(jīng)典范例,而為了做到最極限壓縮BERT,以ALBERT作為起點(diǎn)確實(shí)是個(gè)不錯(cuò)的主意。ALBERT已經(jīng)如此強(qiáng)大,EdgeBERT又能壓到什么程度?作者一上來就用一張?jiān)赒QP上的內(nèi)存占用/運(yùn)算量/性能比較圖吊足了讀者的胃口。(注意:縱坐標(biāo)的內(nèi)存占用量是對(duì)數(shù)刻度!)
本文對(duì)于ALBERT的利用除了作為初始化參數(shù)外,還在對(duì)下游任務(wù)做fine-tune時(shí)利用已經(jīng)fine-tune好的ALBERT作為teacher進(jìn)行知識(shí)蒸餾,來進(jìn)一步提升模型性能。
初級(jí)配方:算法優(yōu)化
1. 基于熵的提前退出機(jī)制
出處:DeeBERT: Dynamic Early Exiting for Accelerating BERT Inference(ACL'20)
鏈接:https://arxiv.org/pdf/2004.12993.pdf
ALBERT雖好,但Transformer太深了,算起來太慢,讓他變淺一點(diǎn)怎么樣?
ACL'20的DeeBERT恰好就提出了一種動(dòng)態(tài)的提前退出機(jī)制(Early Exit)。這一機(jī)制的設(shè)計(jì)是希望讓簡(jiǎn)單的文本經(jīng)過較少的運(yùn)算,而復(fù)雜的文本經(jīng)過更多的運(yùn)算。
實(shí)現(xiàn)上,DeeBERT向
層的BERT模型添加了 個(gè)“出口層”分類器(Early Exit Off-Ramps)。出口層分類器 被放置在第 和 層Transformer之間,作為判斷第i層Transformer的信息是否足以進(jìn)行推斷的標(biāo)志。進(jìn)行推斷時(shí),從最底層的分類器開始逐層計(jì)算出口層分類器的熵,當(dāng)某一層的出口層分類器熵小于某個(gè)閾值時(shí),則將該出口層分類器結(jié)果作為模型結(jié)果,省去后續(xù)層的計(jì)算。上圖表現(xiàn)的是不同的熵閾值在MNLI、QQP、SST-2、QNLI四個(gè)數(shù)據(jù)集上的平均退出層數(shù)、理論運(yùn)行時(shí)間節(jié)省和相應(yīng)的準(zhǔn)確度。添加提前退出機(jī)制后,在Acc損失1個(gè)百分點(diǎn)時(shí),能夠在這四個(gè)數(shù)據(jù)集上分別降低30%、45%、54%和36%的理論運(yùn)行時(shí)間;在Acc損失5個(gè)百分點(diǎn)時(shí),能將在這四個(gè)數(shù)據(jù)集上的理論運(yùn)行時(shí)間的降低進(jìn)一步降低至44%、62%、78%和53%。
2. 動(dòng)態(tài)注意力范圍
出處:Adaptive Attention Span in Transformers(ACL'19)
鏈接:https://arxiv.org/pdf/1905.07799.pdf
ALBERT雖好,但Attention范圍太廣了,算起來太慢,讓他變窄一點(diǎn)怎么樣?
ACL'19的Adaptive Attention提出的動(dòng)態(tài)注意力范圍正是試圖通過這種方法減少注意力計(jì)算的。在Transformer的多頭自注意力機(jī)制中,不同head對(duì)應(yīng)的注意力范圍并不一致,而讓每一個(gè)head都對(duì)所有token進(jìn)行注意力運(yùn)算無疑增添了無用開銷。為此,Adaptive Attention為每一個(gè)head添加一個(gè)不同的mask,使得每個(gè)token只能對(duì)周邊的token計(jì)算注意力,從而降低矩陣運(yùn)算的開銷。
具體地,mask函數(shù)
基于兩個(gè)token之間的距離為注意力機(jī)制的權(quán)重計(jì)算添加了soft masking。注意力機(jī)制中的權(quán)重 變?yōu)?#xff1a;其中
為控制soft程度的超參數(shù), 為序列截止到token 的長(zhǎng)度(原文采用了Transformer Decoder結(jié)構(gòu)學(xué)習(xí)語言模型,故每個(gè)token只能于自己之前的token計(jì)算注意力。在EdgeBERT中沒有提及公式,不過根據(jù)模型圖的結(jié)構(gòu)來看,分母應(yīng)修改為對(duì)整個(gè)序列求和)。mask函數(shù)中的 為mask的邊界,此邊界值會(huì)跟隨注意力的head相關(guān)參數(shù)和當(dāng)前輸入序列變化:對(duì)于注意力機(jī)制中的每一個(gè)head ,有 ,其中 、 可訓(xùn)練, 為sigmoid函數(shù)。EdgeBERT甚至對(duì)Adaptive Attention又進(jìn)一步做了簡(jiǎn)化:
連算都不用算了,直接給每一個(gè)head賦一個(gè)可學(xué)習(xí)的 ,連輸入序列都不考慮了,多出來的參數(shù)只有12個(gè) (因?yàn)橛?2個(gè)head)。那么,這樣做的結(jié)果如何呢?作者將所有序列都pad/trunc到128長(zhǎng)度,經(jīng)過實(shí)驗(yàn),得到了一個(gè)驚人的結(jié)果:表中展示的是經(jīng)過優(yōu)化后各個(gè)head的
值,和模型在MNLI/QQP/SST-2/QNLI四個(gè)任務(wù)上的準(zhǔn)確度。在一大半head幾乎完全被mask掉( )之后,模型居然只在這幾個(gè)任務(wù)上掉了0.5甚至0.05的準(zhǔn)確度!而這一方法也為模型帶來了最高 的計(jì)算量降低。3. 一階網(wǎng)絡(luò)剪枝
出處:Movement Pruning: Adaptive Sparsity by Fine-Tuning(NeurIPS'20)
鏈接:https://arxiv.org/pdf/2005.07683.pdf
ALBERT雖好,但參數(shù)存起來占用的內(nèi)存太長(zhǎng)了,開銷太大,讓他變短一點(diǎn)怎么樣?
這里的網(wǎng)絡(luò)剪枝方式使用到了NeurIPS'20的一篇針對(duì)模型Fine-tune過程的剪枝算法。該論文的作者提出,傳統(tǒng)的零階網(wǎng)絡(luò)剪枝(即給模型里的參數(shù)絕對(duì)值設(shè)定一個(gè)閾值,高于它的保留,低于它的置零)的方法并不適用于遷移學(xué)習(xí)場(chǎng)景,因?yàn)樵搱?chǎng)景下模型參數(shù)主要受原始模型影響,卻需要在目標(biāo)任務(wù)上進(jìn)行fine-tune和測(cè)試,所以直接根據(jù)模型參數(shù)本身剪枝可能會(huì)損失源任務(wù)或目標(biāo)任務(wù)的知識(shí)。與此相反,作者提出一種基于Fine-tune過程中的一階導(dǎo)數(shù)進(jìn)行剪枝的Movement Pruning:盡可能保留fine-tune過程中更加偏離0的參數(shù)。
具體地:對(duì)于模型參數(shù)
,為其賦予同樣size的重要性分?jǐn)?shù) ,則剪枝mask 。前向傳播過程中,神經(jīng)網(wǎng)絡(luò)利用加mask的參數(shù)計(jì)算輸出的各分量
: 。反向傳播過程中,利用Straight-Through Estimator[4]的思想,將
省略近似得到損失函數(shù) 對(duì)重要性分?jǐn)?shù) 的梯度:對(duì)模型參數(shù),有:
將上述兩個(gè)式子代換后,省略
的mask矩陣 后可得:根據(jù)梯度下降,當(dāng)
時(shí),重要性 增大,此時(shí) 與 異號(hào)。這表示,只有當(dāng)在反向傳播時(shí)為正的參數(shù)變得更大或?yàn)樨?fù)的參數(shù)變得更小時(shí)才會(huì)得到更大的重要性分?jǐn)?shù),避免被剪枝。4. 零階網(wǎng)絡(luò)剪枝
出處:Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding(ICLR'16)
鏈接:https://arxiv.org/pdf/1510.00149.pdf
變短是變短了,但感覺這剪得還不夠好啊,再換一種算法讓它更短一點(diǎn)怎么樣?
這種方法的做法非常簡(jiǎn)單:給模型里的參數(shù)設(shè)定一個(gè)絕對(duì)值閾值,絕對(duì)值高于它的保留,絕對(duì)值低于它的置零。由于方法實(shí)在太過簡(jiǎn)單,不用公式也能很容易理解的吧(=?ω?=)
一階和零階網(wǎng)絡(luò)剪枝的效果對(duì)比如上圖所示(MvP:一階網(wǎng)絡(luò)剪枝,MaP:零階網(wǎng)絡(luò)剪枝)。在參數(shù)稀疏程度更高時(shí),一階剪枝的效果更好,其他情況下是簡(jiǎn)單的零階剪枝更有效。同時(shí),研究還發(fā)現(xiàn),當(dāng)剪掉95%的嵌入層參數(shù)時(shí),模型竟然在4個(gè)任務(wù)上都保持了至少95%的準(zhǔn)確度。
5.動(dòng)態(tài)浮點(diǎn)數(shù)量化
出處:AdaptivFloat: A Floating-point based Data Type for Resilient Deep Learning Inference(arXiv Preprint)
鏈接:https://arxiv.org/pdf/1909.13271.pdf
誒,怎么還有?網(wǎng)絡(luò)的運(yùn)算和存儲(chǔ)過程從深度、寬度和長(zhǎng)度進(jìn)行了全方位的優(yōu)化,模型還能再輕?
的確,到此為止,一般的煉丹師已經(jīng)看著自己三維裁剪過的模型感到成就感滿滿了,但這距離讓BERT跑遍所有設(shè)備的目標(biāo)還差得遠(yuǎn)。以下的部分就要開始深入一般NLP工程師見不到的第四個(gè)維度——硬件維度了。在深入硬件優(yōu)化之前,先來道偏軟件的開胃菜,看看如何在浮點(diǎn)數(shù)量化上下手優(yōu)化存儲(chǔ)吧!
我們平時(shí)在考慮利用浮點(diǎn)數(shù)特性進(jìn)行計(jì)算加速時(shí),最先考慮的是使用FP16混合精度,雖然有效,但畢竟損失了信息,效果也多多少少會(huì)受影響。既想保留精度又想加速訓(xùn)練減小存儲(chǔ),那就只有深入底層,修改浮點(diǎn)數(shù)的表示方法了!
這正是AdaptivFloat的初衷:設(shè)計(jì)一種更加適合深度學(xué)習(xí)場(chǎng)景的浮點(diǎn)數(shù)數(shù)據(jù)類型。不過,要講明白AdaptivFloat數(shù)據(jù)類型需要涉及到一些與機(jī)器學(xué)習(xí)無關(guān)的知識(shí)。
根據(jù)IEEE 754二進(jìn)制浮點(diǎn)數(shù)標(biāo)準(zhǔn),一個(gè)浮點(diǎn)數(shù)的二進(jìn)制表示由三個(gè)域組成:符號(hào)位(Sign,S)、指數(shù)偏移值(Exponent bias,E)和分?jǐn)?shù)值(Fraction,或Mantissa,F)。由此,一個(gè)數(shù)可以表示為
。這時(shí)聰明的你可能發(fā)現(xiàn)有什么不對(duì)勁:按照表示無符號(hào)整形的方法取指數(shù)偏移值只能取出正數(shù)啊!2的負(fù)次冪怎么辦!這正是為什么稱其為“指數(shù)偏移值”:它并不代表實(shí)際上2的指數(shù),而是在其基礎(chǔ)上需要加一個(gè)常數(shù)作為2的指數(shù):
。我們常用的浮點(diǎn)數(shù)保證了
的選取能夠使得 在數(shù)軸兩側(cè)分布幾乎均等(例如在32位浮點(diǎn)數(shù)FP32中,指數(shù)范圍為-126至+127),但這樣的數(shù)作為機(jī)器學(xué)習(xí)模型的參數(shù)顯然有些不太合適:為了增加小數(shù)的精度,我們甚至要允許 這樣顯然不會(huì)出現(xiàn)的數(shù)也能表示,這真的不是在浪費(fèi)內(nèi)存?AdaptivFloat的最關(guān)鍵動(dòng)機(jī)正在于此:根據(jù)模型參數(shù)動(dòng)態(tài)修改
。所謂動(dòng)態(tài)體現(xiàn)在每個(gè)Tensor都能得到量身定做的 。方法也很簡(jiǎn)單,找到Tensor里最大的一個(gè)數(shù),讓它能被指數(shù)范圍恰好覆蓋到就好。不過說來簡(jiǎn)單,為了實(shí)現(xiàn)這一方法需要配套地對(duì)現(xiàn)有浮點(diǎn)數(shù)表示方法進(jìn)行許多其他修改,感興趣的話可以去看看AdaptivFloat原文,此外IEEE 754標(biāo)準(zhǔn)[5]同樣也可以作為參考哦~上圖的結(jié)果中,Bit Width是浮點(diǎn)數(shù)的總位數(shù),后五行在模型中使用了AdaptivFloat并將指數(shù)偏移值限制為3個(gè)bit。不比不知道,誰能想到修改個(gè)量化方式居然直接用8bit在四個(gè)數(shù)據(jù)集上都干翻了FP32?!不僅節(jié)省了3/4的內(nèi)存,還取得了更好的性能,或許這就是吹毛求疵挑戰(zhàn)極限的極客們的浪漫?
高級(jí)配方:存儲(chǔ)介質(zhì)選擇
光軟件優(yōu)化可不夠!如果軟件優(yōu)化就夠了的話,還買什么SSD,換什么GPU(不)
EdgeBERT的目的,是盡可能降低邊緣計(jì)算場(chǎng)景中使用BERT的推理延遲和耗能。為了最大限度地降低推理延遲,需要為網(wǎng)絡(luò)中不同的組成部分根據(jù)其增刪改查的需求選取符合最大效能的存儲(chǔ)介質(zhì)。
BERT類模型的一大特點(diǎn),在于它們都是預(yù)訓(xùn)練模型:這類模型并非開箱即用,而是需要在目標(biāo)任務(wù)上fine-tune后才能使用。這使得這類模型天生地存在著兩類存儲(chǔ)需求:
- 嵌入層:保存了Embedding向量。EdgeBERT在進(jìn)行下游任務(wù)fine-tune時(shí)一般不對(duì)嵌入層進(jìn)行修改。這類參數(shù)相當(dāng)于只讀參數(shù),只對(duì)快速讀取有較高要求,同時(shí)希望能夠在掉電時(shí)依然保持原有數(shù)據(jù)來降低數(shù)據(jù)讀寫開銷,因此適用耗能低、讀取速度快的eNVM(Embedded Non-Volatile Memory,嵌入式非揮發(fā)性記憶體)。本文選取的是基于MLC的ReRAM,一種低功耗、高速度的RAM。
- 其他參數(shù):這些參數(shù)需要在fine-tune時(shí)進(jìn)行改變。此處使用的是SRAM(與計(jì)算機(jī)內(nèi)存的DRAM不同,SRAM更貴但功耗更低、帶寬更高,常被用于制造cache或寄存器)
嵌入層用了ReRAM究竟能帶來多大的影響?上圖結(jié)果表明,僅僅是改變了嵌入層的硬件介質(zhì)就能帶來約
的推理延遲降低,以及低至約 的能耗降低!這對(duì)于邊緣計(jì)算場(chǎng)景下簡(jiǎn)直是質(zhì)變了!(為何ReRAM只有讀,但DRAM那邊卻要算DRAM讀+SRAM讀/寫呢?因?yàn)榇颂幍腞eRAM是特殊設(shè)計(jì)的只讀結(jié)構(gòu),并且可以直接讀入處理器進(jìn)行運(yùn)算。與此相反,DRAM,即電腦里一般使用的內(nèi)存,需要經(jīng)過基于SRAM的處理器cache,所以讀寫開銷需要加上這部分讀寫開銷。)合并結(jié)果
好了,所有的基礎(chǔ)配方一個(gè)一個(gè)單獨(dú)使用的結(jié)果已經(jīng)出來了!那么,把它們?nèi)技釉谝黄鹉墚a(chǎn)生什么樣的結(jié)果呢?
這張圖展示了完全體EdgeBERT在四個(gè)數(shù)據(jù)集上的性能、運(yùn)算量和內(nèi)存占用。其中所有紅點(diǎn)的實(shí)驗(yàn)配置參照上表(即TABLE IV)。
- 在性能(準(zhǔn)確度)相比ALBERT下降1個(gè)百分點(diǎn)時(shí),EdgeBERT能取得 的內(nèi)存降低和 的推理速度;下降5個(gè)百分點(diǎn)時(shí)甚至能取得 的推理速度。
- Embedding經(jīng)過裁剪后僅保留了40%,使得存儲(chǔ)進(jìn)eNVM的嵌入層參數(shù)僅1.73MB。
- QQP的Transformer參數(shù)被mask掉80%,MNLI、SST-2、QNLI的Transformer參數(shù)被mask掉60%后,性能可以僅下降1個(gè)百分點(diǎn)。
究極配方:硬件加速器
這是什么東西?來,給你展示一下谷歌給樹莓派定制的TPU加速器Coral:
EdgeBERT專屬的硬件加速器想來應(yīng)該也是差不多的樣子。
這一部分完全不是王蘇的菜…給各位上一張EdgeBERT加速器的硬件結(jié)構(gòu)圖:
感興趣的各位可以去參照原文進(jìn)行學(xué)習(xí)_(:з」∠)_
這個(gè)加速器有什么用呢?它是基于EdgeBERT的運(yùn)算特點(diǎn)量身定做的加速器,能夠把fine-tune好的EdgeBERT完整地裝進(jìn)去進(jìn)行運(yùn)算。至于運(yùn)算效果,它們修改了模型圖中VMAC序列(即進(jìn)行矩陣運(yùn)算的單元序列)長(zhǎng)度,與NVIDIA的移動(dòng)端TX2 mGPU進(jìn)行了推理時(shí)間和耗能的對(duì)比:
本文中提出的硬件加速器能夠?yàn)镋dgeBERT帶來相比于baseline硬件加速器
的能耗降低,相比于英偉達(dá)TX2移動(dòng)端GPU甚至能夠帶來 的能耗降低!耗電大戶BERT家族終于也有能被說“省電”的一天了!總結(jié)
壓縮BERT是一項(xiàng)研究,但極限壓縮BERT則是一項(xiàng)不易完成的工程:無論是對(duì)Transformer模型的全方位裁剪,還是對(duì)硬件存儲(chǔ)介質(zhì)讀寫性能與容錯(cuò)的取舍,亦或是對(duì)專屬硬件加速器的設(shè)計(jì),單獨(dú)拿出一項(xiàng)已足夠艱難,將它們合在一起就不僅可能互相沖突,甚至還可能產(chǎn)生逆向優(yōu)化。這篇文章通過大量的實(shí)驗(yàn),測(cè)試了已有的幾種優(yōu)化方法在邊緣計(jì)算場(chǎng)景下的性能,比較了不同優(yōu)化方法之間的差別,分析了所有優(yōu)化方法進(jìn)行組合后的影響及效果,并進(jìn)一步提出了專屬的硬件結(jié)構(gòu),實(shí)現(xiàn)了對(duì)目前已有的最輕量BERT變體的即插即用。對(duì)于需要長(zhǎng)待機(jī)、低功耗、短延遲的場(chǎng)景,例如智能家居或是其他需要NLP技術(shù)加持的物聯(lián)網(wǎng)設(shè)備,或許我們真的能在不遠(yuǎn)的將來看到實(shí)體的類似EdgeBERT加速器的解決方案出現(xiàn)。
雖然我們對(duì)于可能帶來更大變革的模型結(jié)構(gòu)依然處在探索當(dāng)中,但從當(dāng)下實(shí)用的角度而言,用基于Lottery Ticket Hypothesis[6]的BERT優(yōu)化方法尋找一個(gè)更優(yōu)的類BERT子結(jié)構(gòu)依然是一個(gè)不錯(cuò)的課題,至少它能讓更多人、更多時(shí)候、更多場(chǎng)景能夠用上性能強(qiáng)大的預(yù)訓(xùn)練模型。本文中提到的這些優(yōu)化方法是不是也給愛思考的你帶來了什么啟發(fā)呢?
參考文獻(xiàn)
[1] Sanh et al. DistilBERT, a Distilled Version of Bert: Smaller, Faster, Cheaper and Lighter. In NeurIPS'19 EMC2 Workshop. https://arxiv.org/pdf/1910.01108.pdf [2] Jiao et al. TinyBERT: Distilling BERT for Natural Language Understanding. In Findings of EMNLP'20. https://arxiv.org/pdf/1909.10351.pdf [3] Zafrir et al. Q8BERT: Quantized 8Bit BERT. In NeurIPS'19 EMC2 Workshop. https://arxiv.org/pdf/1910.06188.pdf [4] Bengio et al. Estimating or Propagating Gradients Through Stochastic Neurons for Conditional Computation. arXiv Preprint. https://arxiv.org/pdf/1308.3432.pdf [5] IEEE 754 - Wikipedia. https://zh.wikipedia.org/wiki/IEEE_754 [6] Frankle et al. The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks. In ICLR'19. https://arxiv.org/pdf/1803.03635.pdf
總結(jié)
以上是生活随笔為你收集整理的EdgeBERT:极限压缩,比ALBERT再轻13倍!树莓派上跑BERT的日子要来了?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么?!“路由器”也会做信息抽取了?
- 下一篇: 斯坦福CS224n追剧计划【大结局】:N