深2.5至4倍,參數和計算量更少,DeLighT怎麼做到的?

2020-12-16 機器之心Pro

機器之心報導

編輯:陳萍

深度學習的參數太多、模型太大、部署不方便、消耗的計算資源過多,種種原因加大了深度學習愛好者的「貧富差距」。然而算法優化一直在路上……

Google 團隊提出的 NLP 經典之作 Transformer 由 Ashish Vaswani 等人在 2017 年發表的論文《Attention Is All You Need》 中提出。但由於模型參數量過大,該模型訓練困難、部署不方便,研究人員一直在探究如何優化 Transformer。近日,來自華盛頓大學和 FAIR 的 Sachin Mehta 等人提出了一個網絡結構較深但輕量級的 Transformer——DeLighT。

論文連結:https://arxiv.org/abs/2008.00623

代碼連結:https://github.com/sacmehta/delight

論文簡介

在這篇文章中,作者提出了一個網絡較深但輕量級的 Transformer——DeLighT,與之前基於 transformer 的模型相比,它的參數更少,但性能相當甚至更好。

DeLighT 能夠更高效地分配參數,主要表現在:1)每個 Transformer 塊使用結構較深但參數較少的 DExTra;2)在所有塊上使用逐塊縮放(block-wise scaling),使靠近輸入的 DeLighT 塊比較淺且窄,靠近輸出的 DeLighT 塊比較寬且深。總的來說,DeLighT 的網絡深度是標準 transformer 模型的 2.5 到 4 倍,但參數量和計算量都更少。

DeLighT 的核心是 DExTra 變換(DExTra transformation),該變換使用組線性變換和擴展 - 縮小(expand-reduce)策略來有效地改變 DeLighT 塊的寬度和深度。由於這些變換本質上是局部的,因此 DExTra 利用特徵 shuffling(類似於卷積網絡中的通道 shuffling)在不同組之間共享信息。這種寬且深的表示有助於用單頭注意力和輕量級前饋層替換 transformer 中的多頭注意力和前饋層,從而減少網絡參數量。重要的是,與 transformer 不同,DExTra 模塊可以獨立於輸入大小進行縮放。通過使用靠近輸入的較淺和窄的 DeLighT 塊以及靠近輸出的較深和寬的 DeLighT 塊,在各個塊之間更高效地分配參數。

DeLighT 三大特點

改進 transformer:與之前的工作不同,該論文展示了對每個 Transformer 塊使用 DExTra 以及基於所有塊使用逐塊縮放時,能夠實現參數的高效分配。結果顯示,DeLighT 在參數更少的情況下,能達到相同的效果甚至更好。

模型壓縮:為了進一步提高序列模型的性能,該研究引入了逐塊縮放,允許每個塊有不同的尺寸,以及更高效地進行參數分配。

改進序列模型:與 DeLighT 最接近的工作是 DeFINE 單元,它使用擴展 - 縮減策略學習模型表示。DeFINE 單元(圖 1a)和 DExTra(圖 1b)之間的關鍵區別是,DExTra 能更高效地在擴展 - 縮減層中分配參數。DeFINE 在組線性變換中使用較少的組來學習更寬的表示,而 DExTra 使用較多的組和較少的參數來學習更寬的表示。

圖 1:(a, b) DeFINE 單元和 DExTra 之間的對比。(c, d) 標準 transformer 模塊與 DeLighT 模塊中的 block-wise 對比。

DeLighT:網絡很深但參數較少的 Transformer

DExTra

DExTra 變換由五個配置參數控制:1)深度 N,2)寬度乘數 m_w,3)輸入維數 d_m,4)輸出維數 d_o,5)組線性變換中的最大組 g_max。

在擴展階段,DExTra 使用「N/2」層線性地將 d_m 維輸入投影到高維空間,d_max = m_wd_m。在縮減階段,DExTra 使用剩餘的 N 「N/2」層,將 d_max 維向量投影到 d_o 維空間。在數學上,每一層 l 的輸出 Y 可定義為:

每一層 l 的組數則按照以下公式計算:

DeLighT 模塊

Transformer 塊:標準 transformer 塊(圖 1c)由多頭注意力組成,使用查詢 - 鍵 - 值(query-key-value)分解來建模序列 token 之間的關係,並使用前饋網絡(FFN)來學習更寬的表示。

DeLighT 塊:圖 1d 展示了如何將 DExTra 集成到 transformer 塊中以提高效率。首先將 d_m 維輸入饋入 DExTra 變換,產生 d_o 維輸出,其中 d_o < d_m。然後將這些 d_o 維輸出饋送至單頭注意力,緊接著使用輕量級 FFN 來建模它們的關係。

