成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

譯者 | 朱先忠

審校 | 重樓

簡介

近年來,大型語言模型的發展突飛猛進。BERT成為最受歡迎和最有效的模型之一,可以高精度地解決各種自然語言處理(NLP任務。BERT模型之后,一組其他模型也先后出現并各自展示出優秀性能

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

考慮到上述問題,人們已經開發出不少的壓縮大型語言模型的特殊方法。在這篇文章中,我們將重點討論轉換器蒸餾方法這種方法誕生了名為TinyBERT的一個迷你版本的BERT模型。此外,我們介紹TinyBERT模型的學習過程,以及使TinyBERT模型變得如此強大的幾個微妙原因。本文基于TinyBERT的官方論文整理而成

主要思想

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

有關DistilBERT模型的更多的細節,請參考文章《Large Language Models: DistilBERT — Smaller, Faster, Cheaper and Lighter》,地址是:
“https://towardsdatascience.com/distilbert-11c8810d29fc?source=post_page-----1a928ba3082b--------------------------------”。此文的主要內容介紹了BERT模型壓縮的秘密目標是實現師生模型框架效率最大

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

  1. 嵌入層的輸出
  2. 轉換器層導出的隱藏狀態和注意矩陣
  3. 預測層輸出的logits

轉換器蒸餾損失函數示意圖轉換器蒸餾損失函數示意圖

那么,比較師生兩種模型的隱藏狀態有什么意義通過包括隱藏狀態和注意力的輸出結果,注意矩陣使學生模型有可能學習教師模型的隱藏層內容,從而構建與教師模型相似的層。這樣,提取的模型不僅可以模仿原始模型的輸出,而且模仿其內部行為。

那么,為什么復制教師模型的行為很重要?研究人員聲稱,通過BERT模型學習的注意力權重有利于捕捉語言結構。因此,們對另一種模式的蒸餾也給了學生模型更多獲得語言知識的機會。

層映射

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

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

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

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

轉換器蒸餾

1.嵌入層蒸餾

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

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

嵌入層蒸餾損失函數。嵌入層蒸餾損失函數。

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

2.轉換器層蒸餾

轉換器層蒸餾損失函數可視化展示轉換器層蒸餾損失函數可視化展示

2A. 注意力層蒸餾

轉換器中的多頭注意力機制的核心是生成包含豐富語言知識的多個注意力矩陣。通過轉移教師模型的注意力權重,學生模型也可以理解重要的語言概念。為了實現這一思想,使用損失函數來計算學生模型和教師模型注意力權重之間的差異。

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

注意層蒸餾損失函數計算公式注意層蒸餾損失函數計算公式

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

2B. 隱藏層蒸餾

為了實現獲取豐富語言知識的想法,蒸餾操作也被應用轉換器層的輸出

隱藏層蒸餾損失函數計算公式。隱藏層蒸餾損失函數計算公式。

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

3.預測層蒸餾

最后,為了使學生模型再現教師模型的輸出結果使用了預測層損失函數。它包括計算兩個模型預測的logit向量之間的交叉熵。

預測層蒸餾損失函數計算公式預測層蒸餾損失函數計算公式

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

損失方程

在TinyBERT模型中,根據其類型特征,每一層都有自己的損失函數。考慮到某些層或多或少的重要性作用,將相應的損失值乘以常數a。最終損失函數等于所有TinyBERT模型層的損失值的加權和。

TinyBERT模型中的損失函數計算公式TinyBERT模型中的損失函數計算公式

大量實驗表明,在三損失分量中,轉換器層蒸餾損失對模型性能的影響最大。

模型訓練

需要注意的是,大多數自然語言處理模型(包括BERT)開發過程可大致劃兩個階段:

  1. 在一個大型數據語料庫上模型進行預訓練,以獲得語言結構的一般知識。
  2. 在另一個數據集上模型進行微調,以解決特定的下游任務。

遵循與此同樣的思想,研究人員發了一個新的框架TinyBERT,它的學習過程也類似上面的兩個階段組成。在這兩個訓練階段中,使用轉換器蒸餾算法將BERT模型知識轉換成TinyBERT模型

階段一:普通蒸餾。TinyBERT作為一教師模型,通過預先訓練(無需微調)的BERT模型獲得了豐富的語言結構常識。通過使用更少的層和參數,在這個階段之后,TinyBERT模型的性能通常比BERT模型一些

階段二:特定任務的蒸餾。這一次,微調版的BERT模型扮演了教師模型的角色。為了進一步提高性能,正如研究人員所提出的,在訓練數據集上應用了數據增強方法。實驗結果表明,經過特定任務的蒸餾操作后,TinyBERT模型在BERT模型方面取得了相當的性能。

TinyBERT模型訓練流程示意圖TinyBERT模型訓練流程示意圖

數據增強

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

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

盡管模型大小顯著減小,但所描述的數據增強機制通過允許TinyBERT學習更多不同的示例,對其性能產生了很大影響。

數據增強技術示意圖數據增強技術示意圖

模型設置

由于只有14.5M個參數,TinyBERT模型基礎型BERT模型小約7.5倍。它們的詳細比較如下圖所示:

基礎BERT模型與TinyBERT模型比較基礎BERT模型與TinyBERT模型比較

對于層映射,論文作者提出了一種統一的策略根據該策略,層映射函數將每個TinyBERT層映射到按序排序的三個為一組的BERT層中的第一個:g(m)=3*m。論文作者還研究了其他策略(如采用所有底部或頂部BERT層),但僅有統一策略顯示出最佳實驗結果個結論似乎是比較合乎邏輯的,因為它允許從不同的抽象層轉移知識,使轉移的信息更加多樣化。

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

訓練實現過程方面,TinyBERT模型是在英語維基百科(2500M個單詞)上訓練的,其大多數超參數與BERT模型庫中使用的相同。

結論

轉換蒸餾是自然語言處理中的一重要措施。考慮到基于轉換器的模型是目前機器學習中最強大的模型之一,我們可以通過應用轉換器蒸餾來有效地壓縮它們來進一步開發利用它們。這方面最偉大的例子之一是TinyBERT模型,它BERT模型基礎壓縮了7.5倍。

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

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

參考資料

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:Large Language Models: TinyBERT — Distilling BERT for NLP,作者:Vyacheslav Efimov



責任編輯:華軒 來源: 51CTO
相關推薦

2022-02-21 10:21:17

網絡IO模型

2022-06-07 14:47:43

飛書智能問答模型

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

谷歌開源機器學習

2020-01-19 10:33:09

框架Web開發

2024-07-26 10:23:52

2024-08-05 14:36:17

大型語言模型量化

2024-11-18 08:08:21

2024-12-18 15:00:31

ELMo模型自然語言

2017-08-31 10:48:59

CNN 模型壓縮算法

2022-01-05 08:30:31

BIONIO AIO

2011-07-11 09:46:33

虛擬化服務器

2024-09-13 08:18:10

2023-09-23 12:36:32

蘋果模型

2021-08-30 09:25:25

Bert模型PyTorch語言

2020-09-22 15:17:59

谷歌Android技術

2023-05-10 15:08:26

OpenAI語言模型人工智能

2020-05-29 10:23:19

Kubernetes容器開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片毛片毛片毛片毛片 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 99久久精品免费看国产免费软件 | 99国产精品久久久 | 国产精品色哟哟网站 | 视频一区二区在线观看 | 日韩精品一区二区三区四区视频 | 久久精品91 | 99热视| 在线观看h视频 | 欧美一级观看 | 精品视频一区二区三区在线观看 | 第四色影音先锋 | 久久久人成影片一区二区三区 | 久草免费福利 | 免费看国产片在线观看 | 久久久久久久电影 | 午夜精品久久久久久久久久久久久 | 拍拍无遮挡人做人爱视频免费观看 | 日韩免费电影 | 99精品免费| 国产中文视频 | 亚洲精久久久 | 成人精品 | 亚洲国产日韩一区 | 日韩中文字幕视频在线观看 | 欧洲成人午夜免费大片 | 91精品国产综合久久精品 | 国产高清在线精品一区二区三区 | 福利精品 | 久久久久久久一区 | 极品销魂美女一区二区 | 午夜视频在线观看网站 | 精品无码久久久久久国产 | 亚洲视频精品 | 国产乱码精品一品二品 | 久久久青草婷婷精品综合日韩 | 欧美bondage紧缚视频 | 精品视频网 | 亚欧精品 | 日韩网站在线观看 |