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