自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖解tinyBERT模型——BERT模型壓縮精華

譯文 精選
人工智能
BERT成為當(dāng)今自然語(yǔ)言處理領(lǐng)域最受歡迎和最有效的模型之一。本文將介紹一款精簡(jiǎn)版的BERT模型——tinyBERT;借助于轉(zhuǎn)換器蒸餾算法,tinyBERT模型比基準(zhǔn)BERT模型體積更小、速度更快,精確度卻不相上下。

譯者 | 朱先忠

審校 | 重樓

簡(jiǎn)介

近年來(lái),大型語(yǔ)言模型的發(fā)展突飛猛進(jìn)。BERT成為最受歡迎和最有效的模型之一,可以高精度地解決各種自然語(yǔ)言處理(NLP任務(wù)。BERT模型之后,一組其他模型也先后出現(xiàn)并各自展示出優(yōu)秀性能。

不難看到一個(gè)明顯趨勢(shì)是,隨著時(shí)間的推移,大型語(yǔ)言模型(LLM)往往會(huì)因其訓(xùn)練的參數(shù)和數(shù)據(jù)數(shù)量呈指數(shù)級(jí)增加而變得更加復(fù)雜。深度學(xué)習(xí)研究表明,這種技術(shù)通常會(huì)帶來(lái)更好的運(yùn)行結(jié)果。然而,遺憾的是,盡管機(jī)器學(xué)習(xí)世界已經(jīng)克服不少關(guān)于大型語(yǔ)言模型相關(guān)的問(wèn)題;但是,可擴(kuò)展性的問(wèn)題已經(jīng)成為有效訓(xùn)練、存儲(chǔ)和使用大型語(yǔ)言模型的主要障礙。

考慮到上述問(wèn)題,人們已經(jīng)開(kāi)發(fā)出不少的壓縮大型語(yǔ)言模型的特殊方法。在這篇文章中,我們將重點(diǎn)討論轉(zhuǎn)換器蒸餾方法,這種方法誕生了名為T(mén)inyBERT的一個(gè)迷你版本的BERT模型。此外,我們介紹TinyBERT模型的學(xué)習(xí)過(guò)程,以及使TinyBERT模型變得如此強(qiáng)大的幾個(gè)微妙原因。本文基于TinyBERT的官方論文整理而成。

主要思想

最近的文章中,我們已經(jīng)討論了DistilBERT模型中蒸餾技術(shù)的工作原理簡(jiǎn)而言之,蒸餾技術(shù)的主要思想是:修改損失函數(shù)目標(biāo),以便使學(xué)生模型教師模型的預(yù)測(cè)結(jié)果相似。在DistilBERT模型中,損失函數(shù)比較學(xué)生模型和教師模型的輸出分布,并兼顧兩個(gè)模型的輸出嵌入(針對(duì)相似損失)。

有關(guān)DistilBERT模型的更多的細(xì)節(jié),請(qǐng)參考文章《Large Language Models: DistilBERT — Smaller, Faster, Cheaper and Lighter》,地址是:
“https://towardsdatascience.com/distilbert-11c8810d29fc?source=post_page-----1a928ba3082b--------------------------------”。此文的主要內(nèi)容介紹了BERT模型壓縮的秘密,目標(biāo)是實(shí)現(xiàn)師生模型框架效率最大

從表面上看,TinyBERT模型中的蒸餾框架與DistilBERT模型沒(méi)有太大變化:再次修改損失函數(shù),目標(biāo)是使學(xué)生模型模仿教師模型。然而,在TinyBERT模型的情況下,它更進(jìn)一步:損失函數(shù)不僅考慮了師生兩個(gè)模型產(chǎn)生的結(jié)果,還考慮了如何獲得預(yù)測(cè)結(jié)果的問(wèn)題。根據(jù)TinyBERT模型論文作者介紹,TinyBERT損失函數(shù)由三個(gè)部分成,它們涵蓋了師生兩個(gè)模型的不同方面:

  1. 嵌入層的輸出
  2. 轉(zhuǎn)換器層導(dǎo)出的隱藏狀態(tài)和注意矩陣
  3. 預(yù)測(cè)層輸出的logits

轉(zhuǎn)換器蒸餾損失函數(shù)示意圖轉(zhuǎn)換器蒸餾損失函數(shù)示意圖

那么,比較師生兩種模型的隱藏狀態(tài)有什么意義?通過(guò)包括隱藏狀態(tài)和注意力的輸出結(jié)果,注意矩陣使學(xué)生模型有可能學(xué)習(xí)教師模型的隱藏層內(nèi)容,從而構(gòu)建與教師模型相似的層。這樣,提取的模型不僅可以模仿原始模型的輸出,而且模仿其內(nèi)部行為。

那么,為什么復(fù)制教師模型的行為很重要?研究人員聲稱(chēng),通過(guò)BERT模型學(xué)習(xí)的注意力權(quán)重有利于捕捉語(yǔ)言結(jié)構(gòu)。因此,們對(duì)另一種模式的蒸餾也給了學(xué)生模型更多獲得語(yǔ)言知識(shí)的機(jī)會(huì)。

層映射

TinyBERT模型僅代表一較小的BERT版本,具有較少的編碼器層。現(xiàn)在,不妨讓我們將BERT模型層數(shù)定義為N,將TinyBERT模型層數(shù)定義為M。鑒于層數(shù)不同,如何計(jì)算蒸餾損失值的問(wèn)題尚不明確。

為此,引入了一個(gè)特殊函數(shù)n=g(m)來(lái)定義哪個(gè)BERT模型層n用于將其知識(shí)提取到TinyBERT模型中的相應(yīng)層m。然后,所選擇的BERT層用于訓(xùn)練期間的損失計(jì)算。

引入的函數(shù)n=g(m)具有兩個(gè)推理約束:

  • g(0)=0。這意味著,BERT模型中的嵌入層被直接映射到TinyBERT模型中的嵌入圖層,這是有意義的。
  • g(M+1)=N+1。該等式指示,BERT模型中的預(yù)測(cè)層被映射到TinyBERT模型中的預(yù)測(cè)層。對(duì)于所有其他TinyBERT模型中滿足條件1≤m≤m的那些層,需要映射n=g(m)的相應(yīng)函數(shù)值。現(xiàn)在,假設(shè)已經(jīng)定義了這樣的函數(shù)。
    有關(guān)TinyBERT模型設(shè)置的問(wèn)題,將在本文稍后進(jìn)行研究。

轉(zhuǎn)換器蒸餾

1.嵌入層蒸餾

原始輸入在被傳遞到模型之前,首先被標(biāo)記化,然后被映射到學(xué)習(xí)的嵌入。然后,這些嵌入被用作模型的第一層。所有可能的嵌入都可以用矩陣的形式表示。為了比較學(xué)生模型教師模型的嵌入有多大的不同,可以在他們各自的嵌入矩陣E上使用標(biāo)準(zhǔn)回歸度量。例如,轉(zhuǎn)換器蒸餾使用均方誤差MSE作為回歸度量。

由于學(xué)生模型和教師模型的嵌入矩陣具有不同的大小,因此不可能通過(guò)使用均方誤差來(lái)明智地比較它們的元素。這就解釋了為什么學(xué)生模型嵌入矩陣乘以可學(xué)習(xí)權(quán)重矩陣W,從而導(dǎo)致結(jié)果矩陣與教師模型嵌入矩陣具有相同的形狀。

嵌入層蒸餾損失函數(shù)。嵌入層蒸餾損失函數(shù)。

由于學(xué)生模型和教師模型的嵌入空間是不同的,矩陣W在將學(xué)生模型的嵌入空間線性轉(zhuǎn)換為教師模型嵌入空間方面也起著重要作用。

2.轉(zhuǎn)換器層蒸餾

轉(zhuǎn)換器層蒸餾損失函數(shù)可視化展示轉(zhuǎn)換器層蒸餾損失函數(shù)可視化展示

2A. 注意力層蒸餾

轉(zhuǎn)換器中的多頭注意力機(jī)制的核心是生成包含豐富語(yǔ)言知識(shí)的多個(gè)注意力矩陣。通過(guò)轉(zhuǎn)移教師模型的注意力權(quán)重,學(xué)生模型也可以理解重要的語(yǔ)言概念。為了實(shí)現(xiàn)這一思想,使用損失函數(shù)來(lái)計(jì)算學(xué)生模型和教師模型注意力權(quán)重之間的差異。

在TinyBERT模型中,考慮了所有的注意力層,并且每一層的最終損失值等于所有頭部的相應(yīng)學(xué)生模型和教師模型注意力矩陣之間的均方誤差值之和。

注意層蒸餾損失函數(shù)計(jì)算公式注意層蒸餾損失函數(shù)計(jì)算公式

值得注意的是,用于注意力層提取的注意力矩陣A是未歸一化的,而不是它們的softmax輸出softmax(A)。根據(jù)研究人員的說(shuō)法,這種微妙之處有助于更快地收斂并提高性能。

2B. 隱藏層蒸餾

為了實(shí)現(xiàn)獲取豐富語(yǔ)言知識(shí)的想法,蒸餾操作也被應(yīng)用轉(zhuǎn)換器層的輸出。

隱藏層蒸餾損失函數(shù)計(jì)算公式。隱藏層蒸餾損失函數(shù)計(jì)算公式。

這里,權(quán)重矩陣W起到與上述用于嵌入層蒸餾的權(quán)重矩陣相同的作用。

3.預(yù)測(cè)層蒸餾

最后,為了使學(xué)生模型再現(xiàn)教師模型的輸出結(jié)果,使用了預(yù)測(cè)層損失函數(shù)。它包括計(jì)算兩個(gè)模型預(yù)測(cè)的logit向量之間的交叉熵。

預(yù)測(cè)層蒸餾損失函數(shù)計(jì)算公式預(yù)測(cè)層蒸餾損失函數(shù)計(jì)算公式

值得注意的是,些情況下,logits除以控制輸出分布的平滑度的溫度參數(shù)T。在TinyBERT模型中,溫度參數(shù)T設(shè)置為1。

損失方程

在TinyBERT模型中,根據(jù)其類(lèi)型特征,每一層都有自己的損失函數(shù)。考慮到某些層或多或少的重要性作用,將相應(yīng)的損失值乘以常數(shù)a。最終損失函數(shù)等于所有TinyBERT模型層的損失值的加權(quán)和。

TinyBERT模型中的損失函數(shù)計(jì)算公式TinyBERT模型中的損失函數(shù)計(jì)算公式

大量實(shí)驗(yàn)表明,在三損失分量中,轉(zhuǎn)換器層蒸餾損失對(duì)模型性能的影響最大。

模型訓(xùn)練

需要注意的是,大多數(shù)自然語(yǔ)言處理模型(包括BERT)開(kāi)發(fā)過(guò)程可大致劃兩個(gè)階段:

  1. 在一個(gè)大型數(shù)據(jù)語(yǔ)料庫(kù)上對(duì)模型進(jìn)行預(yù)訓(xùn)練,以獲得語(yǔ)言結(jié)構(gòu)的一般知識(shí)。
  2. 在另一個(gè)數(shù)據(jù)集上對(duì)模型進(jìn)行微調(diào),以解決特定的下游任務(wù)。

遵循與此同樣的思想,研究人員發(fā)了一個(gè)新的框架TinyBERT,它的學(xué)習(xí)過(guò)程也類(lèi)似上面的兩個(gè)階段組成。在這兩個(gè)訓(xùn)練階段中,使用轉(zhuǎn)換器蒸餾算法將BERT模型知識(shí)轉(zhuǎn)換成TinyBERT模型。

階段一:普通蒸餾。TinyBERT作為一個(gè)教師模型,通過(guò)預(yù)先訓(xùn)練(無(wú)需微調(diào))的BERT模型獲得了豐富的語(yǔ)言結(jié)構(gòu)常識(shí)。通過(guò)使用更少的層和參數(shù),在這個(gè)階段之后,TinyBERT模型的性能通常比BERT模型一些。

階段二:特定任務(wù)的蒸餾。這一次,微調(diào)版的BERT模型扮演了教師模型的角色。為了進(jìn)一步提高性能,正如研究人員所提出的,在訓(xùn)練數(shù)據(jù)集上應(yīng)用了數(shù)據(jù)增強(qiáng)方法。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)特定任務(wù)的蒸餾操作后,TinyBERT模型在BERT模型方面取得了相當(dāng)?shù)男阅堋?/span>

