2020 年 2 月 7 日-2 月 12 日,AAAI 2020 將於美國紐約舉辦。不久之前,大會官方公佈了今年的論文收錄資訊:收到 8800 篇提交論文,評審了 7737 篇,接收 1591 篇,接收率 20。6%。為向讀者們分享更多的優質內容、促進學術交流,在 AAAI 2020 開幕之前,機器之心策劃了多期線上分享。

機器之心釋出,機器之心編輯部。

上週四,加州大學伯克利分校 Zhewei Yao 博士分享了他的 AAAI 論文《Q-BERT: Hessian Based Ultra Low Precision Quantization of BERT》,本文對此論文進行了詳細解讀。該研究介紹了一種使用二階資訊進行模型壓縮的新型系統性方法,能夠在影象分類、目標檢測和自然語言處理等一系列具有挑戰性的任務中產生前所未有的小模型。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

論文地址:

https://

arxiv。org/pdf/1909。0584

0。pdf

研究貢獻

該論文對基於 BERT 的模型執行超低精度量化,旨在最小化效能下降幅度,同時保持硬體效率。為此,研究者使用了多項新技術,並提出了新模型 Q-BERT。

該研究的貢獻如下:

研究者對二階資訊(即 Hessian 資訊)進行大量逐層分析,進而對 BERT 執行混合精度量化。研究發現,與計算機視覺領域中的神經網路相比,BERT 的 Hessian 行為存在極大的不同。因此,該研究提出一種基於 top 特徵值均值和方差的敏感度度量指標,以實現更好的混合精度量化。這與僅利用均值的研究 [8] 相反。

研究者提出新的量化機制——組量化(group-wise quantization),該方法能夠緩解準確率下降問題,同時不會導致硬體複雜度顯著上升。具體而言,組量化機制將每個矩陣分割為不同的組,每個組擁有獨立的量化範圍和查詢表。

研究者調查了 BERT 量化中的瓶頸,即不同因素如何影響 NLP 效能和模型壓縮率之間的權衡,這些因素包括量化機制,以及嵌入、自注意力和全連線層等模組。

方法

該研究提出的 BERT 量化方法包括:基於 Hessian 資訊的混合精度量化,以及用於組量化機制的技術。

和 [7] 一樣,微調後的 BERT_BASE 模型包含三部分:嵌入、基於 Transformer 的編碼器層、輸出層。BERT_BASE 模型的引數大小為:嵌入 91MB、編碼器 325MB、輸出 0。01MB。由於輸出層的規模極小,該研究並未對這部分執行量化。也就是說,該研究用不同方式對嵌入和編碼器引數執行量化。

量化過程

通用神經網路推斷通常按照權重和啟用的浮點數精度來執行。量化將網路權重限制為一個有限集,如下所示:

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

其中 Q 是量化運算元,z 是實數輸入張量(啟用或權重),(t_j , t_j+1] 表示一個區間,j 為實數 (j = 0, 。 。 。 , 2^k − 1)。

量化函式 Q 存在多種選擇。該研究使用統一的量化函式,張量中的浮點值範圍平分 [12, 42],可以用 0, 。 。 。 , 2^k − 1 中的無符號整數來表示。但是,研究者選擇使用統一的量化函式,以便獲得更高效、簡便的硬體實現。為了將梯度透過不可微函式 Q 進行反向傳播,研究者使用了直通估計器(Straight-through Estimator,STE)。

混合精度量化

研究者探索了混合精度量化,即對敏感度較高的層分配更多 bit,以保持效能。為此研究者開發了 Hessian AWare Quantization (HAWQ)。由於每個層 Hessian 矩陣的大小為 7M × 7M,因此存在一個常見的誤解:計算二階資訊並不可行。但是,Hessian 譜可以透過矩陣無關的冪迭代方法來計算,該方法無需顯式資訊。

為方便讀者理解,這裡以第一個編碼器層為例。將該層的梯度標註為 g_1,對於和 g_1 具備相同維度的隨機向量 v,存在

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

其中 H_1 是第一個編碼器層的 Hessian 矩陣。第二個方程來自於「v 獨立於 W_1」這一事實。然後利用冪迭代計算 top 特徵值,如附錄中演算法 1 所示。λ_i 表示第 i 個編碼器層的 top 特徵值。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

冪迭代演算法。

圖 2 展示了 BERT_BASE 中不同層的 top Hessian 特徵值的分佈情況。不同層的特徵值數量不同,儘管所有層的結構和大小均相同。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

