天天看點

王中風教授:如何滿足不同應用場景下深度神經網絡模型算力和能效需求

基于神經網絡的深度學習算法已經在計算機視覺、自然語言處理等領域大放異彩。然而,諸如 VGG、ResNet 和 Xception 等深度模型在取得優越性能的同時往往伴随着極高的存儲空間需求和計算複雜度,而現有的通用計算平台(如CPU和GPU等)很難實作高能效的神經網絡計算。為了滿足深度神經網絡在不同的應用場景(如雲端和終端)下的算力和能效需求,探讨如何在算法層面運用量化、剪枝等方法進行模型壓縮,以及設計适應于不同應用場景的高能效神經網絡計算晶片/架構已經成為學術界和工業界近階段的一個研究熱點。

目前,基于神經網絡的深度學習算法已經在計算機視覺、自然語言處理等領域取得了廣泛的應用。這其中,一方面要歸功于算法研究者的堅持使算法得以取得諸多突破,另一方面也是海量資料的出現和硬體運算能力的提升為算法的有效訓練帶來了可能。與此同時,深度學習算法的成功也反過來推動了硬體的發展。目前,硬體對深度學習算法的支援主要包括兩個方面,一個是訓練(Training)階段,需要非常高的算力和大容量存儲來支援大規模深度神經網絡模型的訓練;另一個是推理(Inference)階段,需要将訓練好的模型部署到實際的應用場景下,包括在需要高性能、高吞吐率的資料中心端提供雲服務,以及在需要低功耗的嵌入式/移動終端相關的應用。

目前,使用 GPU 來進行神經網絡的訓練幾乎已經成為了研究深度學習算法的标配。但是,在進行實際部署時,由于深度神經網絡模型往往伴随着極高的存儲空間需求和計算複雜度,包括GPU、CPU在内的傳統通用計算平台在大多數情況下并不能滿足實際模型部署對功耗和性能(或者能效比)的綜合需求,這也使得一些具有更高綜合能效比的硬體,如 FPGA 和面向 AI 應用的 ASIC(包括可重構ASIC)晶片逐漸獲得關注。為了滿足深度神經網絡模型在不同的應用場景下對算力和能效的需求,一方面,可以利用現有深度神經網絡模型存在内在備援這一特性,在幾乎不損失模型精度的前提下從算法層面對模型進行裁剪和優化;另一方面,也可以設計針對深度神經網絡模型的計算模式進行優化的高能效硬體架構,用于加速模型的計算過程。 當然,也可以同時結合這兩個方面,做算法和硬體的協同設計和優化(Joint Algorithm And Architecture, JAAA, design optimization)。

模型裁剪與優化

目前該領域的方法可以大概分為兩類:

1.針對某些精度較高但較複雜的網絡模型,通過剪枝、量化、低秩分解等措施減少模型的參數和計算量。這類方法往往能大大減少模型的複雜度,實作對參數或者計算量很高的壓縮比,但其中不少方法都需要特定的硬體支援才能真正發揮其效用。此外,這裡面提到的某些方法也可以用于減少模型訓練過程中參數更新帶來的硬體開銷,加速訓練過程;

2. 考慮直接設計更為高效(較少參數+低計算複雜度)的神經網絡模型,同時模型的精度可以盡量接近複雜的網絡模型,或是通過一些方法将複雜模型學習得到的知識遷移到小的模型上面,最終可以直接部署這些較為精簡的模型。

AI 晶片/加速器

在針對 AI 的高能效硬體架構設計方面,相關的工作大體可以分為以下幾個方面:

1. 能夠支援主流深度學習算法常見操作的專用處理器架構(ASIP),以及專用的深度學習指令集,如中科院計算所的 DianNao系列處理器和Cambricon指令集;

2.針對深度神經網絡的資料複用方式、訪存的優化:探索适合于神經網絡的計算模型,在計算時通過合理的資源排程實作對神經網絡計算過程高效的加速;

3. 近似計算/近似存儲:利用神經網絡對噪聲和誤差具有一定的容錯性,在計算/存儲過程中通過一些具有較低硬體開銷的近似方法來提高網絡的計算能效;