TinyBERT模型訓(xùn)練流程示意圖TinyBERT模型訓(xùn)練流程示意圖

數(shù)據(jù)增強(qiáng)

針對(duì)特定任務(wù)的蒸餾,引入了一種特殊的數(shù)據(jù)增強(qiáng)技術(shù)。在這種數(shù)據(jù)增強(qiáng)技術(shù)中,首先從給定的數(shù)據(jù)集中提取序列,然后下列兩種方式之一替換一定百分比的單詞:

  • 如果單詞被標(biāo)記為同一個(gè)單詞,則該單詞由BERT模型預(yù)測(cè),并且預(yù)測(cè)結(jié)果單詞替換序列中的原始單詞。
  • 如果單詞被標(biāo)記為幾個(gè)子單詞,那么這些子單詞將被最相似的GloVe嵌入局向量的詞嵌入:Global Vectors for Word Representation)所取代。

盡管模型大小顯著減小,但所描述的數(shù)據(jù)增強(qiáng)機(jī)制通過(guò)允許TinyBERT學(xué)習(xí)更多不同的示例,對(duì)其性能產(chǎn)生了很大影響。

數(shù)據(jù)增強(qiáng)技術(shù)示意圖數(shù)據(jù)增強(qiáng)技術(shù)示意圖

