當前位置:
首頁 > 新聞 > 阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

雷鋒網 AI 科技評論按:4 月 30 日至 5 月 3 日,被學術界廣泛認可為「深度學習的頂級會議」的 ICLR 2018 在加拿大溫哥華舉辦。阿里巴巴與北大合作的一篇論文《Alternating Multi-bit Quantization for Recurrent Neural Networks 》被 ICLR 2018 錄用為 poster,該工作為第一作者許晨博士生在阿里巴巴搜索演算法組實習期間完成。主要思想為,通過量化參數到二值{-1,+1} 上來解決基於 RNN 的模型由於高維嵌入或多層循環導致的參數量過大的問題。

阿里巴巴搜索演算法組上月在 AI科技評論的資料庫項目「AI影響因子」中表現活躍。阿里巴巴搜索演算法組在 4 月 15 日於美國舉辦了首個「搜索和計算技術開放日」,分享全球化背景下阿里互聯網技術前沿應用經驗和未來發展觀點。搜索事業部產品負責人思函從業務的角度,尤其是技術和商業結合的角度,對技術在整個阿里巴巴商業環境中所能起到的作用進行了闡述和分享。本次 ICLR 2018 有論文被收錄,進一步展現了阿里巴巴搜索演算法組的學術實力。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

ICLR 2018 阿里巴巴參會成員

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

席奈與 poster 合影

介紹

循環神經網路 (RNN) 在語言模型、機器翻譯、語音識別、生成圖像標題等很多應用上都取得了非常好的效果。然而,這些模型常常是建立在高維的嵌入 (embedding) 或者多層的循環單元中,包含了大量的參數,使得無法在資源有限的移動端部署。此外,RNN 的計算依賴於與當前的隱狀態,只能被順序執行,因此在執行推斷時會造成比較大的延時。在擁有大規模並發請求的伺服器端,比如語音識別或者機器翻譯等應用,為了滿足線上苛刻的響應時間要求,需要部署大量的機器。在這項工作中,我們考慮通過量化參數到二值 {-1,+1} 上來解決上述問題。考慮將模型的權重量化成 1 比特,相對於全精度,直接帶來 32 倍的內存壓縮。而對 1 比特參數的矩陣乘法,如果不考慮具體實現,相對於全精度乘法,理論上也會帶來 32 倍的加速。然而,如果把模型的權重和激活都量化成 1 比特,在循環神經網路中,會帶來很大的精度損失。因此,很自然的折中方案就是採用多比特量化(如圖 1 所示)。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

Figure 1 多比特量化乘法示意

現有的多比特量化方法

1) 均勻 (Uniform) 量化採用下列的 k 比特量化方案:

這樣基於規則的量化方法非常容易實現, 但是對於非均勻數據的量化效果很差,而非均勻分布數據在深度神經網路卻更為常見。

2) 均衡 (Balanced) 量化通過數據預處理來解決均勻量化的弊端。該方法首先產生 2^k 個間隔,每個間隔大致包含等量的數據。然後該方法將每個間隔的中心線性映射到對應的量化編碼中。儘管看起來更有效,但是該方法還是基於規則,而這種規則並不能保證對所有的數據分布都起效果。

3) 貪婪法 (Greedy) 近似通過去解下面的帶離散約束的分解問題來實現量化:

對於 k=1, 上述問題存在閉式解。貪婪近似通過逐步量化餘量 (residue) 並將其推廣到 k 比特 (k>1) 的情形:

每個子步都有最優解

貪婪法非常高效,儘管不能得到一個高精度的解,但是將量化問題建模成一個優化問題的形式還是非常具有啟發性的。

4) 改進版 (Refined) 貪婪近似進一步拓展貪婪法以降低量化誤差。在上述第 j 步最小化問題中,該方法加上額外一步最小二乘來修正係數

在原文量化卷積神經網路權重的實驗中,修正版貪婪法被證實比原始的貪婪法更有效。然而,正如我們下面要講的,修正版的貪婪法在量化精度方面仍然不能令人滿意。

除了上述通用的多比特量化方案以外,還有文章還提出了三值量化,與 1 比特的二值量化相比,三值量化多了可行狀態 0。三值量化通過解如下問題

來實現編碼。然而,原文並未提出一種高效的解法,相反,作者通過經驗,將小於 0.7 / n||w||_1 的元素設成 0,並對剩餘元素採用如上所述的二值量化。三值量化其實本質上等價於此處的 2 比特量化,唯一不同的地方在於多了一個 a_1=a_2 的約束。當二值編碼被固定以後,最優係數 a_1 (或者 a_2 ) 類似地可以通過最小二乘得到。

基於交替方向法的多比特量化方案

接下來將介紹本文提出的量化方法,同樣我們也是通過解上述的優化問題來實現量化。為了簡單起見,首先考慮 k = 2 的情形,如果 a_1 和 a_2 已知且滿足 a_1 ≥ a_2,那麼可行編碼即被限制為以下四種情況 v={- a_1 - a_2, - a_1 + a_2, a_1 - a_2, a_1 + a_2}。對於w中的任意元素 w, 其編碼都是通過最小二乘來確定。我們相應地可以將整個坐標軸分成四份,落在某個區間上的 w 分別對應其中一個量化編碼。由最近鄰條件可得區間的邊界即為量化編碼的中間值,也就是 - a_1、0 以及 a_1。下圖給出一個示意。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

