【APQ】2020-CVPR-APQ Joint Search for Network Architecture Pruning and Quantization Policy-論文閱讀


APQ

2020-CVPR-APQ Joint Search for Network Architecture Pruning and Quantization Policy

來源:ChenBong 博客園


Introduction

端到端的結構搜索,通道剪枝,混合精度量化 聯合優化。

pipeline:

image-20201201181925332


Motivation

模型的部署分為 模型結構設計(Architecture),剪枝(Pruning),量化(Quantization)三個步驟。

這三步的pipeline可以顯著減少模型開銷,但當同時考慮這三個優化目標時,待優化的參數/時間開銷會急劇增加;且三個步驟單獨搜索可能會導致最終的結果陷入局部最優(如,全精度下最佳的結構,可能並不適合量化)。

因此我們提出一種將 結構搜索,剪枝,量化三個步驟聯合進行端到端的搜索的方法。


Contribution

  • 將3個步驟整合為1個端到端的搜索方案
  • 提出了使用 量化感知精度預測器(quantization-aware accuracy predictor),直接根據訓練好的全精度網絡結構,權重,以及混合量化的方案,直接預測量化后的精度
  • 對 量化感知精度預測器 采用先在全精度網絡數據集 <Arch,Acc> 上訓練,再遷移到量化網絡數據集 <Quantization Arch,Quantization Acc> 上訓練的 predictor-transfer 方法
  • 整個搜索方案開銷小

image-20201201202216464


Method

Pipeline

image-20201201190431487

  • 將通道搜索(剪枝)結合到 結構搜索(NAS)的步驟中
  • 搜索空間:模型結構空間(包括通道結構)+ 混合精度量化策略空間
  • 指標:量化網絡精度
  • 現在pipeline變為:
    • 模型結構空間 => 全精度網絡結構 (=> 全精度網絡精度)
    • 全精度網絡結構 => 施加混合精度量化策略 => 量化網絡結構 => 預測器預測 => 量化網絡精度
  • 其中的預測器是一個全連接網絡(3 layer FC)
  • 問題:訓練 預測器 需要大量的數據對 <量化網絡結構,量化網絡精度>,但獲得這些數據對是很耗時的:
  1. 訓練全精度的網絡,獲得全精度網絡的數據對:<Arch,Acc>
  2. 對訓練后的全精度網絡采用某種混合量化方案后,fine-tune,得到。
  • 解決:
    • 對於第 1 點,我們使用nas中supernet的思想,訓練一個supernet,從supernet中采樣subnet直接eval,可以直接得到很多全精度網絡的數據對:<全精度網絡結構,全精度網絡精度>
    • 對於第 2 點,采用 transfer 的思想,先在大量全精度網絡的數據對(容易獲得:直接采樣subnet,eval)上訓練,再在少量的量化網絡的數據對上fine-tune

Once-For-All Network with Fine-grained Channel Pruning

這個階段主要任務就是訓練supernet:

使用mobilenet v2 的block作為基本blcok(conv 1×1 => dw conv 3×3 => conv 1×1)

image-20201201202049125

block的結構空間:

  • (dw conv) kernel size:3, 5, 7
  • channel num:16, 24, 32, 40

使用 one-hot vector 進行編碼,例如某一 dw conv 的 kernel size=3(1,0,0),channel num=32(0,0,1,0)

則該 block 的結構編碼為(1,0,0, 0,0,1,0)


Quantization-Aware Accuracy Predictor

block的混合精度量化策略空間:

  • weight bit:4, 8
  • activation bit:4, 8

使用 one-hot vector 進行編碼,例如某一 block 的4個layer 的 weight bit=(8,4,4,8),activation bit=(4,8,8,4)

則該blcok的 Quantization policy 編碼為(1,0,0,1,0,1,1,0)

則該block的總結構編碼為:(1,0,0, 0,0,1,0, 1,0,0,1, 0,1,1,0)


Architecture and Quantization Policy Encoding

若一個網絡有5個blcok,則整個網絡編碼長度為75-dim: (5×(3+4+2×4)=75)


Transfer Predictor to Quantized Models

Predictor 的遷移學習:先在大量 全精度網絡數據對 上學習,再少量 量化網絡數據對 上學習:

image-20201201200654267

Data Preparation for Quantization-aware Accuracy Predictor

全精度網絡數據對:

The number of data to train a full precision predictor is 80,000.

量化網絡數據對:

We generate two kinds of data (2,500 for each):

  1. random sample both architecture and quantization policy;
  2. random sample architecture, and sample 10 quantization policies for each architecture configuration.

We mix the data (5000 total) for training the quantization-aware accuracy predictor, and use full-precision pretrained predictor’s weights to transfer.


Measuring Latency and Energy

根據不同類型的網絡層,在目標機器上的(延時,能耗),構造查找表,之后就可以根據量化網絡結構,直接估計其(延時,能耗)


使用進化算法,對不符合(延時,能耗)目標的后代進行淘汰。


Experiments

image-20201201201741949


Effectiveness of Joint Design

Comparison with MobileNetV2+HAQ

image-20201201201751728


Comparison with Multi-Stage Optimized Model.

Comparison under Limited BitOps

image-20201201201804702


Effectiveness of Predictor-Transfer

image-20201201201814807


Conclusion

Summary

To Read

Reference


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM