模型小型化,why?
AI 服務(wù)的計算環(huán)境發(fā)生了翻天覆地的變化,已逐漸從云端向移動端和 IoT 蔓延滲透。據(jù)統(tǒng)計,近幾年AIoT 的市場規(guī)模以40%以上的實際速度在增長,而且預(yù)期未來幾年還保持著一個相當(dāng)高的增長趨勢。與此同時,也帶來了前所未有的新型交互需求。比如,在智能屏音箱上,不方便語音的時候使用手勢控制;看視頻時,在耗電量微乎其微的情況下,可以通過表情識別,為你喜歡的視頻自動點贊。
圖1 沉浸式、無感知的新型交互需求
然而,一個反差是,硬件的計算能力,從云到移動端、到 IoT,算力以三個數(shù)量級的比例在下降,內(nèi)存也在大幅下降,尤其是邊緣芯片內(nèi)存只有 100K。而實際需要運行在這些 AIoT 設(shè)備上的算法需要關(guān)注的三個方面,即:算法效果(精度)、計算速度(FLOPs)、模型大小。最理想的選擇是算法效果好、計算量低,尤其是實際耗時要少,同時,模型要小到內(nèi)存足夠放得下。
而云端上的經(jīng)驗告訴我們,要想效果好,模型得足夠大!
那怎么樣解決這個矛盾呢?很多專家提供人工經(jīng)驗去設(shè)計端上的模型,并且得到了廣泛的應(yīng)用。
然而這些依舊存在兩個問題:
如何利用現(xiàn)存優(yōu)秀的云端模型。
如何產(chǎn)生任務(wù)自適應(yīng)的模型。
對于這兩個問題,我們給出的答案是:模型小型化!
圖2 PaddleSlim-效果不降的模型壓縮工具箱
我們希望在有限計算資源的情況下保持效果不降,對已有模型進(jìn)行壓縮,并針對任務(wù)自動設(shè)計出新模型,這些功能都濃縮在百度飛槳和視覺團(tuán)隊共同研發(fā)的 PaddleSlim 工具箱里,自去年對外開源 PaddleSlim,這個工具箱的內(nèi)容到現(xiàn)在一直還在持續(xù)豐富,從量化、蒸餾、剪枝到網(wǎng)絡(luò)結(jié)構(gòu)搜索,一應(yīng)俱全。
截止到現(xiàn)在,我們通過 PaddleSlim 打磨出了用于通用任務(wù)的分類、檢測和用于垂類任務(wù)的人臉識別、文字識別(OCR)等多個業(yè)界領(lǐng)先的工業(yè)級小模型,它們是 SlimMobileNet、SlimFaceNet、SlimDetNet、SlimTextNet 等等。
為了進(jìn)一步促進(jìn)模型小型化技術(shù)的產(chǎn)業(yè)應(yīng)用,PaddleSlim 將開源所有 Slim 系列模型!
圖3 Slim 系列模型開源
我們的最新成果
近日,PaddleSlim 發(fā)布了 SlimMobileNet、SlimFaceNet、SlimDetNet、SlimTextNet 四大系列13個業(yè)界領(lǐng)先的工業(yè)級小模型。
分類:CVPR 冠軍模型,業(yè)界首個開源的 FLOPs 不超 300M、ImageNet 精度超過80%的分類小模型。
在圖像分類任務(wù)上,PaddleSlim 發(fā)布的 SlimMobileNet 是基于百度自研的 GP-NAS(CVPR2020)AutoDL 技術(shù)以及自研的蒸餾技術(shù)得到。
表1 SlimMobileNet 分類小模型
在 ImageNet 1000分類任務(wù)上,相比于 MobileNetV3,SlimMobileNet_V1 在精度提升1.7個點的情況下 FLOPs 可以壓縮28%。SlimMobileNet_V4_x1_1 為業(yè)界首個開源的 FLOPs 不超 300M,ImageNet 精度超過80%的分類小模型。
值得特別提及的是,CVPR 的低功耗計算視覺比賽(CVPR 2020 LOW-POWER COMPUTER VISION CHALLENGE)也剛剛宣布了結(jié)果,百度聯(lián)合清華大學(xué)在競爭最激烈的 Real-time Image Classification Using Pixel 4 CPU 賽道中擊敗眾多強勁對手取得冠軍。本次發(fā)布的開源分類模型中就包含了此次比賽的冠軍模型。
檢測:最適合端側(cè)部署的基于 PaddleDetection 的產(chǎn)業(yè)級檢測模型
除了分類任務(wù)以外,如今目標(biāo)檢測已經(jīng)產(chǎn)業(yè)應(yīng)用的重要方向,它可以被廣泛應(yīng)用于工業(yè)產(chǎn)品檢測、智能導(dǎo)航、視頻監(jiān)控等各個應(yīng)用領(lǐng)域,幫助政府機(jī)關(guān)和廣大企業(yè)提高工作效率。
PaddleDetection 發(fā)布了一系列 YOLO 模型,PaddleSlim 在其基礎(chǔ)上進(jìn)行了蒸餾、量化和剪枝等壓縮操作,產(chǎn)出了 SlimDetNet 系列圖像目標(biāo)檢測模型。以 MobileNetV1 網(wǎng)絡(luò)為主干的 YOLOv3 模型,適用于移動端部署環(huán)境,因為冗余信息更少,所以壓縮難度較大,在 PaddleSlim 剪枝和蒸餾的共同作用下模型參數(shù)和計算量均有65%以上的減少,同時精度只有略微的降低。具體實驗數(shù)據(jù)如表2所示。
注:SlimDetNet v2(MV3_YOLOv3)輸入大小為320,測試環(huán)境是驍龍845;SlimDetNet v1(MobileNetV1-YOLOv3)輸入大小為608,測試環(huán)境是驍龍855。
表2 SlimDetNet 檢測小模型
業(yè)界最小的開源人臉識別模型
除了基礎(chǔ)模型,PaddleSlim 還開源了垂類模型。眾所周知,人臉識別和文字識別是工業(yè)化大生產(chǎn)中最常用的兩項視覺技術(shù)。
首先看一下人臉識別。人臉識別技術(shù)作為目前 AI 技術(shù)落地最廣泛的技術(shù)之一,廣泛應(yīng)用于人臉解鎖、考勤、支付、身份識別等各個場景。如何在嵌入式設(shè)備上高效的執(zhí)行人臉識別算法成為制約相關(guān)應(yīng)用的關(guān)鍵因素。
SlimFaceNet 同樣是基于百度自研的 GP-NAS AutoDL 技術(shù)以及百度自研的自監(jiān)督超網(wǎng)絡(luò)訓(xùn)練算法得到,如表3所示。
表3 SlimFaceNet 與現(xiàn)有模型對比
相比于 MobileNetV2,SlimFaceNet_A_x0_60 FLOPs壓縮54%,在 RK3288 上加速4.3倍?;赑addleSlim的離線量化功能還可以進(jìn)一步壓縮模型,相比于MobileNetV2,SlimFaceNet_A_x0_60_quant FLOPs 可以壓縮88.5%,在 RK3288 硬件上可以加速6.4倍。
MobileFaceNet 是之前業(yè)界開源的一個網(wǎng)絡(luò),SlimFaceNet_A_x_60_quant 計算量只有 MobileFaceNet 的七分之一,延時降低了59%。
業(yè)界最小的開源文字識別模型
再來看一看 OCR,OCR 技術(shù)有著豐富的應(yīng)用場景,包括已經(jīng)在日常生活中廣泛應(yīng)用的面向垂類的結(jié)構(gòu)化文本識別,如車牌識別、銀行卡信息識別、身份證信息識別、火車票信息識別等等,此外,通用 OCR 技術(shù)也有廣泛的應(yīng)用,如在視頻場景中,經(jīng)常使用 OCR 技術(shù)進(jìn)行字幕自動翻譯、內(nèi)容安全監(jiān)控等等,或者與視覺特征相結(jié)合,完成視頻理解、視頻搜索等任務(wù)。
圖4 OCR 識別工作流程
6月份的時候飛槳開源了一個8.6兆的 OCR,業(yè)界反響熱烈,登上了 Github 的 Trending,現(xiàn)在我們又開源一個更加優(yōu)質(zhì)的模型,效果不降,但是模型大小只有3.1兆,并達(dá)到了30%的加速。
各個模型具體壓縮情況如表4所示。
注:表中識別模型耗時為單個候選框的識別耗時,一張圖片可能有多個候選框。使用自建中文數(shù)據(jù)集,測試環(huán)境是驍龍855。
表4 SlimText系列小模型
我們是如何做到的
以上業(yè)界最小的模型全部都基于飛槳模型壓縮庫 PaddleSlim 實現(xiàn)。它們的實現(xiàn)方式不盡相同,其中,人臉識別模型和分類模型使用了搜索壓縮策略;檢測與 OCR 使用了經(jīng)典的量化、剪枝和蒸餾策略。
搜索壓縮策略簡介
繼 PaddleSlim 分布式 SA-NAS 在 CVPR 2020Real Image Denoising rawRGB Track 奪冠后,GP-NAS 包攬了 ECCV 2020 Real Image Super-Resolution Challenge 全部3項 track 的冠軍。其中,SA-NAS 搜索方法是百度首次把 NAS 技術(shù)應(yīng)用于圖像降噪領(lǐng)域。GP-NAS 搜索方法是百度首次把 NAS 技術(shù)應(yīng)用于圖像超分領(lǐng)域。目前為止,百度自研的 SA-NAS 和 GP-NAS AutoDL 技術(shù)已在 CVPR19、ICME19、CVPR20、ECCV20 奪得7項世界第一,提交200余項中國/美國專利申請。
基于自監(jiān)督的 Oneshot-NAS 超網(wǎng)絡(luò)訓(xùn)練方法
One-Shot NAS 是一種自動搜索方法。它將超網(wǎng)絡(luò)訓(xùn)練與搜索完全解耦,可以靈活的適用于不同的約束條件,超網(wǎng)絡(luò)訓(xùn)練過程中顯存占用低,所有結(jié)構(gòu)共享超網(wǎng)絡(luò)權(quán)重,搜索耗時加速顯著。與此同時,我們還研發(fā)了基于自監(jiān)督的排序一致性算法,以確保超網(wǎng)絡(luò)性能與模型最終性能的一致性。
如圖5所示,超網(wǎng)絡(luò)的訓(xùn)練還可以與蒸餾和量化深度結(jié)合,如在超網(wǎng)絡(luò)訓(xùn)練過程中加入蒸餾損失函數(shù),可以得到一致性蒸餾超網(wǎng)絡(luò)(基于該超網(wǎng)絡(luò)可以搜索得到最適合特定 teacher 模型的 student 模型);如在超網(wǎng)絡(luò)訓(xùn)練過程中加入量化損失函數(shù),可以得到一致性量化超網(wǎng)絡(luò)(基于該超網(wǎng)絡(luò)可以搜索得到精度高且對量化不敏感的模型結(jié)構(gòu))。基于一致性超網(wǎng)絡(luò),PaddleSlim 使用百度自研的 GP-NAS 算法進(jìn)行模型結(jié)構(gòu)自動搜索。
圖5 基于自監(jiān)督的超網(wǎng)絡(luò)訓(xùn)練
基于高斯過程的模型結(jié)構(gòu)自動搜索 GP-NAS
GP-NAS 從貝葉斯角度來建模 NAS,并為不同的搜索空間設(shè)計了定制化的高斯過程均值函數(shù)和核函數(shù)。圖6為 GP-NAS 的架構(gòu)圖,具體來說,基于 GP-NAS 的超參數(shù),我們有能力高效率的預(yù)測搜索空間中任意模型結(jié)構(gòu)的性能。從而,模型結(jié)構(gòu)自動搜索問題就被轉(zhuǎn)換為 GP-NAS 高斯過程的超參數(shù)估計問題。
接下來,通過互信息最大化采樣算法,我們可以有效地對模型結(jié)構(gòu)進(jìn)行采樣。因此,根據(jù)采樣網(wǎng)絡(luò)的性能,我們可以有效的逐步更新 GP-NAS 超參數(shù)的后驗分布。基于估計出的 GP-NAS 超參數(shù),我們可以預(yù)測出滿足特定延時約束的最優(yōu)的模型結(jié)構(gòu),更詳細(xì)的技術(shù)細(xì)節(jié)請參考 GP-NAS 論文。
GP-NAS 論文地址:
https://openaccess.thecvf.com...
圖6 基于高斯過程的模型結(jié)構(gòu)自動搜索 GP-NAS
量化、剪枝、蒸餾
接下來,以文字檢測和識別為例,簡要介紹使用經(jīng)典壓縮策略做模型壓縮的一般思路。
第一步:分析模型參數(shù)量分布
圖7 OCR識別模型各部分參數(shù)量占比
如圖7所示,OCR 識別模型的參數(shù)主要集中在 FC 層和 backbone 層。另外考慮到當(dāng)前沒有對 FC 進(jìn)行剪枝的有效的方法,所以我優(yōu)先選擇對 FC 層和 backbone 進(jìn)行 PACT 量化訓(xùn)練。
對于 OCR 檢測模型,我們將其拆為 backbone 和 head 兩部分進(jìn)行分析對比,結(jié)果如圖8所示。
圖8 OCR 檢測模型分析
第二步:制定模型壓縮方案
根據(jù)第一步的分析,我們制定以下壓縮方案:
OCR 識別模型:對 backbone 和 FC 層進(jìn)行 PACT 量化訓(xùn)練。
OCR 檢測模型:對 head 部分先進(jìn)行剪枝,然后再進(jìn)行 PACT 量化訓(xùn)練。
第三步:實施模型壓縮
按照第二步制定計劃對各個模型進(jìn)行壓縮。其中,在對識別模型和檢測模型進(jìn)行 PACT 量化訓(xùn)練時,可以根據(jù) PaddleSlim 提供的 PACT 自動調(diào)參教程自動計算出最合適的參數(shù)。教程詳見:
https://github.com/PaddlePadd...
對檢測模型的 head 部分進(jìn)行剪枝時,推薦使用 PaddleSlim 的敏感度分析方法和 FPGM 通道重要性評估方式。相關(guān)教程詳見:
https://github.com/PaddlePadd...
OCR 模型壓縮方案的完整代碼和教程請參考:
https://aistudio.baidu.com/ai...
參考鏈接
本文示例代碼放在百度一站式在線開發(fā)平臺 AI Studio 上,鏈接如下:
https://aistudio.baidu.com/ai...
本文提到的 Slim 系列小模型的更多詳細(xì)內(nèi)容請參見 PaddleSlim 項目地址:
https://github.com/PaddlePadd...
PaddleSlim 是基于百度飛槳提供的開源深度學(xué)習(xí)模型壓縮工具,集深度學(xué)習(xí)模型壓縮中常用的量化、剪枝、蒸餾、模型結(jié)構(gòu)搜索、模型硬件搜索等方法與一體。目前,依靠 PaddleSlim 百度大腦打造了三位一體的度目系列自研產(chǎn)品,當(dāng) PaddleSlim 和其他視覺算法在硬件上結(jié)合時,也賦能了許多其他應(yīng)用場景,小度在家的手勢控制;好看視頻 APP 的表情識別;國家電網(wǎng)智能巡檢解決方案......從智慧分析、智慧社區(qū),再到駕駛管理、產(chǎn)業(yè)賦能,基于 PaddleSlim 百度大腦已經(jīng)打造出一個特有的“軟+硬”視覺時代,并時刻守護(hù)生活的每個角落。
如果您在使用過程中有任何問題,歡迎加入官方QQ群,您將遇上大批志同道合的深度學(xué)習(xí)同學(xué)。
審核編輯:符乾江
-
人工智能
+關(guān)注
關(guān)注
1792文章
47372瀏覽量
238857 -
人臉識別
+關(guān)注
關(guān)注
76文章
4012瀏覽量
81985
發(fā)布評論請先 登錄
相關(guān)推薦
評論