前言
現今越來越多邊緣裝置有AI運算的需求,而以往AI運算都需要消耗大量的資源(例如:雲端運算),因此如何在不影響AI模型精準度的前提下將功耗降低成為許多科技大廠研究的問題。高通在晶片與AI產業中屬於佼佼者,因此對於這類問題高通當然不落於人後並且開發出”AIMET”工具來解決此項問題。使用者可以透過AIMET這項工具將自己訓練出的模型進行量化與壓縮,進而減少模型大小降低裝置功耗。除此之外高通還將AIMET source code與API相關文件開放在Github上,由此可見高通對於分享AI技術毫不吝嗇,相較於其他廠商把這類AI技術列為商業機密可以看出高通非常想推動在裝置端能使用的AI模型並持續優化,因此讓大家能共同去使用並研究這項議題。
目的
介紹高通AIMET工具讓大家了解,並且展現高通在AI領域上卓越的成就。
AIMET介紹
現今手機越來越需要AI模型來優化各項功能,例如:影像優化、AR應用等等,但手機端可用的計算能力有限、電池容量有限,為了高效使用AI模型,產業界已經有很多算法框架,高通也推出了針對端側的優化工具庫AIMET。AIMET全名:AI Model Efficiency ToolKit是由Qualcomm Innovation Center所開發出來,目標是將訓練好的模型提供量化和模型壓縮以及可視化的工具。而高通之所以開發這樣的工具是因為手動優化神經網絡以提高效率是昂貴且耗時的,並且隨著人工智能工作負載的增加而無法擴展。AIMET通過提供一個程式庫來解決這個問題,該程式庫直接插入 TensorFlow 和 PyTorch 訓練框架以方便使用,允許開發人員直接從他們現有的管道調用 API。除此之外高通還提供AIMET Model Zoo工具,將常用的AI模型轉換工具模組化,方便使用者使用。
AIMET包含兩種工具,第一個是模型量化,第二個是模型壓縮。模型量化主要功能是加速在支援固定精度運算的量化硬件運行時間,將原本浮點(floating 32)精度模型轉換成固定(int 8)精度模型,並且維持一定的準確度。AIMET支援5種量化方式1.Cross-Layer Equalization、2.Bias Correction、3.Adaptive Rounding、4. Quantization Simulation、5. Quantization-aware Training。模型壓縮直觀來看就是將模型縮小降低所需內存空間。AIMET支援3種壓縮方式1. Spatial SVD、2. Channel Pruning、3. Weight SVD。
AIMET可視化工具
圖1
從圖表中可以看出模型在量化前與量化後的結果,並讓使用者透過此圖表來評估模型好壞。(圖1)
AIMET量化流程
圖2
- 將訓練模型透過量化工具進行量化
- 查看量化後模型輸出結果是否符合預期
- 如果不符合預期透過AIMET可視化工具檢驗
- 使用者可以選擇使用量化工具來fine tune模型
- 產出新的量化模型
AIMET壓縮流程
圖3
- 輸入練模型
- 選擇模型壓縮比
- AIMET模型壓縮工具進行壓縮
- Fine tune壓縮後的模型
- 產出新的模型結果
結語
相信各位在看完上面AIMET介紹後都對這項工具有一定的了解,雖然目前AIMET只支援TensorFlow 和 PyTorch 訓練框架,但相信以高通研發的能力未來一定會陸續支援其他模型訓練框架。除此之外高通作為手機晶片大廠,一直努力將AI模型應用在手機或其他裝置上(例如:VR裝置)來增強其功能,因此高通在AIMET工具的優化上也會持續更新,相望大家能持續追蹤高通在AIMET發表的新技術!
AIMET參考資料:https://github.com/quic/aimet
評論