亞馬遜:我們提取了BERT的一個(gè)最優(yōu)子架構(gòu),CPU速度升7倍
提取 BERT 子架構(gòu)是一個(gè)非常值得探討的問(wèn)題,但現(xiàn)有的研究在子架構(gòu)準(zhǔn)確率和選擇方面存在不足。近日,來(lái)自亞馬遜 Alexa 團(tuán)隊(duì)的研究者細(xì)化 BERT 子架構(gòu)提取過(guò)程,并提取了一個(gè)最優(yōu)子架構(gòu) Bort,它的大小僅為 BERT-large 的 16%,CPU 上的推理速度卻提升到了原來(lái)的八倍。
在自然語(yǔ)言處理領(lǐng)域,BERT 是一個(gè)里程碑式的進(jìn)展。只需要添加一個(gè)單層線性分類器和一個(gè)簡(jiǎn)單的微調(diào)策略,它就能在多項(xiàng)任務(wù)中達(dá)到優(yōu)異的性能。但另一方面,BERT 的應(yīng)用也面臨很多問(wèn)題,如規(guī)模大、推理速度慢、預(yù)訓(xùn)練過(guò)程復(fù)雜。研究人員已經(jīng)做了許多嘗試來(lái)提取一個(gè)更簡(jiǎn)單的子架構(gòu),希望這個(gè)子架構(gòu)能夠保持原始 BERT 的優(yōu)異性能,同時(shí)簡(jiǎn)化預(yù)訓(xùn)練過(guò)程,縮短推理時(shí)間。這些研究取得了不同程度的成功。然而,他們提取的這些子架構(gòu)在準(zhǔn)確率方面仍然低于原始架構(gòu)的實(shí)現(xiàn),而且架構(gòu)參數(shù)集的選擇往往看起來(lái)很隨意。
雖然這個(gè)問(wèn)題在計(jì)算上很難解決,但 de Wynter 最近的一項(xiàng)研究表明:存在一種近似算法——更具體地說(shuō),一種完全多項(xiàng)式時(shí)間近似模式(FPTAS)——在一定條件下能夠有效地提取出具有最優(yōu)保證的此類集合。
在本文中,來(lái)自 Amazon Alexa 團(tuán)隊(duì)的研究者將提取 BERT 最優(yōu)子架構(gòu)參數(shù)集這一問(wèn)題細(xì)化為三個(gè)指標(biāo):推斷延遲、參數(shù)大小和誤差率。該研究證明:BERT 具備 strong AB^nC 屬性,可滿足這些條件組合,使上述算法表現(xiàn)得像 FPTAS。然后,研究者從一個(gè)高性能的 BERT 變體中提取了一個(gè)最優(yōu)的子架構(gòu),稱為 Bort,其大小是 BERT-large 的 16%,在 CPU 上的推理速度提升到原來(lái)的 8 倍。
論文地址:https://arxiv.org/pdf/2010.10499.pdf
GitHub地址:https://github.com/alexa/bort/
盡管 FPTAS 可以確保找到表現(xiàn)最優(yōu)的架構(gòu),但它返回的是在上述三個(gè)指標(biāo)上表現(xiàn)最優(yōu)的架構(gòu)參數(shù)集,而不會(huì)輸出一個(gè)訓(xùn)練到收斂的架構(gòu)。因此,研究者對(duì) Bort 進(jìn)行了預(yù)訓(xùn)練,發(fā)現(xiàn)與原先的訓(xùn)練相比,預(yù)訓(xùn)練速度有了明顯的提高:在相同的 GPU、數(shù)據(jù)集大小也相當(dāng)?shù)那闆r下,Bort 訓(xùn)練了 288 小時(shí),BERT-large 訓(xùn)練了 1153 小時(shí),而 RoBERTa-large 訓(xùn)練了 24,576 小時(shí)。
研究者還在 GLUE、SuperGLUE 以及 RACE 公共 NLU 基準(zhǔn)上對(duì) Bort 進(jìn)行了評(píng)估。結(jié)果表明,與 BERT-large 相比,Bort 在所有這些基準(zhǔn)上都獲得了顯著提高,提升幅度從 0.3% 到 31% 不等。
研究者在 GitHub 上開源了訓(xùn)練模型以及代碼:https://github.com/alexa/bort/
Bort:BERT 的「最優(yōu)」子架構(gòu)
Bert 是一種基于 transformer 的雙向全連接架構(gòu),它包括一個(gè)依賴于詞匯量的嵌入層(BERT 的詞匯量 V = 28,996 tokens)、包含 Transformer 的 D 編碼器層,以及一個(gè)輸出層。BERT 架構(gòu)剛推出時(shí)有兩個(gè)變體:
BERT-large(D = 24 編碼器層、A = 16 注意力頭、H = 1,024 隱藏層大小、I = 4,096 中間層大?。?;
BERT-base(D =12、A = 12、H = 768、I = 3072)。
在形式上,令 Ξ 表示包含四元組 (即架構(gòu)參數(shù))數(shù)值有效組合的有限集合。與 de Wynter (2020b) 的研究一致,該研究將 BERT 架構(gòu)族描述為某個(gè)函數(shù)的陪域(codomain),如下公式 1 所示:
算法
該研究想要找出一個(gè)架構(gòu)參數(shù)集 ξ = ,對(duì)推理速度 i(b(X; ·))、參數(shù)量 p(b(·; W) 和誤差率 e(b(X; W^∗ ), Y ) 這三個(gè)度量指標(biāo)進(jìn)行優(yōu)化。
de Wynter (2020b) 表明, 對(duì)于任意架構(gòu)而言,這都是一個(gè) NP-Hard 問(wèn)題。de Wynter (2020b) 中的 FPTAS 是一種近似算法,該算法依賴于對(duì) i(·)、p(·) 和 e(·, ·) 代理函數(shù)的優(yōu)化,這三個(gè)代理函數(shù)分別表示為 iˆ(·)、pˆ(·) 和 eˆ(·, ·)。執(zhí)行過(guò)程中將它們表示為 Ξ 的函數(shù),并通過(guò)選擇一個(gè)參數(shù)最多、推理時(shí)間最長(zhǎng)的架構(gòu) T∈B(T 被稱為極大點(diǎn),maximum point)和 W - 系數(shù)指標(biāo)對(duì)它們進(jìn)行標(biāo)量化處理,具體如下公式 2 所示:
求取 i(·) 和 p(·) 的代理相對(duì)簡(jiǎn)單,事實(shí)上,的代理必須通過(guò)損失函數(shù)來(lái)獲得。同樣地,保證運(yùn)行時(shí)和可逼近性依賴于兩個(gè)額外的輸入?yún)?shù):選定的最大訓(xùn)練步數(shù)量 n > 0,預(yù)期間隔大小 1 ≤ ≤ |Ξ|。ϵ 的的選擇直接影響該近似算法求得解的質(zhì)量。
用知識(shí)蒸餾進(jìn)行預(yù)訓(xùn)練
盡管 FPTAS 能夠確保我們獲得描述最優(yōu)子架構(gòu)的架構(gòu)參數(shù)集,但如何高效預(yù)訓(xùn)練參數(shù)化模型仍是一個(gè)待解決問(wèn)題。
根據(jù)以往的研究(詳見論文第二章)可以得出結(jié)論,使用知識(shí)蒸餾(KD)來(lái)預(yù)訓(xùn)練上述語(yǔ)言模型可以在前述評(píng)估指標(biāo)上達(dá)到良好的性能。鑒于代理誤差函數(shù) eˆ(·, ·) 是關(guān)于極大點(diǎn)的交叉熵,因此將上述評(píng)估通過(guò) KD 進(jìn)行擴(kuò)展是很自然的事情。
該研究還比較了 Bort 架構(gòu)的自監(jiān)督預(yù)訓(xùn)練和基于 KD 的預(yù)訓(xùn)練,發(fā)現(xiàn)與另一種方法相比,使用學(xué)生模型的最后一層和教師模型之間的一個(gè)簡(jiǎn)單交叉熵就足以找到一個(gè)優(yōu)秀模型,該模型可以獲得更高的遮蔽語(yǔ)言模型(MLM)準(zhǔn)確率和更快的預(yù)訓(xùn)練速度。
評(píng)估
為了驗(yàn)證在經(jīng)過(guò)最佳子架構(gòu)提取過(guò)程之后,Bort 是否保留了 BERT 和 RoBERTa 的強(qiáng)大泛化性能,研究者在 GLUE、SuperGLUE 基準(zhǔn)以及 RACE 數(shù)據(jù)集上微調(diào)了 Bort。結(jié)果表明,Bort 比其他類似 BERT 的壓縮模型要好得多,在多個(gè)任務(wù)上的性能都大大優(yōu)于其他模型。
GLUE
GLUE(Generalized Language Evaluation benchmark)包含一組常見的自然語(yǔ)言任務(wù)。主要是側(cè)重于自然語(yǔ)言推理(NLI),它由十個(gè)數(shù)據(jù)集組成。
研究者通過(guò)在所有任務(wù)中添加單層線性分類器來(lái)微調(diào) Bort,但 CoLA 除外。在 CoLA 中,研究者發(fā)現(xiàn)在 Bort 和分類器之間添加額外的線性層可以提高收斂速度。研究者使用 Agora 對(duì)所有任務(wù)進(jìn)行了微調(diào)。
結(jié)果如表 4.15 所示。除了 QQP 和 QNLI 以外,Bort 幾乎在所有任務(wù)上表現(xiàn)優(yōu)異,它的性能比其他基于 BERT 的同等模型要好得多。相比于 BERT-large,Bort 的性能提高了 0.3%-31%。研究者將這種提升歸功于 Agora 的微調(diào),因?yàn)樗试S模型更好地學(xué)習(xí)每個(gè)任務(wù)的目標(biāo)分布。
SuperGLUE
SuperGLUE 包含一組常見的自然語(yǔ)言任務(wù),它由十個(gè)數(shù)據(jù)集組成。
研究者通過(guò)添加單層線性分類器來(lái)微調(diào) Bort,并在所有任務(wù)中運(yùn)行 Agora 至收斂。結(jié)果如表 5 所示:Bort 在除了 ReCoRD 以外的所有任務(wù)中獲得了超越或媲美 BERT-large 的結(jié)果。
RACE
RACE 數(shù)據(jù)集是一個(gè)文本閱讀的多項(xiàng)選擇題數(shù)據(jù)集,經(jīng)過(guò)專業(yè)注釋,被分成兩個(gè)數(shù)據(jù)集:RACE-H(從高中考試題目中提取的數(shù)據(jù)集)和 RACE-M(從初中考試題目中提取的數(shù)據(jù)集)。
與之前實(shí)驗(yàn)一樣,研究者通過(guò)添加單層線性分類器來(lái)微調(diào) Bort,并運(yùn)行 Agora 進(jìn)行收斂。
結(jié)果如表 6 所示??傮w而言,Bort 獲得了良好的結(jié)果,在兩個(gè)任務(wù)上都比 BERT-large 的性能高出 9-10%。