0
本文作者: camel | 編輯:郭奕欣 | 2018-05-06 15:58 | 專題:ICLR 2018 |
雷鋒網(wǎng) AI 科技評(píng)論按:4 月 30 日至 5 月 3 日,被學(xué)術(shù)界廣泛認(rèn)可為「深度學(xué)習(xí)的頂級(jí)會(huì)議」的 ICLR 2018 在加拿大溫哥華舉辦。阿里巴巴與北大合作的一篇論文《Alternating Multi-bit Quantization for Recurrent Neural Networks 》被 ICLR 2018 錄用為 poster,該工作為第一作者許晨博士生在阿里巴巴搜索算法組實(shí)習(xí)期間完成。主要思想為,通過量化參數(shù)到二值{-1,+1} 上來解決基于 RNN 的模型由于高維嵌入或多層循環(huán)導(dǎo)致的參數(shù)量過大的問題。
阿里巴巴搜索算法組上月在 AI科技評(píng)論的數(shù)據(jù)庫項(xiàng)目「AI影響因子」中表現(xiàn)活躍。阿里巴巴搜索算法組在 4 月 15 日于美國舉辦了首個(gè)「搜索和計(jì)算技術(shù)開放日」,分享全球化背景下阿里互聯(lián)網(wǎng)技術(shù)前沿應(yīng)用經(jīng)驗(yàn)和未來發(fā)展觀點(diǎn)。搜索事業(yè)部產(chǎn)品負(fù)責(zé)人思函從業(yè)務(wù)的角度,尤其是技術(shù)和商業(yè)結(jié)合的角度,對(duì)技術(shù)在整個(gè)阿里巴巴商業(yè)環(huán)境中所能起到的作用進(jìn)行了闡述和分享。本次 ICLR 2018 有論文被收錄,進(jìn)一步展現(xiàn)了阿里巴巴搜索算法組的學(xué)術(shù)實(shí)力。
ICLR 2018 阿里巴巴參會(huì)成員
席奈與 poster 合影
循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 在語言模型、機(jī)器翻譯、語音識(shí)別、生成圖像標(biāo)題等很多應(yīng)用上都取得了非常好的效果。然而,這些模型常常是建立在高維的嵌入 (embedding) 或者多層的循環(huán)單元中,包含了大量的參數(shù),使得無法在資源有限的移動(dòng)端部署。此外,RNN 的計(jì)算依賴于與當(dāng)前的隱狀態(tài),只能被順序執(zhí)行,因此在執(zhí)行推斷時(shí)會(huì)造成比較大的延時(shí)。在擁有大規(guī)模并發(fā)請(qǐng)求的服務(wù)器端,比如語音識(shí)別或者機(jī)器翻譯等應(yīng)用,為了滿足線上苛刻的響應(yīng)時(shí)間要求,需要部署大量的機(jī)器。在這項(xiàng)工作中,我們考慮通過量化參數(shù)到二值 {-1,+1} 上來解決上述問題??紤]將模型的權(quán)重量化成 1 比特,相對(duì)于全精度,直接帶來 32 倍的內(nèi)存壓縮。而對(duì) 1 比特參數(shù)的矩陣乘法,如果不考慮具體實(shí)現(xiàn),相對(duì)于全精度乘法,理論上也會(huì)帶來 32 倍的加速。然而,如果把模型的權(quán)重和激活都量化成 1 比特,在循環(huán)神經(jīng)網(wǎng)絡(luò)中,會(huì)帶來很大的精度損失。因此,很自然的折中方案就是采用多比特量化(如圖 1 所示)。
Figure 1 多比特量化乘法示意
1) 均勻 (Uniform) 量化采用下列的 k 比特量化方案:
這樣基于規(guī)則的量化方法非常容易實(shí)現(xiàn), 但是對(duì)于非均勻數(shù)據(jù)的量化效果很差,而非均勻分布數(shù)據(jù)在深度神經(jīng)網(wǎng)絡(luò)卻更為常見。
2) 均衡 (Balanced) 量化通過數(shù)據(jù)預(yù)處理來解決均勻量化的弊端。該方法首先產(chǎn)生 2^k 個(gè)間隔,每個(gè)間隔大致包含等量的數(shù)據(jù)。然后該方法將每個(gè)間隔的中心線性映射到對(duì)應(yīng)的量化編碼中。盡管看起來更有效,但是該方法還是基于規(guī)則,而這種規(guī)則并不能保證對(duì)所有的數(shù)據(jù)分布都起效果。
3) 貪婪法 (Greedy) 近似通過去解下面的帶離散約束的分解問題來實(shí)現(xiàn)量化:
對(duì)于 k=1, 上述問題存在閉式解。貪婪近似通過逐步量化余量 (residue) 并將其推廣到 k 比特 (k>1) 的情形:
每個(gè)子步都有最優(yōu)解
貪婪法非常高效,盡管不能得到一個(gè)高精度的解,但是將量化問題建模成一個(gè)優(yōu)化問題的形式還是非常具有啟發(fā)性的。
4) 改進(jìn)版 (Refined) 貪婪近似進(jìn)一步拓展貪婪法以降低量化誤差。在上述第 j 步最小化問題中,該方法加上額外一步最小二乘來修正系數(shù)
在原文量化卷積神經(jīng)網(wǎng)絡(luò)權(quán)重的實(shí)驗(yàn)中,修正版貪婪法被證實(shí)比原始的貪婪法更有效。然而,正如我們下面要講的,修正版的貪婪法在量化精度方面仍然不能令人滿意。
除了上述通用的多比特量化方案以外,還有文章還提出了三值量化,與 1 比特的二值量化相比,三值量化多了可行狀態(tài) 0。三值量化通過解如下問題
來實(shí)現(xiàn)編碼。然而,原文并未提出一種高效的解法,相反,作者通過經(jīng)驗(yàn),將小于 0.7 / n||w||_1 的元素設(shè)成 0,并對(duì)剩余元素采用如上所述的二值量化。三值量化其實(shí)本質(zhì)上等價(jià)于此處的 2 比特量化,唯一不同的地方在于多了一個(gè) a_1=a_2 的約束。當(dāng)二值編碼被固定以后,最優(yōu)系數(shù) a_1 (或者 a_2 ) 類似地可以通過最小二乘得到。
接下來將介紹本文提出的量化方法,同樣我們也是通過解上述的優(yōu)化問題來實(shí)現(xiàn)量化。為了簡(jiǎn)單起見,首先考慮 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}。對(duì)于 w 中的任意元素 w, 其編碼都是通過最小二乘來確定。我們相應(yīng)地可以將整個(gè)坐標(biāo)軸分成四份,落在某個(gè)區(qū)間上的 w 分別對(duì)應(yīng)其中一個(gè)量化編碼。由最近鄰條件可得區(qū)間的邊界即為量化編碼的中間值,也就是 - a_1、0 以及 a_1。下圖給出一個(gè)示意。
Figure 2 當(dāng)實(shí)系數(shù)固定時(shí),最優(yōu) 2 比特編碼示意
對(duì)于任意 k 比特量化問題,假設(shè)已知 {a_i} ^k _{i=1},我們可以類似地將整個(gè)坐標(biāo)軸分成 2^k 個(gè)區(qū)間,其邊界同樣通過相鄰可行編碼的中點(diǎn)來劃分。如果直接將待量化的實(shí)數(shù) w 與所有區(qū)間邊界進(jìn)行比較以確定對(duì)應(yīng)編碼,總共需要 2^k 次,當(dāng) k 比較大,這種操作非常不經(jīng)濟(jì)。事實(shí)上,我們可以利用可行編碼全集 v 中元素單調(diào)遞增的性質(zhì),將 v 均勻分成兩個(gè)子集: v_{1 : m/2}和 v_{m/2+1 : m}, 其中 m 表示 v 的長度。如果 w<(v_{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 次比較就可以得到最優(yōu)編碼。該過程可以看成是一個(gè)二叉搜索樹,我們?cè)谙聢D中給出了一個(gè) k=2 時(shí)的簡(jiǎn)單示意。一旦得到量化編碼,即可將其一一映射到對(duì)應(yīng)的二值向量{b_i} ^k _{i=1}。
Figure 3 二叉搜索樹將次比較降為 k 次比較
基于上面的發(fā)現(xiàn),我們重新來考慮上一節(jié)中介紹的改進(jìn)版貪婪近似。經(jīng)過最小二乘修正實(shí)系數(shù)之后,二值編碼 {b_i} ^k _{i=1} 不再是最優(yōu),而該方法卻仍將其固定。為了進(jìn)一步改進(jìn),交替最小化實(shí)系數(shù)和二值編碼變成了一個(gè)很自然的選擇。一旦用二叉搜索樹得到最優(yōu)的 {b_i} ^k _{i=1} , 可以將其固定,并采用最小二乘更新 {a_i} ^k _{i=1}。在真實(shí)實(shí)驗(yàn)中,以貪婪法得到的解作初始化,我們發(fā)現(xiàn)只需要兩步交替迭代就足以得到高精度的解。
我們?cè)谡Z言模型上進(jìn)行量化實(shí)驗(yàn),分別測(cè)試了 LSTM 和 GRU 兩種架構(gòu)。因?yàn)?br/>
Table 1 不同方法近似 PTB 數(shù)據(jù)集上訓(xùn)練好的 LSTM 的權(quán)重。其中 FP 表示全精度
Table 2 不同方法近似 PTB 數(shù)據(jù)集上訓(xùn)練好的 GRU 的權(quán)重
實(shí)驗(yàn)是去預(yù)測(cè)下一個(gè)單詞,其效果采用單字復(fù)雜度來衡量 (perplexity per word, 簡(jiǎn)寫成 PPW)。為了檢驗(yàn)所有的算法量化精度,我們首先對(duì)訓(xùn)練好的全精度權(quán)重做近似 (沒有量化激活或者重訓(xùn)練),結(jié)果如表 1 和表 2 所示。注意到均勻量化和均衡量化是基于規(guī)則的,其目標(biāo)并不在于最小化誤差,因此這兩種方法會(huì)得到差很多的結(jié)果。我們還在其他數(shù)據(jù)集上重復(fù)了上述實(shí)驗(yàn),對(duì)于兩種循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) LSTM 和 GRU,結(jié)果都與此處相似。
Table 3 PTB 數(shù)據(jù)集上多比特量化 LSTM 和 GRU 的測(cè)試 PPW,其中均勻量化和均衡量化為現(xiàn)有論文中的結(jié)果,改進(jìn)版貪婪法為我們自己實(shí)現(xiàn)的結(jié)果。
Table 4 WikiText-2 數(shù)據(jù)集上多比特量化 LSTM 和 GRU 的測(cè)試 PPW。
Table 5 Text-8 數(shù)據(jù)集上多比特量化 LSTM 和 GRU 的測(cè)試 PPW。
我們還進(jìn)行了權(quán)重和激活同時(shí)量化的實(shí)驗(yàn),結(jié)果如表 3、4 和 5 所示。從中可以看到,本文提出的交替方向法明顯好過現(xiàn)有其他量化方法。即使與表現(xiàn)最好的改進(jìn)版貪婪法相比,交替方向法實(shí)現(xiàn)類似的精度大概可以少用一個(gè)比特。
我們還在 CPU 中實(shí)現(xiàn)了矩陣向量的二值乘法,其結(jié)果如表 6 所示。
Table 6 CPU 中二值乘法與全精度乘法的時(shí)間比較
在這個(gè)工作中,我們主要考慮神經(jīng)網(wǎng)絡(luò)的多比特量化壓縮加速問題。我們發(fā)現(xiàn),如果編碼的實(shí)系數(shù)固定,那么離散的二值編碼 {-1,+1} 可以通過二叉搜索樹高效的求解?;谶@個(gè)發(fā)現(xiàn),我們相應(yīng)地提出交替方向法。我們將該方法用于量化語言模型中的 LSTM 和 GRU 結(jié)構(gòu),與全精度模型相比,通過 2 比特量化,我們可以減少約 16 倍的內(nèi)存消耗,以及在 CPU 上實(shí)現(xiàn)約 6 倍的真實(shí)推斷加速,而只產(chǎn)生少量的準(zhǔn)確率損失。通過 3 比特量化,該方法在準(zhǔn)確率上可以實(shí)現(xiàn)幾乎沒有損失甚至超過原始模型,并減少約 10.5 倍的內(nèi)存消耗,以及在 CPU 上實(shí)現(xiàn)約 3 倍的真實(shí)推斷加速。這些結(jié)果都遠(yuǎn)遠(yuǎn)優(yōu)于現(xiàn)有量化方法的結(jié)果。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章