模型設(shè)置

由于只有14.5M個(gè)參數(shù),TinyBERT模型基礎(chǔ)型BERT模型小約7.5倍。它們的詳細(xì)比較如下圖所示:

基礎(chǔ)BERT模型與TinyBERT模型比較基礎(chǔ)BERT模型與TinyBERT模型比較

對(duì)于層映射,論文作者提出了一種統(tǒng)一的策略。根據(jù)該策略,層映射函數(shù)將每個(gè)TinyBERT層映射到按序排序的三個(gè)為一組的BERT層中的第一個(gè):g(m)=3*m。論文作者還研究了其他策略(如采用所有底部或頂部BERT層),但僅有統(tǒng)一策略顯示出最佳實(shí)驗(yàn)結(jié)果個(gè)結(jié)論似乎是比較合乎邏輯的,因?yàn)樗试S從不同的抽象層轉(zhuǎn)移知識(shí),使轉(zhuǎn)移的信息更加多樣化。

基于不同的層映射策略情況:圖中展示了基于GLUE數(shù)據(jù)集的性能比較結(jié)果基于不同的層映射策略情況:圖中展示了基于GLUE數(shù)據(jù)集的性能比較結(jié)果

訓(xùn)練實(shí)現(xiàn)過(guò)程方面,TinyBERT模型是在英語(yǔ)維基百科(2500M個(gè)單詞)上訓(xùn)練的,其大多數(shù)超參數(shù)與BERT模型庫(kù)中使用的相同。

