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