DExTra 單頭注意力:假設輸入序列有 n 個 token,每個 token 的維數為 d_m。首先將這 n 個 d_m 維輸入饋送到 DExTra 變換,以生成 n 個 d_o 維輸出,其中 d_o

DeLighT 塊通過 DExTra 學習到較寬的輸入表示,這就使得單頭注意力能夠代替多頭注意力。標準 transformer 以及 DeLighT 塊中注意力的計算成本分別為 O(d_mn^2 )、O(d_on^2 ),d_o

輕量級 FFN:與 transformer 中的 FFN 相似,該模塊也由兩個線性層組成。由於 DeLighT 塊已經使用 DExTra 變換集成了較寬的表示,因此我們可以反轉 transformer 中 FFN 層的功能。第一層將輸入的維數從 d_m 減小到 d_m / r,第二層將輸入維數從 d_m / r 擴展到 d_m,其中 r 是減小因子(見圖 1d)。該研究提出的輕量級 FFN 將 FFN 中的參數和計算量減少到原來的 rd_f / d_m。在標準 transformer 中,FFN 維度擴大了 3 倍。而在該研究實驗中,維度縮小了 3 倍。因此,輕量級 FFN 將 FFN 中的參數量減少到了原來的 1/16。

逐塊縮放

改善序列模型性能的標準方法包括增加模型維度(寬度縮放)、堆疊更多塊(深度縮放),或兩者兼具。為了創建非常深且寬的網絡,該研究將模型縮放擴展至塊級別。下圖 2 比較了均勻縮放與逐塊縮放:

縮放 DeLighT 塊:DeLighT 塊使用 DExTra 學習深且寬的表示,DExTra 的深度和寬度由兩個配置參數控制:組變換層數 N 和寬度乘數 m_w(圖 2a)。這些配置參數能夠在獨立於輸入 d_m 和輸出 d_o 維度的情況下,增加 DeLighT 塊內的可學習參數數量。此處,該論文使用逐塊縮放來創建具有可變大小的 DeLighT 塊網絡,在輸入附近分配較淺且窄的 DeLighT 塊,在輸出附近分配更深且寬的 DeLighT 塊。

為此,該研究提出兩個配置參數:DeLighT 網絡中 DExTra 的最小深度 N_min 和最大深度 N_max。然後,使用線性縮放(公式 4)計算每個 DeLighT 塊 b 中 DExTra 的深度 N^b 和寬度乘數 m^b_w。通過這種縮放,每個 DeLighT 塊 b 都有不同的深度和寬度(圖 2a)。

實驗結果

該論文在兩個常見的序列建模任務(機器翻譯和語言建模)上進行了性能比較。

機器翻譯

該研究對比了 DeLighT 和當前最優方法(標準 transformer [1]、動態卷積 [21] 和 lite transformer [22])在機器翻譯語料庫上的性能,如下圖 3 所示。圖 3c 表明,DeLighT 提供了最優的性能,在參數和計算量較少的情況下性能優於其他模型。

圖 3:模型在機器翻譯語料庫上的結果。與標準 transformers 相比,DeLighT 模型用更少的參數就能達到類似的性能。圖中 和 分別表示來自 [21] 和 [48] 的最優 transformer 基線。

表 1:在 WMT』14 En-Fr 數據集上,機器翻譯模型在網絡深度、網絡參數、MAC 數量和 BLEU 值方面的對比結果。DeLighT 表現最優異,在網絡深度較深的情況下,參數量和運算量都更少。

語言建模

該研究在 WikiText-103 數據集上,對 DeLighT 和其他方法的性能進行了對比(如表 2a 所示)。表 2b 則繪製了 DeLighT 和 Transformer-XL [9] 的困惑度隨參數量的變化情況。這兩個表都表明,DeLighT 優於當前最優的方法(包括 Transformer-XL),而且它使用更小的上下文長度和更少的參數實現了這一點,這表明使用 DeLighT 學得的更深且寬的表示有助於建模強大的上下文關係。

控制變量研究

表 3a 研究了 DeLighT 塊參數的影響,這些參數分別是網絡最小深度 N_min、最大深度 N_max、寬度乘法 m_w 和模型維度 d_m(見圖 1d)。表 3b-d 分別展示了 DExTra 變換、特徵 shuffling 和輕量級 FFN 的影響。

總結

該研究提出了一種非常輕巧但深度較大的 transformer 框架——DeLighT,該框架可在 DeLighT 塊內以及對所有 DeLighT 塊高效分配參數。與當前最優的 Transformer 模型相比,DeLighT 模型具備以下優點:1)非常深且輕量級;2)提供相似或更好的性能。