Figure 2 當實係數固定時,最優 2 比特編碼示意

對於任意 k 比特量化問題,假設已知 {a_i} ^k _{i=1},我們可以類似地將整個坐標軸分成 2^k 個區間,其邊界同樣通過相鄰可行編碼的中點來劃分。如果直接將待量化的實數 w 與所有區間邊界進行比較以確定對應編碼,總共需要 2^k 次,當 k 比較大,這種操作非常不經濟。事實上,我們可以利用可行編碼全集v中元素單調遞增的性質,將v均勻分成兩個子集:v_{1 : m/2}和v_{m/2+1 : m}, 其中 m 表示v的長度。如果 wv_{m/2} +v_{m/2+1})/2, 其可行編碼即被限制在子集v_{1 : m/2} 上。相反如果 w ≥ (v_{m/2} +v_{m/2+1})/2, 其可行編碼即被限制在子集v_{m/2+1 : m}上。通過遞歸地將可行編碼子集均勻劃分,我們只需要 k 次比較就可以得到最優編碼。該過程可以看成是一個二叉搜索樹,我們在下圖中給出了一個 k=2 時的簡單示意。一旦得到量化編碼,即可將其一一映射到對應的二值向量{b_i} ^k _{i=1}。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

Figure 3 二叉搜索樹將次比較降為 k 次比較

基於上面的發現,我們重新來考慮上一節中介紹的改進版貪婪近似。經過最小二乘修正實係數之後,二值編碼 {b_i} ^k _{i=1} 不再是最優,而該方法卻仍將其固定。為了進一步改進,交替最小化實係數和二值編碼變成了一個很自然的選擇。一旦用二叉搜索樹得到最優的 {b_i} ^k _{i=1} , 可以將其固定,並採用最小二乘更新 {a_i} ^k _{i=1}。在真實實驗中,以貪婪法得到的解作初始化,我們發現只需要兩步交替迭代就足以得到高精度的解。

實驗結果

我們在語言模型上進行量化實驗,分別測試了 LSTM 和 GRU 兩種架構。因為

Table 1 不同方法近似 PTB 數據集上訓練好的 LSTM 的權重。其中 FP 表示全精度

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

Table 2 不同方法近似 PTB 數據集上訓練好的 GRU 的權重

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

實驗是去預測下一個單詞,其效果採用單字複雜度來衡量 (perplexity per word, 簡寫成 PPW)。為了檢驗所有的演算法量化精度,我們首先對訓練好的全精度權重做近似 (沒有量化激活或者重訓練),結果如表 1 和表 2 所示。注意到均勻量化和均衡量化是基於規則的,其目標並不在於最小化誤差,因此這兩種方法會得到差很多的結果。我們還在其他數據集上重複了上述實驗,對於兩種循環神經網路結構 LSTM 和 GRU,結果都與此處相似。

Table 3 PTB 數據集上多比特量化 LSTM 和 GRU 的測試 PPW,其中均勻量化和均衡量化為現有論文中的結果,改進版貪婪法為我們自己實現的結果。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

Table 4 WikiText-2 數據集上多比特量化 LSTM 和 GRU 的測試 PPW。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

Table 5 Text-8 數據集上多比特量化 LSTM 和 GRU 的測試 PPW。

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

我們還進行了權重和激活同時量化的實驗,結果如表 3、4 和 5 所示。從中可以看到,本文提出的交替方向法明顯好過現有其他量化方法。即使與表現最好的改進版貪婪法相比,交替方向法實現類似的精度大概可以少用一個比特。

我們還在 CPU 中實現了矩陣向量的二值乘法,其結果如表 6 所示。

Table 6 CPU 中二值乘法與全精度乘法的時間比較

阿里巴巴:基於交替方向法的循環神經網路多比特量化|ICLR 2018

總結

在這個工作中,我們主要考慮神經網路的多比特量化壓縮加速問題。我們發現,如果編碼的實係數固定,那麼離散的二值編碼 {-1,+1} 可以通過二叉搜索樹高效的求解。基於這個發現,我們相應地提出交替方向法。我們將該方法用於量化語言模型中的 LSTM 和 GRU 結構,與全精度模型相比,通過 2 比特量化,我們可以減少約 16 倍的內存消耗,以及在 CPU 上實現約 6 倍的真實推斷加速,而只產生少量的準確率損失。通過 3 比特量化,該方法在準確率上可以實現幾乎沒有損失甚至超過原始模型,並減少約 10.5 倍的內存消耗,以及在 CPU 上實現約 3 倍的真實推斷加速。這些結果都遠遠優於現有量化方法的結果。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

中國三大運營商 5G 時間表都已經確定,6G 研究也開始了
評建設銀行子公司建信金融科技:它到底會怎麼玩?

TAG:雷鋒網 |