OTO 是業界首個自動化、一站式、使用者友好且通用的神經網路訓練與結構壓縮框架。
在人工智慧時代,如何部署和維護神經網路是產品化的關鍵問題考慮到節省運算成本,同時盡可能小地損失模型效能,壓縮神經網路成為了DNN 產品化的關鍵之一。
DNN 壓縮通常來說有三種方式,剪枝,知識蒸餾和量化。剪枝旨在識別並去除冗餘結構,給 DNN 瘦身的同時盡可能地保持模型性能,是最通用且有效的壓縮方法。三種方法通常來講可以相輔相成,共同作用來達到最佳的壓縮效果。
然而現存的剪枝方法大都只針對特定模型,特定任務,且需要很強的專業領域知識,因此通常需要AI 開發人員花費大量的精力才能將這些方法應用於自己的場景中,非常消耗人力物力成本。
為了解決現存剪枝方法的問題並給 AI 開發者提供便利,微軟團隊提出了 Only-Train-Once OTO 框架。 OTO 是業界首個自動化、一站式、使用者友好且通用的神經網路訓練與結構壓縮框架,系列工作陸續發表於 ICLR2023 和 NeurIPS2021。
透過使用 OTO,AI 工程師可以輕鬆地訓練目標神經網絡,一站式地取得高效能且輕量化的模型。 OTO 最小化了開發者的工程時間精力的投入,且全程無需現有方法通常需要的非常耗時的預訓練和額外的模型微調。
由於網路結構的複雜性和關聯性,刪除任意網路結構可能會導致剩餘的網路結構無效。因此自動化網路結構壓縮的一個最大的問題之一是如何找到必須一起剪枝的模型參數,使得餘下的網路仍然有效。為了解決這個問題,微軟團隊在 OTOv1 中提出了零不變組 Zero-Invariant Groups (ZIGs)。零不變組可以理解為一類最小的可移除單元,使得該組對應的網路結構移除後剩餘網路依然有效。零不變組的另一個主要特性是,如果一個零不變組等於零,那麼無論輸入值是什麼,輸出值永遠是零。在 OTOv2 中,研究者進一步提出並實作了一套自動化演算法來解決通用網路的零不變組的分組問題。自動化分組演算法是由一系列圖演算法精心設計組合而成,整套演算法非常高效,具有線性的時間空間複雜度。
雙半平面投影梯度最佳化演算法(DHSPG)當分割目標網路所有的零不變組後,接下來的模型訓練和剪枝任務需要找出哪些零不變組是冗餘的,哪些又是重要的。冗餘的零不變組對應的網路結構需要被刪除,重要的零不變組需要保留並確保壓縮模型的效能。研究者公式化這個問題為一個結構性稀疏化問題,並提出全新的 Dual Half-Space Projected Gradient (DHSPG) 最佳化演算法來解決。
DHSPG 可以非常有效地找出冗餘的零不變組並將其投影成零,並持續訓練重要的零不變組來取得跟原始模型相媲美的性能。
與傳統稀疏優化演算法相比,DHSPG 具有更強更穩定地稀疏結構探索能力,且擴展了訓練搜尋空間並因此通常要獲得更高的實際表現效果。
自動化建立輕量壓縮模型
#透過使用DHSPG 對模型進行訓練,我們會得到一個服從於零不變組的高結構稀疏性的解,即該解裡面有很多被投影成零的零不變組,此外該解還會具有很高的模型性能。接下來,研究者把所有對應與冗餘零不變組的結構刪除來自動化地建構壓縮網路。由於零不變組的特性,即如果一個零不變組等於零,那麼無論輸入值是什麼,輸出值永遠是零,因此刪除冗餘的零不變組不會對網路產生任何影響。所以透過 OTO 得到的壓縮網路和完整網路會有相同的輸出,無需傳統方法所需的進一步模型微調。
分類任務
表1:CIFAR10 中的VGG16 及VGG16- BN 模型表現
在CIFAR10 的VGG16 實驗中,OTO 將浮點數減少了86.6%,將參數量減少了97.5%,效能表現令人印象深刻。
表2:CIFAR10 的ResNet50 實驗
在CIFAR10 的ResNet50 實驗中,OTO 在沒有量化的情況下優於SOTA 神經網路壓迫框架AMC 和ANNC,僅使用了7.8% 的FLOPs 和4.1% 的參數。
表3. ImageNet 的ResNet50 實驗
在ImageNet 的ResNet50 實驗中,OTOv2 在不同結構稀疏化目標下,展現出跟現存SOTA 方法相媲美甚至更優的表現。
表4: 更多結構與資料集
OTO 也在更多的資料集和模型結構上取得了不錯的表現。
Low-Level Vision 任務
#表4:CARNx2 的實驗
#在super-resolution 的任務中,OTO 一站式訓練壓縮了CARNx2 網絡,得到了跟原始模型有競爭力的性能且壓縮了越75% 的運算量和模型大小。
語言模型任務
此外,研究者在Bert 上也針對核心演算法之一,DHSPG 最佳化演算法,進行了對比試驗,驗證了其相較於其他稀疏最佳化演算法的高效能性。可以發現在 Squad 上,利用 DHSPG 進行訓練所得到的參數量減少和模型性能要遠遠優於其他稀疏優化演算法。
微軟團隊提出了一個名為 OTO(Only-Train-Once)的 自動化一站式神經網路訓練結構剪枝框架。它可以將一個完整的神經網路自動化地壓縮為輕量級網絡,同時保持較高的效能。 OTO 大幅簡化了現有結構剪枝方法複雜的多階段流程,適合各類網路架構和應用,且最小化了使用者的額外工程投入,具有通用性,有效性和易用性。
以上是微軟提出自動化神經網路訓練剪枝框架OTO,一站式取得高效能輕量化模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!