結(jié)論

轉(zhuǎn)換蒸餾是自然語(yǔ)言處理中的一項(xiàng)重要措施??紤]到基于轉(zhuǎn)換器的模型是目前機(jī)器學(xué)習(xí)中最強(qiáng)大的模型之一,我們可以通過(guò)應(yīng)用轉(zhuǎn)換器蒸餾來(lái)有效地壓縮它們來(lái)進(jìn)一步開(kāi)發(fā)利用它們。這方面最偉大的例子之一是TinyBERT模型,它BERT模型基礎(chǔ)壓縮了7.5倍。

盡管參數(shù)大幅減少,但實(shí)驗(yàn)表明,TinyBERT模型的性能與BERT基礎(chǔ)模型基本相當(dāng):在GLUE基準(zhǔn)數(shù)據(jù)集的測(cè)試結(jié)果表明,TinyBERT模型獲得77.0%的得分,與得分為79.5%的BERT模型相距不遠(yuǎn)。顯然,這是一個(gè)驚人的成就!最后,其他的一些流行的壓縮技術(shù),如量化或修剪可以應(yīng)用于TinyBERT模型壓縮算法,從而使此模型體積變得更小。

除非另有說(shuō)明,否則本文中所有圖片均由作者本人提供。

參考資料

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專(zhuān)家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。

原文標(biāo)題:Large Language Models: TinyBERT — Distilling BERT for NLP,作者:Vyacheslav Efimov



責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2022-06-07 14:47:43

飛書(shū)智能問(wèn)答模型

2022-02-21 10:21:17

網(wǎng)絡(luò)IO模型

2023-11-19 23:36:50

2025-03-31 00:33:00

2010-01-13 10:52:46

Rational Ro

2020-03-17 09:42:00

谷歌開(kāi)源機(jī)器學(xué)習(xí)

2020-01-19 10:33:09

框架Web開(kāi)發(fā)

2024-07-26 10:23:52

2024-08-05 14:36:17

大型語(yǔ)言模型量化

2024-11-18 08:08:21

2024-12-18 15:00:31

ELMo模型自然語(yǔ)言

2017-08-31 10:48:59

CNN 模型壓縮算法

2023-09-23 12:36:32

蘋(píng)果模型

2024-09-13 08:18:10

2011-07-11 09:46:33

虛擬化服務(wù)器

2022-01-05 08:30:31

BIONIO AIO

2021-08-30 09:25:25

Bert模型PyTorch語(yǔ)言

2020-09-22 15:17:59

谷歌Android技術(shù)

2025-02-17 13:09:59

深度學(xué)習(xí)模型壓縮量化

2023-05-10 15:08:26

OpenAI語(yǔ)言模型人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)