推理速度22.3倍提升,北航、字節(jié)跳動(dòng)提出二值化關(guān)鍵字識(shí)別模型
近年來(lái),以 FSMN 為代表的語(yǔ)音關(guān)鍵字識(shí)別(KWS)模型在各類邊緣場(chǎng)景得到廣泛應(yīng)用。然而,語(yǔ)音喚醒應(yīng)用的實(shí)時(shí)響應(yīng)需求和邊緣設(shè)備上有限計(jì)算與能耗資源間的矛盾一直存在,這阻礙了 KWS 模型在真實(shí)世界硬件設(shè)備上的部署。近日,人工智能頂會(huì) IJCAI 2022 接收論文結(jié)果已經(jīng)正式公布,北航劉祥龍教授團(tuán)隊(duì)和字節(jié)跳動(dòng) AI Lab 智能語(yǔ)音團(tuán)隊(duì)聯(lián)合提出了首個(gè)針對(duì) KWS 任務(wù)的二值神經(jīng)網(wǎng)絡(luò) BiFSMN,并在 ARM 設(shè)備上實(shí)現(xiàn)了高達(dá) 22.3 倍和 15.5 倍的推理加速和存儲(chǔ)節(jié)省。
論文地址:https://arxiv.org/pdf/2202.06483.pdf1.
引言
1.1 背景
目前深度神經(jīng)網(wǎng)絡(luò)的卓越性能,主要依賴于高端圖形處理單元進(jìn)行計(jì)算訓(xùn)練。訓(xùn)練好的模型,其體積和參數(shù)量通常較大,因此需要大量的存儲(chǔ)空間占用,并且有足夠的計(jì)算單元來(lái)提高模型運(yùn)行效率。這導(dǎo)致模型較難部署在手機(jī)等部分算力有限、存儲(chǔ)空間有限的邊緣設(shè)備上,這也限制了神經(jīng)網(wǎng)絡(luò)的適用場(chǎng)景和部署平臺(tái)。
1.2 問(wèn)題
盡管目前模型二值化取得了進(jìn)展,但通過(guò)現(xiàn)有方法對(duì) KWS 網(wǎng)絡(luò)進(jìn)行二值化仍然遠(yuǎn)非理想。大多數(shù)量化方法在推理過(guò)程中使用浮點(diǎn)算法,且直接量化會(huì)帶來(lái)嚴(yán)重的性能下降。首先,由于使用了 1 位參數(shù),二值化網(wǎng)絡(luò)的表示空間極其有限,難以優(yōu)化。其次,KWS 的現(xiàn)有架構(gòu)具有固定的模型規(guī)模和拓?fù)浣Y(jié)構(gòu),無(wú)法在運(yùn)行時(shí)自適應(yīng)地平衡資源預(yù)算。此外,現(xiàn)有的部署框架在現(xiàn)實(shí)世界的硬件上實(shí)現(xiàn)時(shí)還遠(yuǎn)未達(dá)到二值化網(wǎng)絡(luò)的理論加速上限。
1.3 成果
- 提出了一種用于 KWS 的準(zhǔn)確且極其高效的二元神經(jīng)網(wǎng)絡(luò) BiFSMN。
- 構(gòu)建了 HED,方案來(lái)強(qiáng)調(diào)高頻信息,以優(yōu)化二值化網(wǎng)絡(luò)的訓(xùn)練。
- 提出了 TBA,以在運(yùn)行時(shí)實(shí)現(xiàn)即時(shí)和自適應(yīng)的精度 - 效率權(quán)衡。
BiFSMN 通過(guò)令人信服的精度改進(jìn)優(yōu)于現(xiàn)有的二值化方法,甚至可以與全精度對(duì)應(yīng)物相媲美。此外,該研究在 ARMv8 實(shí)際設(shè)備上的 BiFSMN 實(shí)現(xiàn)了 22.3 倍加速和 15.5 倍存儲(chǔ)節(jié)省。
2. 方法概述
2.1 HED —— 高頻增強(qiáng)蒸餾
該研究發(fā)現(xiàn),信息傾向于邊緣的本質(zhì)是:基本的二值化表示傾向于集中在高頻分量上。該研究使用 2D Haar 小波變換 (WT) [Meyer, 1992],其常用作分離水平、垂直邊緣的可分離變換,將表示分解為低頻和高頻分量。輸入到特定層的隱藏狀態(tài) H 可以表示為小波函數(shù)族的加權(quán)和,
其中 是具有特定時(shí)間參數(shù)的母小波函數(shù),
是分辨率級(jí)別, 和 K 確定波形的平移,為了測(cè)量表示的單個(gè)分量所傳達(dá)的信息量,使用相對(duì)小波能量來(lái)定義信息量[Rosso et al., 2001]。第
層的小波能量
首先計(jì)算為:
當(dāng)通過(guò)一次分解得到低頻和高頻系數(shù)時(shí),它們的相對(duì)小波能量
可以表示為:
較大的相對(duì)小波能量表明信息更多地聚集在該分量中。如圖所示,與全精度表示相比,二值化表示的高頻分量的相對(duì)小波能量顯著增加,這意味著二值化表示向高頻分量?jī)A斜。
基于上述分析,該研究提出了一種用于二值化感知訓(xùn)練的高頻增強(qiáng)蒸餾方法。該方案利用預(yù)訓(xùn)練的全精度 D-FSMN 作為教師,并在蒸餾過(guò)程中增強(qiáng)其隱藏層特征的高頻分量。具體來(lái)說(shuō),該研究對(duì)原始特征應(yīng)用小波變換,去除低頻分量,然后對(duì)高頻分量應(yīng)用小波逆變換(IWT)函數(shù)來(lái)恢復(fù)選定的特征。該過(guò)程可以表述如下:
然后將強(qiáng)調(diào)的高頻表示添加到原始表示中:
其中 是標(biāo)準(zhǔn)偏差。受 [Martinez et al., 2020] 的啟發(fā),該研究最小化了來(lái)自教師的
和直接來(lái)自學(xué)生的隱藏層特征
之間的注意力蒸餾損失,表示為:
其中 表示第
個(gè)塊,
是 L2 范數(shù)。
上面的 HED 方案使二值化學(xué)生網(wǎng)絡(luò)更容易利用強(qiáng)調(diào)的全精度表示中的基本信息并提高準(zhǔn)確性。2.2 TBA —— 可細(xì)化二值結(jié)構(gòu)該研究提出了一種用于 KWS 的 Thinnable Binarization Architecture (TBA),它可以在運(yùn)行時(shí)選擇具有更少層的更薄模型,從而直接減少計(jì)算消耗。該研究把包含 N 個(gè)塊的基本二值化架構(gòu)的整個(gè)主干網(wǎng)絡(luò)
表示為:
其中 分別是二值化網(wǎng)絡(luò)和
二值化 D-FSMN 塊,
是網(wǎng)絡(luò)的輸入。
形成的 TBA 結(jié)構(gòu)可以定義為:
其中 是所選層的間隔,取值僅限于可整除 N。每個(gè)可細(xì)化塊
可以定義為:
可細(xì)化網(wǎng)絡(luò)架構(gòu)將通過(guò)用恒等函數(shù)替換中間塊來(lái)跳過(guò)每個(gè) 層的中間塊, 下圖顯示了該研究的可細(xì)化二值化架構(gòu)的形式化。
此外,該研究還提供了 的實(shí)例,如圖所示。
為了優(yōu)化提議的 TBA 的二值化感知訓(xùn)練,該研究采用統(tǒng)一層映射策略來(lái)更好地對(duì)齊和學(xué)習(xí) HED 中的表示:
來(lái)自不同分支的梯度在反向傳播過(guò)程中累積以共同更新權(quán)重。根據(jù)可細(xì)化架構(gòu)中的壓縮比,加權(quán)損失可以計(jì)算為:
其中 表示
的交叉熵?fù)p失,
是控制蒸餾影響的超參數(shù)。
2.3 FBCK —— 用于高效硬件部署的快速按位計(jì)算內(nèi)核
為了在計(jì)算資源有限的邊緣設(shè)備上高效部署,該研究通過(guò)新的指令和寄存器分配策略進(jìn)一步優(yōu)化 1 位計(jì)算,以加速邊緣設(shè)備上廣泛使用的 ARMv8-A 架構(gòu)的推理。該研究稱之為快速按位計(jì)算內(nèi)核 (FBCK)。
根據(jù) ARMv8 架構(gòu)上的寄存器數(shù)量,該研究首先將內(nèi)核中的寄存器重新分配為五個(gè)分區(qū),以提高寄存器利用率并減少內(nèi)存占用:分區(qū) A 有四個(gè)寄存器(寄存器 v0 除外)用于一個(gè)輸入(權(quán)重 / 激活),B 有兩個(gè)用于另一個(gè)輸入,C 有 8 個(gè)用于 EOR 和 CNT 的中間結(jié)果,D 有 8 個(gè)用于一個(gè)循環(huán)中的輸出,E 有 8 個(gè)用于最終結(jié)果。每個(gè)輸入都打包為 INT16。A 中的每個(gè)寄存器存儲(chǔ)一個(gè)輸入并重復(fù) 8 次,而 B 中的每個(gè)寄存器存儲(chǔ) 8 個(gè)不同的輸入。該研究先對(duì) A 和 B 的一個(gè)寄存器進(jìn)行 EOR 和 CNT,得到 32 個(gè) INT8 結(jié)果到中間分區(qū) C,然后執(zhí)行 ADD 將 INT8 累加到 D,對(duì) B 的另一個(gè)寄存器做同樣的事情。經(jīng)過(guò) 16 次循環(huán),最后,該研究使用長(zhǎng)指令 ADALP 將存儲(chǔ)在 D 中的 INT8 數(shù)據(jù)累積到一個(gè) INT16 寄存器(在 E 中),它將 INT8 數(shù)據(jù)擴(kuò)展為雙倍寬度。FBCK 在計(jì)算過(guò)程中充分利用了寄存器,幾乎沒(méi)有空閑位。
3. 實(shí)驗(yàn)
在本章,該研究從推斷精度、理論計(jì)算、部署性能等角度對(duì) BiFSMN 進(jìn)行全面評(píng)估。實(shí)驗(yàn)證明,BiFSMN 在各個(gè)方面大幅領(lǐng)先現(xiàn)有的二值神經(jīng)網(wǎng)絡(luò),并展現(xiàn)了在實(shí)際部署場(chǎng)景下的出眾潛力。
3.1 對(duì)比驗(yàn)證
該研究首先進(jìn)行消融研究,以調(diào)查所提出的高頻增強(qiáng)蒸餾 (HED) 和可細(xì)化二值化架構(gòu) (TBA)在 D-FSMN 上對(duì) Speech Commands V1-12 和 Speech Commands V2-12 KWS 任務(wù)的影響,包括高頻增強(qiáng)蒸餾 (HED) 和可細(xì)化二值化架構(gòu) (TBA)。
表 1 中結(jié)果表明,普通二值化基線方法在兩個(gè)數(shù)據(jù)集中都出現(xiàn)了顯著的性能下降。樸素的蒸餾方案 Distill 有助于提高基本 D-FSMN 架構(gòu)的準(zhǔn)確性,而 HED 的應(yīng)用提高了基于蒸餾的性能。聯(lián)合使用 HED 和 TBA 進(jìn)一步縮小了二值化模型和全精度模型之間的準(zhǔn)確率差距,最終使得在這兩個(gè)數(shù)據(jù)集上的準(zhǔn)確率均小于 3%。
其次將 BiFSMN 與現(xiàn)有的結(jié)構(gòu)無(wú)關(guān)二值化方法進(jìn)行比較,包括 BNN [Courbariaux et al., 2016]、DoReFa [Zhou et al., 2016]、XNOR [Rastegari et al., 2016]、Bi-Real [Liu et al., 2018]、IR-Net [Qin et al., 2020] 和 RAD [Ding et al., 2019]。
表 2 中結(jié)果表明,該研究的 1 位 BiFSMN 完全優(yōu)于其他 SOTA 二值化方法。值得注意的是,BiFSMN在兩個(gè)數(shù)據(jù)集上的平均準(zhǔn)確率下降僅為4%,并遠(yuǎn)超其他二值化方法。
其次,為了從架構(gòu)的角度驗(yàn)證 TBA 的優(yōu)勢(shì),該研究還將其與 KWS 中廣泛使用的各種網(wǎng)絡(luò)進(jìn)行了比較,包括 FSMN [Zhang et al., 2015]、VGG190 [Simonyan and Zisserman, 2014]、BCResNet [Kim et al.,2021] 和 Audiomer [Sahu al.,2021]。該研究使用 XNOR 和 IR-Net 對(duì)這些架構(gòu)進(jìn)行二值化。
表 3 表明, HED 通常可應(yīng)用于基于類似 FSMN 的架構(gòu),并對(duì)二值化模型性能產(chǎn)生影響。此外,配備 TBA 的 BiFSMN 可以進(jìn)一步在運(yùn)行時(shí)在準(zhǔn)確性和效率之間取得平衡。例如,更薄的版本 BiFSMN0.5× with 4 blocks 和 BiFSMN0.25× with 2 blocks 甚至在 Speech Commands V1-12 任務(wù)上實(shí)現(xiàn)了 23.8× 和 28.8× FLOPs 節(jié)省,而不犧牲準(zhǔn)確性(僅下降 0.16% 和 0.13%)。
該研究進(jìn)一步修剪模型寬度并提供一個(gè)極小的 BiFSMNS(具有 32 個(gè)主干內(nèi)存大小和 64 個(gè)隱藏大?。?,只有 0.05M 參數(shù)和 9.16M FLOP,證明該研究的方法在微型網(wǎng)絡(luò)上也能很好地工作。
3.2 部署效率
除了推理精度與理論計(jì)算性能,在現(xiàn)實(shí)世界的邊緣設(shè)備上運(yùn)行時(shí),KWS 任務(wù)對(duì)于低內(nèi)存占用和快速實(shí)時(shí)響應(yīng)具有迫切需求。為了驗(yàn)證 BiFSMN 的實(shí)際部署效率,該研究在 1.2GHz 64 位 ARMv8 CPU Cortex-A53 的 Raspberry Pi 3B + 上測(cè)試了 BiFSMN 的實(shí)際速度。
如圖 5 所示,由于提出了優(yōu)化的 1 位快速按位計(jì)算內(nèi)核, BiFSMN 與全精度對(duì)應(yīng)物相比提供了 10.9 倍的加速度。它也比現(xiàn)有的開源高性能二值化框架(如 daBNN 和 Bolt)快得多。此外,受益于可細(xì)化架構(gòu),BiFSMN 可以根據(jù)設(shè)備上的資源自適應(yīng)地平衡運(yùn)行時(shí)的準(zhǔn)確性和效率,切換到分別帶來(lái)了 15.5× 和 22.3× 加速。這表明 BiFSMN 可以在實(shí)際推理中滿足不同的資源約束。