aimet: 一個用於量化與壓縮 ML 模型以減少記憶體佔用並提高邊緣裝置推論速度的工具包
aimet: 一個用於量化與壓縮 ML 模型以減少記憶體佔用並提高邊緣裝置推論速度的工具包
它解決了什麼問題
AIMET 可減少已訓練機器學習模型的運算負載與記憶體佔用,使其在手機與筆記型電腦等邊緣裝置上的部署更加快速且高效。它特別針對將高精度(32-bit floating-point)模型轉換為低精度(8-bit 或 4-bit integer)格式時,如何維持模型準確度的挑戰提供解決方案。
運作原理
AIMET 提供了一套用於量化與壓縮的工具。它支援使用以下方法的 PyTorch 與 ONNX 模型:
- Post-Training Quantization (PTQ):使用如 Calibration、AdaRound (Adaptive Rounding)、SeqMSE 與 SpinQuant 等技術,在不需要重新進行完整訓練的情況下優化權重與活化值。
- Quantization Aware Training (QAT):將量化模擬整合到訓練過程中,以進一步最小化準確度損失。
- Model Compression:採用 Spatial SVD (tensor decomposition) 與 Channel Pruning 來移除冗餘參數並減少乘加 (MAC) 運算。
- Data-Free Quantization (DFQ):允許在不需要原始訓練數據的情況下進行量化。
目標對象
需要針對邊緣硬體進行深度學習模型優化,以實現高效能推論的 ML 工程師與開發者,特別是使用 PyTorch 或 ONNX 框架的使用者。
重點特色
- 顯著的速度提升:與 CPU 相比,在 Qualcomm Hexagon DSP 等特定硬體上,可使模型運行速度提升高達 15 倍。
- # 4x 記憶體減少:8-bit 精度模型佔用的空間明顯少於 32-bit 模型。
- 自動化優化:提供 API 以自動化優化流程,減少手動調整的需求。
- 廣泛的支援:支援各種模型類型,包括 CNNs (ResNet, MobileNet) 與遞迴模型 (RNN, LSTM, GRU)。
Sources
- undefinedqualcomm/aimet