圖 2:從 (a) 到 (d):不同編碼器層在 SST-2、MNLI、CoNNL-03、SQuAD 任務上的 top 特徵值分佈情況。

對於 top 特徵值較小的層(圖 1 中比較平坦的損失分佈),會執行更具攻擊性的量化。但是,研究者發現,僅基於平均 top 特徵值來分配 bit 的做法不適用於很多 NLP 任務。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

圖 1:不同層在 MNLI 和 CoNNL-03 任務上的損失分佈,該分佈圖是透過沿著 Hessian 矩陣的前兩個主要特徵值擾動引數繪製而成的。銅球表示引數空間中 BERT 模型的收斂點。這些層表明較平坦的曲率會被量化為較低精度。

為了解決此問題,研究者使用以下度量指標來替代僅使用均值的方法:

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

其中 λ_i 是 H_i top 特徵值的分佈,基於 10% 的訓練資料集計算得到。接下來,研究者基於選擇的精度設定執行量化感知的微調(quantization-aware fine-tuning)。

研究者強調了一個重要的技術點:該方法預計,在執行量化前,訓練模型已收斂至區域性極小值。必要的最優性條件是零梯度和正曲率(即正 Hessian 特徵值)。

根據分析,研究者發現,在 MNLI、CoNLL-03 和 SST-2 這三項任務中,top Hessian 特徵值確實為正值。但針對 SQuAD 微調後的 BERT 模型無法收斂至區域性極小值,參見圖 2d 中的 Hessian 特徵值,那裡存在非常大的負特徵值。直接視覺化損失分佈也可以證明這一點,詳見下圖 3:

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

圖 3:不同層在 SQuAD 任務上的損失分佈,該分佈圖是透過沿著 Hessian 矩陣的前兩個主要特徵值擾動引數繪製而成的。銅球表示引數空間中 BERT 模型的收斂點。

組量化

假設輸入序列中有 n 個詞,每個詞有一個 d 維嵌入向量(BERT_BASE 中 d = 768)。在 Transformer 編碼器中,每一個自注意力頭具備 4 個密集矩陣,即

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

其中 N_h 是注意力頭的數量。這裡,W_k、W_q、W_v 和 W_o 分別表示 key、query、值和輸出權重矩陣。每個自注意力頭按以下公式計算加權和:

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

該研究針對基於注意力的模型提出組量化機制。將多頭自注意力(MHSA)的密集矩陣中每個注意力頭的矩陣 W 看作一個組,這樣一共有 12 組。在每個組中,將多個順序輸出神經元看作一個子組,每個子組具備自己的量化範圍。

W_v 的圖示見下圖 4,研究者將 N_h 值矩陣 W_v 連線為一個三維張量。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

圖 4:組量化方法概覽。該圖使用多頭自注意力層的值矩陣繪製而成。

實驗

研究者在四個下游任務中評估 Q-BERT,這些任務包括情感分類、自然語言推斷、命名實體識別和機器閱讀理解。Q-BERT 達到了 13 倍的權重壓縮率,啟用大小和嵌入大小僅為原版的 1/4,且準確率損失在 2。3% 以內。

據作者表示,這是首個將 BERT 以超低精度進行量化,且還能保持效能損失在可接受範圍內的工作。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

表 1:BERT_BASE 在自然語言理解任務上的量化結果,每個層有 128 個組。出於簡潔性和效用考慮,除基線以外的所有模型都使用 8-bits 啟用。此外,研究者對比了 Q-BERT 和未使用混合精度量化或組量化的直接量化方法(DirectQ)。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

表 2:Q-BERT 組量化在三個任務上的效果。所有任務中量化 bit 的設定均為:權重 4、嵌入 8、啟用 8。自上而下,組的數量逐漸增加。為了平衡準確率和硬體效率,其他實驗中的組數量均為 128。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

表 3:不同模組的量化效果。ew-bits、ep-bits、s-bits 和 f-bits 分別表示詞嵌入、位置嵌入、多頭注意力層和全連線層所使用的量化 bit。(a) (b) 中,權重和啟用 bit 均設定為 8。

AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二階資訊壓縮神經網路

圖 5:Q-BERT/DirectQ 和基線模型之間的注意力分佈 KL 散度。Q-BERT 和基線之間的距離要比 DirectQ 和基線之間的距離短得多。