4. 新型存儲結構,如通過非易失性電阻式存儲器(Non-volatile Resistive Memories),實作計算和存儲一體化(process-in-memory),直接在存儲裡面實作計算的功能;

5.軟硬體協同優化:在前面模型優化方法的基礎上,進一步設計相應的硬體架構,使得諸如剪枝、量化等模型壓縮方法的效果可以被充分的利用;

在這波 AI 浪潮中,國内也有不少高校和研究機構從事相關的研究,并在國際上取得了可觀的影響力。相應技術的落地也催生了不少 AI 晶片/加速器的初創公司,包括寒武紀科技、地平線機器人、深鑒科技等。作者的團隊(南京大學 ICAIS 實驗室)也在這方面取得了一些突出成果,包括:

基于有限沖擊響應算法的高效可配置快速卷積單元

基于并行快速有限沖擊響應算法(FFA)對卷積計算進行算法強度縮減,理論推導了3并行、5并行和7并行等N-并行的快速卷積算法。設計了能高效完成3×3和5×5卷積計算的快速卷積單元(FCU)。進一步地,針對目前主流的CNN卷積核大小,設計了可以高效實作各種常見卷積操作的可配置卷積單元,并在硬體使用率、功耗和可配置性之間達到了最優的平衡。所設計的硬體結構可以配置實作2x2到12x12所有尺寸的卷積操作。

等間隔/K平均聚類非均勻定點量化方法

提出了等間隔非均勻定點量化(Equal Distance Intra-Layer Non-Uniform Quantization)和K平均聚類非均勻定點量化(K-means Cluster Intra-Layer Non-Uniform Quantization)兩種量化方法,可以大大降低卷積神經網絡中activation的存儲需求。相比于已有的針對activation的量化方法,可以在不損失精度的情況下提高壓縮率2倍以上。

深度卷積神經網絡高效硬體架構設計與實作

基于上述的FCU和動态計算流程,提出了高效的卷積神經網絡處理和存儲架構。基于 VGG16的測試結果表明,所提出的層内按行交替存儲和層間輪回複用的方式相比于傳統按層順序計算的存儲架構可以節省大約14倍的片上存儲資源,在同樣的平台下資源使用率比同類設計高出2倍以上。

适用于嵌入式系統的高能效二值參數卷積神經網絡硬體架構

提出了一種高能效的二值參數卷積神經網絡的硬體架構。該架構利用了二值參數網絡的魯棒性等特點,引入了多種近似計算技術。此外,該架構還采用了一種優化的計算流程,最大程度地減少了通路DRAM的次數和帶寬需求。該架構在65nm工藝下能夠達到約2.08TOp/s/W的能量效率(已考慮片外DRAM訪存功耗)。相比于已有的二值網絡ASIC實作在能效方面有超過2倍的提升。 

遞歸神經網絡的模型壓縮與硬體架構設計

在算法層面,通過在遞歸神經網絡(RNNs)中引入結構化的參數矩陣(如循環矩陣),參數量減少為原來的 25%;進一步結合前向激活函數近似,以及根據 RNN 中不同參數矩陣對量化的敏感程度上的差異,混合使用均勻量化和基于對數域的非均勻參數量化方法,在基本不損失模型預測精度的前提下均取得了超過20倍的參數壓縮率,計算複雜度也大大降低。

其它相關研究

此外團隊還研究了高能效的能耗-精度可伸縮(Energy-Quality Scalable)的卷積神經網絡硬體加速器結構,基于隐私保護(Privacy-Preserving)的深度學習算法及其硬體架構,基于張量分解(Tensor Decomposition)的神經網絡的嵌入式硬體架構, 以及遞歸神經網絡的負載均衡(Load-Balance)稀疏化方法等等。上述成果多數已經在IEEE Xplore 線上發表。

結束語

随着學術界和工業界對人工智能技術持續大力的推動,可以肯定的是在未來相當長的時間内,面向應用的基于算法和硬體架構聯合優化方面的研究将會得到更加廣泛的關注和加速的發展。

原文釋出時間為:2017-12-24

本文作者:王中風

本文來自雲栖社群合作夥伴新智元,了解相關資訊可以關注“AI_era”微信公衆号

繼續閱讀