相關焦點

  • 深2.5至4倍,參數和計算量卻更少,DeLighT Transformer是怎麼做到的?
    總的來說,DeLighT 的網絡深度是標準 transformer 模型的 2.5 到 4 倍,但參數量和計算量都更少。DeLighT 的核心是 DExTra 變換(DExTra transformation),該變換使用組線性變換和擴展 - 縮小(expand-reduce)策略來有效地改變 DeLighT 塊的寬度和深度。
  • 比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet
    EfficientDet 的計算量較其他檢測器少,但準確率優於後者,其中 EfficientDet-D7 獲得了當前最優性能。此外,EfficientDet 模型在 GPU 和 CPU 上的計算速度分別是之前檢測器的 3.2 倍和 8.1 倍,參見圖 4 和表 2。圖 4:模型大小和推斷延遲對比。延遲均為使用批大小 1 在同樣的機器上測量得到(這些計算機均配備一塊 Titan V GPU 和 Xeon CPU)。
  • 後量子密碼硬體加速:計算速度提升2.5倍,ATP減小4.9倍
    為應對該類挑戰,學術界和工業界早已開始著手研究能抵禦量子計算攻擊的後量子密碼算法。但問題在於,後量子密碼算法的運算量通常非常巨大,想要真正應用和推廣,就對專用後量子密碼晶片提出了高要求:必須要依靠高效的硬體架構,從而能以較低資源開銷獲得滿足應用需求的執行速度。
  • 室內PM2.5調研報告稱室內PM2.5吸入量是室外四倍
    一份調研報告顯示,相對於室外PM2.5汙染,室內PM2.5汙染對人的影響更顯著,PM2.5吸入量室內佔八成。在同等外部條件下,辦公環境的室內等級略優於居住環境,樓層17層以上室內等級最優。   據統計,現在人們70%至90%時間處於室內,對室外空氣品質,人們可以通過肉眼觀測霧霾強度、網絡獲取PM2.5官方監測值等方式獲取相關信息。然而,對於室內PM2.5濃度,無法進行直觀的能見度判斷,加之室內環境差異性較大,專業PM2.5檢測設備龐大昂貴,難以進行普遍實時的監測,造成人們一直缺乏對室內PM2.5汙染程度全面系統的認識和研究。
  • 空氣淨化器PM2.5和甲醛適用面積選型
    人們在室內工作和生活通常佔80%以上時間,保持良好的室內空氣品質必不可少。當室外發生灰霾汙染時,配置空氣淨化器是有效防控PM2.5汙染室內的一種方法。近年空氣淨化器新國標已發布,向消費者重點強調參數選型的 「3高1低」,包括:高CADR(潔淨空氣量)、高CCM(累積潔淨空氣量)、高能效、低噪聲值。
  • 【ELECTRA】 更具計算效率與參數效率的文本編碼器
    全面的實驗表明,這種新的預訓練任務比MLM更有效,因為該模型從所有輸入令牌中學習,而不僅僅是從被掩蓋的部分中學習。結果,在相同的模型大小,數據和計算條件下,通過本文方法學習的上下文表示大大優於通過 BERT 和 XLNet 等方法學習的上下文表示。小模型的收益尤為明顯。例如,在 GLUE 自然語言理解基準上,一個GPU上訓練了 4 天的模型優於 GPT (30倍的計算量)。
  • 中消協報告:市面上三十款補鈣產品含鈣量最大相差2.5倍
    中消協報告:市面上三十款補鈣產品含鈣量最大相差2.5倍 澎湃新聞記者 李珣 2018-10-17 22:21 來源:澎湃新聞
  • 失重秤的概述、運行參數的設計、計算以及應用實例
    我們可按下文中推薦的經驗法則「在最大給料量時的重新裝料頻率選擇為15至20次/h」來核算,則每次重新裝料重量為36/15~36/20,即1.8kg~2.4kg,每個稱重傳感器承受的物料重量不足1kg,有效量程大致在0.5~1%。一般稱重傳感器的有效量程至少應該在10~30%或更大一點,才能保證較為準確的稱重。
  • 分子量計算
    Ø 通過與參考標準進行比較計算分子量[1]。Ø 利用Porod參數計算分子量[2]。Ø 利用體積相關性計算分子量與[3]。ATSAS軟體還支持兩種其他方法,如果安裝了ATSAS,RAW將顯示這些方法:Ø 通過將散射與已知結構進行比較來估算分子量[4]。Ø 通過貝葉斯推論從其他分子量方法計算分子量[5]。
  • 月經量少怎麼調理 月經量少應該吃哪些食物
    如果身體健康,那麼月經就會很準時,並且量充足,而且顏色正常。如果月經量減少,並且顏色深的話,這就代表了身體也許是有哪方面的問題。月經是女人每個月的排毒系統。如果月經量少的話,很有可能是因為身體體寒、營養不全、內分泌等問題。所以月經量少的話要如何調理?月經量少是什麼原因?月經量少並且發黑怎麼辦?有哪些藥膳食療的方法?
  • 室內含逾300種汙染物 人均室內PM2.5吸入量為室外4倍
    對於公眾關心的PM2.5,據清華大學發布的首個室內PM2.5汙染公益調研報告,相對於室外PM2.5汙染,室內PM2.5對人的影響更顯著——人均室內PM2.5吸入量為室外的4倍。  數據顯示,68%的人體疾病都與室內空氣汙染有關。我國城市空氣汙染嚴重,在室內可檢測出約300多種汙染物。
  • 卷積層的參數量與計算量
    ,這裡整理記錄一下卷積層參數量與計算量的計算方式。如果輸入特徵圖為cxhxw, 輸出特徵圖為oxhxw,(假設由於padding導致輸入輸出特徵圖大小不變)卷積核尺寸1 x 1 x c x o,一共有o個1 x 1 x c的卷積核權重:1 x 1 x c x o偏置:  oBN:2 x o總的參數數目:(c+3) x o1.4 depth wise separable
  • 我們每天吸了多少PM2.5?
    如果出現嚴重汙染,PM2.5質量濃度會達到300微克/立方米,那麼按照一天10~15立方米的呼吸量(糾結該數字者請研究下方小注),我們一天會大致吸入3~4.5毫克的PM2.5(1000微克=1毫克)。不過,這裡的吸入和進入人體是不能劃等號的。吸入後還會伴隨呼氣,也就意味著3~4.5毫克的PM2.5不會全部滯留人體內,這和吸菸比較相似。
  • 太陽對月球的引力比地球大2.5倍,為什麼月球還圍繞著地球轉?
    一副日食成因圖,剛好可以來形容地月系圍繞太陽公轉過程中相互位置的關係,在這個體系中三者的參數分別為:地球質量:5.965×10^24千克;月球質量:7.349×10^22千克;地月平均距離為:384000KM
  • 嬰兒吃奶量計算公式
  • 月經褐色量少怎麼回事 人流後月經褐色量少怎麼回事
    月經褐色血量少每個月來一次大姨媽,正常是60毫升左右,可以根據衛生巾的使用情況來判斷她們是多是少,月經量少是怎麼回事?月經少有許多原因。年輕的女性朋友必須注意這一點。那麼接下來就讓我們一起來看看:月經量過少是怎麼回事?月經量過少是怎麼回事1、子宮發育不良。
  • 月經量少是怎麼回事 有子宮肌瘤月經量少是怎麼回事
    月經量少是怎麼回事其實月經量比較少,而且月經總是提前,這種現象都是由於個人的身體狀況改變而變化的,所以儘量的要保持女性的身體比較健康。否則是極其容易使女性在今後的生活中有許多的毛病出現的,特別是容易出現內分泌紛亂。那麼,月經量少提前怎麼回事?
  • 深澳空汙模擬值高出臺電3倍 影響新北臺北基隆桃園新竹宜蘭
    深澳空汙模擬值高出臺電3倍 影響新北臺北基隆桃園新竹宜蘭 2018年03月16日 10:25:00來源:中國臺灣網 (圖片來源:臺灣東森新聞雲)  中國臺灣網3月16日訊  據臺灣東森新聞雲報導,臺當局「環保署」環評大會14日以一票之差通過深澳電廠擴建燃煤計劃案。新北市環保局委託臺灣中興大學教授莊秉潔進行的深澳空汙模擬報告發現,PM2.5最大日平均值增量更是比臺電評估報告中的數值足足高了3倍以上,且影響範圍除了北北基外,桃園宜蘭的情況恐更為嚴重。
  • 鄰居同時養的豬居然比我多賣三十萬,怎麼餵豬才能長肉快?
    那麼怎麼餵豬生長得更快呢?生豬要怎麼變胖呢?下面跟大家總結幾個簡單易懂的方法! 一、怎麼餵豬生長快? 1.注意飲食量和豬的攝取量。 衡量飼料體積大小可用飼料風乾物含量計算。
  • 半橋 LLC 基波分析和參數計算過程推導
    要想弄明白和推導理論公式,首先溫習一下傅立葉級數和 RLC 串聯諧振知識。傅立葉級數怎麼推導的呢?詳細的推導過程學習課件我已上傳至論壇,大家可以去論壇自行下載學習。這裡直接入手 LLC 變換器理論推導,本文主要談談不對稱半橋結構,次級輸出採用全波整流。LLC 其實也是 DC-DC 變換器,輸出側電壓為方波,電流為正弦波。