日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

参数少一半,效果还更好,天津大学和微软提出Transformer压缩模型

發布時間:2023/11/21 综合教程 56 生活家
生活随笔 收集整理的這篇文章主要介紹了 参数少一半,效果还更好,天津大学和微软提出Transformer压缩模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  作者:Xindian Ma、Peng Zhang、Shuai Zhang、Nan Duan、Yuexian Hou、Dawei   Song、Ming Zhou

  機器之心編譯,參與:王子嘉、一鳴、路,選自 arXiv

  由于在自然語言處理任務中的突出表現,基于 Transformer 的預訓練語言模型是 NLP 領域的研究重點。考慮到模型參數量過大,導致其訓練困難,部署不方便,研究人員一直在探究壓縮模型的方法。近日,天津大學聯合微軟亞洲研究院提出了 Transformer 的壓縮方法,不僅減少了近一半的參數量,模型在語言建模和神經機器翻譯任務的表現也有所提升。這一研究可幫助在一些算力資源較小的環境中部署預訓練語言模型。

  引言

  近來,預訓練語言模型在很多 NLP 任務中表現良好。特別是基于 Transformer 的預訓練語言模型,它完全基于自注意機機制,在自然語言處理(NLP)各項任務中取得了突破。

  然而,在這些模型中,Transformer 的核心結構——多頭注意力機制限制了模型的發展。多頭注意力本身帶來了大量的模型,這可能使訓練中出現問題,而部署模型、導入龐大數量的參數也需要較高的資源支持。因此,壓縮大型神經預訓練語言模型一直是 NLP 研究中的重要問題。

  為了解決這一問題,基于張量分解和參數共享的思想,本文提出了多頭線性注意力(Multi-linear attention)和 Block-Term Tensor Decomposition(BTD)。研究人員在語言建模任務及神經翻譯任務上進行了測試,與許多語言建模方法相比,多頭線性注意力機制不僅可以大大壓縮模型參數數量,而且提升了模型的性能。

  論文地址:https://arxiv.org/pdf/1906.09777.pdf

  一、Transformer 的張量化

  在 Transformer 中,多頭注意力是一個很重要的機制,由于 Query、Key 和 Value 在訓練中會進行多次線性變換,且每個頭的注意力單獨計算,因此產生了大量的冗余參數。為了更好地壓縮多頭注意力機制中的參數,目前主要有兩個挑戰:

  • Transformer 的自注意函數是非線性函數,難以壓縮;
  • 壓縮后的注意力模型難以直接集成到 Transformer 的編碼器-解碼器框架中。

  為了解決這些問題,研究人員提出的方法結合了低秩近似和參數共享的思想,因此實現了更高的壓縮比。雖然可以重建 Transformer 中的自注意力機制(縮放點積注意力),但他們并沒有這么做,而是選擇了分割三階張量(即多線性注意力的輸出),這樣更利于提高實驗準確率。

  研究采用的壓縮方法如圖所示:

  • 在圖 2(左)中,研究人員將多頭注意力重建為一個單塊注意力(Single-block attention),采用的 Tucker 分解是一種低秩分解方法。
  • 在圖 2(右)中,為了壓縮多頭注意力機制中的參數,研究人員提出了一種基于 Block-Term 張量分解的多線性注意力機制。這種機制在多個塊之間共享因子矩陣(參數共享)。


圖 2:模型的壓縮方法:左圖為使用 Tucker 分解構建單塊注意力。右圖則構建了新的注意力機制——多頭線性注意力。

  壓縮多頭自注意力

  模型壓縮遇到的第一個問題是壓縮多頭自注意力中的參數數量。為了解決這個問題,研究人員首先證明了正交基向量可以線性地表示自注意力機制。然后,通過初始化低秩的核張量,重建新的注意力表示。為了構建多頭注意力機制并壓縮模型,他們使用了 Block-Term 張量分解(BTD),這是一種 CP 分解和 Tucker 分解的結合。Q、K、V 在構建每個三階塊張量的時候共享,因此可以降低許多參數。

  圖 2(左)展示了單塊注意機制的結構。首先,Query、Key 和 Value 可以映射成三個因子矩陣 Q、K、V,它們由三組正交基向量組成。然后通過初始化一個可訓練的三階對角張量 G 來構建一個新的注意力機制(單塊注意機制)。在圖 2(左)中,R 是張量的秩,N 是序列的長度,d 是矩陣的維數。利用 Tucker 分解,可以計算出單塊注意力的表達式:

  集成多頭線性注意力

  為了將壓縮后的單塊注意力張量集成在 Transformer 中,首先,研究人員計算了每個塊張量的平均值。其次,將張量分割為矩陣,然后將這些矩陣級聯,作為 Transformer 中下一層的輸入,這樣就可以集成在 Transformer 的編碼器-解碼器結構中。

  在圖 2(右)中,為了完成多頭機制并壓縮多組映射參數的參數,研究人員使用一組線性映射,并共享線性映射的輸出。所學習的線性投影可以將 Query、Key 和 Value 映射到由基向量組成的三個矩陣。在此基礎上,利用 Block-Term 張量分解來建立多頭機制。研究人員將這個模型命名為多線性注意力,可將其表示為:

  這是一個壓縮模型。在對 Transformer 的多頭注意力進行壓縮后,實現了張量化的 Transformer。多線性注意力可以被融合到 Transformer 中。

  二、實驗結果

  為了檢驗在 Transformer 中對多頭注意力所作調整的效果,研究人員在語言建模 (LM) 和神經機器翻譯 (NMT) 兩個任務中進行了實驗。

  語言建模

  語言建模的任務是預測句子中下一個單詞。研究采用了語言建模的標準設置——根據前一個 token 預測下一個 token。選擇了小型數據集 PTB,中等數據集 WikiText-103 和大型數據集 One-Billion。在預處理中,所有單詞變為小寫。新行被替換為<eos>。詞匯表使用的是常見的單詞,未出現的單詞由 [UNK] 來表示。模型的評估基于困惑度(PPL),即每個單詞的平均對數似然。PPL 越低,模型越好。

  實驗采用了最新的開源語言建模體系結構 Transformer,并將標準的多頭注意力層替換為多線性注意力層。然后,我們在 PTB、WikiText-103 和 One-Billian 單詞基準數據集上測試不同的模型配置,結果如表 1 和表 2 所示。


表 1:在 One-Billion 數據集上,模型的參數數量和其困惑度分數。Core-1 表示模型使用了單核張量。而 Core-2 表示使用了兩個塊張量(block term tensor)。


表 2:在 PTB 和 WikiText-103 兩個數據集上,模型的參數數量和其困惑度分數。「-」表示沒有該模型的表現報告。「*」表示為研究人員自己實現的模型結果。

  神經機器翻譯

  在這個任務中,研究人員在 WMT 2016 英譯德數據集上對 Transformer 模型進行了訓練。在實驗中,使用多頭線性注意力替換了每個注意層。為了評估,使用集束搜索,限定大小為 5,長度懲罰 α= 0.6。結果與 Transformer 進行了比較,如表 3 所示。*表示研究人員自己實現的結果。


表 3:模型參數數量和對應的 BLEU 分數。

  

總結

以上是生活随笔為你收集整理的参数少一半,效果还更好,天津大学和微软提出Transformer压缩模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。