來源 | AI科技大本營(ID:rgznai100)基於Transformer的預訓練模型在許多自然語言處理(NLP)任務中取得了很高的準確度。但是這些預訓練模型往往需要很大的計算量和內存。由於移動平臺的存儲空間以及計算能力的限制,這些模型很難實現在移動端的部署。因此,在這個邊緣計算越來越重要的今天,如何有效的壓縮這些大模型成為了一個重要的研究課題。 在過去的一年中,為了減少BERT模型的大小,同時保持多個下遊NLP任務的準確性,很多小模型被相繼提出。例如,DistilBERT 和TinyBERT是通過減少Transformer Block數量來達到減小模型的目的,然而精確度相比於BERT-base有明顯下降。MobileBERT在BERT-base的基礎上,成功的將模型尺寸比減小了4倍,並且保持了較小的精度損失。有意思的是,如果我們將MobileBERT與VGG-16進行對比, MobileBERT的計算量比VGG-16小5.3倍,但計算延遲卻比VGG-16的高6.2倍。造成這種現象的原因是MobileBERT擁有超過2000個計算層(與BERT-large相同),這會在計算過程中產生大量的中間結果,最終導致嚴重的計算延遲。這也成為了將擁有較深層的網絡模型部署在移動端實現實時推理的另一大阻礙。
因此,我們不禁思考,是否存在一種有效的解決方案,可以在不犧牲BERT模型準確率的情況下,在移動端實現實時推理?近日,美國東北大學王言治研究組和威廉瑪麗學院任彬研究組共同提出了名為CANAO的編譯器感知的神經網絡結構優化框架,在保持了與BERT原模型相近的準確率的同時,他們成功的將模型大小減少了4.8倍,速度提升了5倍。相比於TensorFlow-Lite(TFLite), CANAO框架在速度方面提升了7.8倍,延遲僅為45ms,首次實現在手機端的高準確率(幾乎不犧牲準確率)、實時自然語言處理任務。他們將CANAO與三種模型BERT-base, DistilBERT, MobileBERT在準確率和延遲上做了對比。CANAOBERT w/o distill.是直接訓練的小模型,CANAOBERT是通過知識蒸餾法訓練的模型,CANAOBERT是通過NAS進一步優化模型寬度得到的模型。
可以看出,三個CANAO模型的延遲都小於對比的三種模型。相比於BERT-base,他們的模型在CPU和GPU上分別快了5.2倍和4.1倍,準確率僅降了0.5-2%。相比於MobileBERT, 他們的模型在CPU和GPU上分別快了1.49倍和1.53倍,準確率僅降了0.4-1%。上表顯示了他們的編譯器感知的神經網絡結構優化框架在DistilBERT,BERT-base以及他們的CANAOBERT模型上取得的效果,並與TFLite框架(只支持移動端CPU)進行了比較。CANAO框架可以分別在CPU和GPU上提升2倍和2.4倍的速度。未進行任何優化的BERT-base模型在TFLite上的運行速度是382ms, 而他們的壓縮模型在CANAO框架下最快能達到45ms,速度提升了7.8倍。他們的研究最先起始於對NLP模型的深度與模型準確率關係的探究。目前大多數預訓練NLP模型都很深,從計算層數來算的話,BERT-base有1000+層,Bert-large和MobileBERT有2000層,這會導致在移動端部署時很高的計算延遲。那麼NLP模型真的需要這麼多層數嗎?如果需要的話,要如何解決高延遲的問題呢?首先,對於層數問題,他們做了多組對比實驗。如下表所示,在擁有相同的計算量的前提下,他們分別使用了一個深且窄的網絡結構和一個淺且寬的網絡結構,並進行了準確率的對比,以此來探究模型深度與準確率的關係,這些模型是通過BERT-large蒸餾得到。通過對比實驗結果可以發現,在相同的計算量下,較深的網絡確實比較淺的網絡在準確率方面有更好的表現,從而也在一定程度說明了網絡深度對於NLP模型的必要性。他們提出了CANAO編譯器感知的神經網絡結構優化框架,其中包括:1.基於輕量級多項式的層融合技術(Lightweight Polynomial-based Layer Fusion)2.編譯器感知的神經結構搜索技術(Compiler-aware Neural Architecture Search)這是一種基於編譯器的優化技術,通過有效的合併多個計算層,來大量減少由多次存取層間結果帶來的計算延遲。他們是首個將編譯器優化信息作為反饋信息加入到神經結構搜索的循環中,來實現對網絡模型的協同優化,讓模型同時擁有高準確率和低延遲。雖然使用網絡延遲來優化網絡結構的硬體感知神經結構搜索(hardware-aware NAS) 已經被提出,但是在NAS和編譯器優化之間仍然缺少一些聯繫。例如,現有的支持硬體的NAS: MnasNet、FBNet、ProxylessNAS都採用通用的、非優化的編譯器。對於具有較淺層數的CV應用來說尚可達到較好的效果,但是對於具有數百甚至數千層的網絡,如果沒有編譯器優化的協助,則很難實現低延遲的目標。而他們提出的CANAO編譯器感知的神經網絡結構優化框架可以讓搜索出的模型滿足編譯器優化後的對計算資源的高利用率,從而在保持高準確率的前提下,實現對BERT類模型在行動裝置上的實時推斷。
https://arxiv.org/abs/2009.06823在移動手機普及的今天,如何在移動端等資源受限的設備上使用 BERT 模型,是一個極具挑戰問題。而CANAO編譯器感知的神經網絡結構優化框架提供了一個有效的解決方案,它對BERT模型進行結構優化,並在編譯器優化的協助下,在移動端實現了高準確率、實時自然語言處理。王言治是美國東北大學電子與計算機工程系助理教授。他在清華電子系和南加州大學拿到本科和博士學位。他的主要研究方向是深度神經網絡的加速與安全性。他們的CoCoPIE壓縮編譯協同優化框架可以實現大多數神經網絡在移動端的實時推理。他的文章廣泛發表於各個頂會頂刊,包括機器學習方向AAAI,CVPR,ICML,ICCV,ICLR,IJCAI,ECCV等,電路與設計自動化方向DAC,ICCAD,ISSCC,FPGA等,計算機系統方面ASPLOS,ISCA,MICRO,HPCA,CCS,VLDB,PLDI,ICS,PACT等。他的文章引用超過7200次,得過Google,Mathworks, Intel等研究獎項,得過4項最佳論文獎,另外10次提名,多次設計競賽獎項。他的研究工作被媒體廣泛報導和引用超過400次。他的多位學生已經在各個學校擔任教職,包括康乃狄克大學,克萊姆森大學等,工作單位包括谷歌、臉書、騰訊、滴滴(超新星員工)。
更多精彩推薦
☞程式設計師刪庫被判 6 年,公司損失近億,雲原生時代如何打造安全防線?
☞8次迭代5大升級,曠視天元1.0預覽版正式發布
☞曾是谷歌程式設計師,拋下百萬年薪創業,4 年成就 7 億用戶,今身價百億!
☞首次在手機端不犧牲準確率實現BERT實時推理,比TensorFlow-Lite快近8倍,每幀只需45ms
☞Service Mesh 在超大規模場景下的落地挑戰
☞比特幣背後的技術,是否已成為科技領軍代表?