一文詳解視覺Transformer模型壓縮和加速策略(量化/低秩近似/蒸餾/剪枝)
論文鏈接 : ??https://arxiv.org/pdf/2404.10407??
視覺Transformer(ViT)在計算機視覺領域標志性地實現了一次革命,超越了各種任務的最先進模型。然而,它們的實際應用受到高計算和內存需求的限制。本研究通過評估四種主要的模型壓縮技術:量化、低秩近似、知識蒸餾和剪枝,來解決這一挑戰。系統地分析和比較了這些技術及其組合在優化ViT以適應資源受限環境方面的效果。全面實驗評估表明,這些方法在模型準確性和計算效率之間實現了平衡的折中,為在邊緣計算設備上的更廣泛應用鋪平了道路。
介紹
Transformer,由Vaswani等人引入,以其強大的數據建模能力、可伸縮性以及出色的捕捉長距離依賴性的能力,徹底改變了機器學習。起源于自然語言處理(NLP)領域,取得了機器翻譯和文本摘要等方面的成功,Transformer現在將其實用性擴展到計算機視覺任務,如圖像分類和目標檢測。
最近,它們的能力已經在多模態情感分析領域得到了利用,其中它們整合和解釋多樣的數據流——文字、視覺和聲音——以評估情感反應。Transformer的應用還擴展到了醫療保健領域,促進了疾病檢測、醫學影像分析以及電子健康記錄的處理等領域的進步。這些技術在開發預測模型、提高診斷準確性和個性化治療策略方面至關重要,展示了Transformer對影響患者護理的巨大潛力。
與之前NLP領域的研究不同,該領域的研究人員在長序列中處理softmax-attention的二次復雜度,正如Child等人所指出的,而Vision Transformers(ViTs)處理較短的、固定長度的輸入序列。因此,在ViTs中,softmax-attention在總浮點運算(FLOPs)中占比較小,提出了一套獨特的優化挑戰,并強調了對專門的模型壓縮策略的需求。
Vision Transformer(ViT),這是一種源自NLP方法學的創新架構,已經證明了將圖像 patch轉換為由Transformer塊處理的 token 序列可以實現,有時甚至超越傳統的CNN架構的準確性。這一突破已經催生了圖像處理領域的一次范式轉變。
然而,ViT的高性能伴隨著數量龐大的參數集,數量達到數億個,在推理過程中會產生相當大的內存和計算開銷。因此,對于ViTs的模型壓縮技術的開發和改進已經變得至關重要,尤其是在工業應用中,效率和資源管理至關重要。
與深度學習模型的研究相比,Vision Transformers的模型壓縮領域仍然相對未被開發。本文系統地探討了ViTs的模型壓縮策略,重點關注量化、低秩近似、知識蒸餾和剪枝。通過深入的比較分析,評估了這些技術對模型效率的個體和集體影響。研究還探討了結合不同方法的潛在協同效應,旨在提高性能。廣泛的實驗結果證實,本文提出的方法有助于在維持準確性和提高計算效率之間取得良好的平衡,這對于實際部署至關重要。
相關工作
量化
量化已經成為促進神經網絡高效推理的基石技術。這個過程涉及將網絡轉換為低比特表示,從而減少計算需求和內存占用,并最小化對模型性能的影響。這項技術的關鍵方面是確定權重的適當裁剪范圍。Krishnamoorthi建議通過評估層的卷積濾波器內的所有權重來確定這個范圍,而Shen等人則采用了一種分組量化方法來處理Transformer。為了減輕量化可能引入的精度損失,提出了量化感知訓練(QAT)。QAT包括使用量化模型的浮點表示進行標準的前向和反向傳遞,然后在每次梯度更新后重新量化模型參數,從而在保留精度的同時利用量化的好處。
低秩近似
Vision Transformer(ViT)利用了自注意力機制,這本質上涉及到二次計算復雜度,這對可擴展性構成了重大挑戰。Chen等人指出ViT內部的注意力矩陣本質上具有低秩特性,為復雜度降低提供了機會。在這些注意力矩陣上利用低秩矩陣逼近出現為減少計算成本的有前途的方法。
已經為此目的開發了各種方法,包括基于Nystr?m的方法、Performer和Linformer,每種方法都具有獨特的實現方式,并適用于在微調和驗證階段與預訓練的ViT模型進行集成。此外,如Chen等人所建議的,將低秩近似與稀疏注意力機制結合起來,已被證明能產生更精細的逼近,增強了ViT的效率和有效性。
知識蒸餾
知識蒸餾是一種精細的模型壓縮技術,其中通過利用教師模型的軟標簽,訓練一個緊湊的“學生”模型來模擬一個更復雜的“教師”模型。這些軟標簽因其豐富的信息內容而被認為在學生模型中的表現通常優于使用硬標簽進行訓練的情況。軟標簽在增強學生學習方面的有效性已被Yuan等人和Wei等人證實。
在這個領域的一個新進展是由Touvron等人引入的Vision Transformers中的蒸餾 token 。這個 token 類似于類 token ,但專門用于捕捉教師的預測,通過自注意機制參與優化蒸餾過程。這些定制的方法已經證明在傳統的蒸餾技術上取得了相當大的收益,突顯了針對Transformer的優化策略的潛力。
剪枝
剪枝是一種被廣泛認可的方法,通過減少Vision Transformers的維度復雜性來簡化它們的架構。這項技術的核心是為每個模型維度分配一個重要性分數,允許基于這些分數對被認為不太關鍵的維度進行選擇性消除。這種有針對性的減少旨在在保持模型準確性的同時保持穩健的剪枝比例。楊等人提出的維度重分配策略可能被整合到剪枝過程中,進一步提高模型的性能。
有趣的是,研究表明,經過剪枝的模型有時可能會在性能上超過原始模型,這表明剪枝不僅可以簡化模型,還可以增強模型的功能。
方法論
量化
基本概念
量化的總體目標是將模型參數(θ)和中間激活圖的精度降低到較低的精度格式,例如8位整數,同時最小化對模型泛化性能的影響。這個過程的初始步驟涉及定義一個量化函數,能夠將權重和激活圖映射到一組離散值。用于此目的的常用函數如下所示:
其中,Q代表量化映射函數,r表示實值輸入(例如,權重、激活),S是一個縮放因子,是一個整數零點。這種機制被稱為均勻量化,確保了結果值的等距間隔。值得注意的是,還存在替代的非均勻量化策略。此外,原始實值r可以通過一種稱為反量化的過程從其量化對應項Q(r)近似得出:
在量化中,由于量化本身固有的舍入誤差,近似值r ?可能與r不同。量化的一個關鍵方面是確定最佳的縮放因子S,它有效地將實值r分成離散的段落:
后訓練量化
后訓練量化(PTQ)通過直接調整權重來簡化量化過程,而無需進一步進行微調。然而,這種效率可能會導致顯著的精度下降,因為量化本身固有的精度損失。
Liu等人觀察到,在Transformer架構中將量化應用于LayerNorm和Softmax層時,存在顯著的精度下降。Lin等人將這些差異歸因于LayerNorm層和注意力映射值中激活值的極化分布。具體來說,LayerNorm層輸入中存在顯著的通道間變異性(如下圖1左側所示),當采用逐層量化方法時,會產生相當大的量化誤差。此外,注意力圖中存在大量小值分布,只有稀疏的異常值接近1,這進一步加劇了在均勻量化策略下性能下降的問題。
為了解決這些挑戰,Lin等人提出了一種新穎的量化方法,利用LayerNorm的二次冪尺度和Softmax層的對數整數Softmax,旨在減輕傳統量化方法帶來的不利影響。
量化感知訓練
直接將量化應用于完全訓練好的模型可能會無意中擾動模型參數,導致顯著的性能下降。一種有效的策略是使用量化參數重新訓練模型,從而引導模型走向更有利的損失。量化感知訓練(QAT)是一個突出的技術,可用于此目的。在QAT中,標準的前向和后向過程在浮點表示的模型上執行,但在每次梯度更新后重新量化參數,確保模型適應量化引起的變化。
學習步長量化(LSQ)是該領域的一個進步,它改進了量化器的配置過程,并通過優化量化間隔在量化性能方面設定了新的基準。類似地,DIFFQ引入了一種可微分的模型壓縮技術,避免了需要像直通估計器(STE)這樣的梯度近似方法。通過使用偽量化噪聲,DIFFQ在訓練期間實現了量化過程的近似,這是完全可微的,從而更容易地調整權重和量化比特深度。
知識蒸餾
知識蒸餾技術,如軟蒸餾和硬蒸餾,促進了復雜的“教師”模型向簡單的“學生”模型的知識傳輸。軟蒸餾側重于最小化教師模型和學生模型的軟化對數輸出之間的Kullback-Leibler(KL)散度。這正式由蒸餾目標所捕捉:
剪枝
Vision Transformers中的剪枝主要集中于通過減少模型的復雜性來減少參數的數量,具體來說是通過調整隱藏層之間的權重核的維度。這個目標可以形式化為:
另外,Yu等人采用KL散度來計算重要性分數,重點關注在數據集?上具有特定模塊和沒有特定模塊時模型性能之間的差異。這種方法既可以進行層內剪枝,也可以進行跨模塊剪枝:
其中,qi對應于完整模型的損失,pi對應于去除剪枝權重后的損失。近期的創新引入了更加微妙的重要性評分系統。Tang等人設計了一種評分,反映了每個圖像塊對最終誤差的理論影響,提高了圖像塊精簡的效率。Rao等人結合了局部和全局特征,對 token 的重要性進行了更全面的評估。同樣,Yi等人將各種評分綜合到一個統一的損失函數中,進一步完善了剪枝過程。
低秩近似
鑒于自注意力的低秩性質的正式證明,利用這一屬性進行低秩近似成為提高計算效率的戰略選擇。這種近似旨在保持準確性,同時顯著降低時間和空間復雜度,近似為O(n),即使是在與預先存在的或新訓練的模型集成時。
這是因為近似計算是在接收到輸入后進行的。存在各種低秩近似的方法,包括基于Nystr?m的方法,如Nystr?mformer和SOFT,它們通過Nystr?m方法線性化了自注意力。替代的線性化技術,如Linformer 和Performer,以及結合低秩和稀疏注意力機制的策略,進一步提高了近似的準確性。
實驗
本節詳細比較了應用于Vision Transformers的各種模型壓縮技術,包括量化、知識蒸餾、剪枝和低秩近似。此外,還調查了結合這些方法以確定性能指標改善的協同潛力。
實驗設置
實驗框架建立在Tesla V100-SXM2 16GB GPU上,PyTorch作為主要的代碼實現平臺。我們的數據集使用范圍限于CIFAR-10和CIFAR-100,這是由于計算資源的限制。感興趣的主要指標包括模型大小和推理速度,承認了準確性和這些效率參數之間的固有權衡。因此,最佳的壓縮技術應該在準確性上對模型幾乎沒有影響,同時在模型大小上有顯著的降低,并且在推理速度上有提升。將跨CIFAR-10和CIFAR-100數據集的比較分析結果系統地呈現在下表1和表2中。
不同模型壓縮方法的比較
在評估模型大小對模型壓縮的影響時,我們發現量化和剪枝策略能夠在幾乎不損失準確性的情況下顯著減小模型大小。值得注意的是,量化技術,特別是動態量化,表現出了較高的有效性,將模型大小減小至25倍。
相反,權重剪枝,特別是采用簡單的重要性評分,不能實現模型大小和準確性之間的最佳平衡。剪枝率為0.1(表示剪枝了10%的參數)導致與未剪枝的ViT相比,CIFAR-10和CIFAR-100數據集的顯著準確性降低。進一步的調查顯示,如下圖3所示,大多數參數被認為是非常重要的(評分高于0.99),這表明了對于權重剪枝而言,簡單形式的重要性評分存在固有的局限性。改進可能來自于整合更復雜的重要性評分或采用像減少輸入圖像塊或精簡之類的策略,而不是直接的權重剪枝。
在推理速度方面,不同模型壓縮策略表現出一系列的改進,以知識蒸餾為中心的方法尤為突出,因其在效率方面的收益。值得注意的是,盡管DeiT基礎模型并沒有經歷顯著的尺寸縮減,但其推理速度幾乎是標準Vision Transformer(ViT)的兩倍,同時幾乎保持了準確性。在CIFAR-10數據集上觀察到了一個有趣的案例,即DeiT微型配置實現了95.43%的準確率,這個數字與原生 ViT非常接近,但其速度增加了四倍,僅壓縮到了原始模型大小的6%。
此外,將Nystr?mformer技術應用于ViT展示了準確性和速度之間微妙的平衡,特別受到landmark數量(m)的選擇的影響。選擇較大的m值會提高近似精度,但會以處理速度為代價。此外,動態量化在CPU平臺上對推理速度的改進范圍為10-20%,強調了模型壓縮在實際應用中的好處,不僅僅是尺寸的縮減。
混合方法的探索
對單個模型壓縮技術的考察表明,一種混合方法,結合量化和知識蒸餾的優勢,值得進一步研究。特別是當可以接受輕微的準確性降低時,這種組合策略似乎有望優化模型的緊湊性和處理效率。正如表1和表2所示,采用復合方法——將DeiT基礎模型與動態量化相結合——顯著提高了推理速度,達到了兩倍以上的增長,同時將模型的大小減小到原始尺寸的四分之一。在準確性上有可控的權衡,突顯了混合方法在速度、大小和性能之間取得平衡的潛力。
結論
本研究致力于對模型壓縮技術進行實證調查,旨在增強Vision Transformers(ViTs)的效率和部署可行性。我們對四種主要的壓縮方法——量化、低秩近似、知識蒸餾和剪枝——進行了細致的考察,同時回顧了該領域的前沿研究。
通過對CIFAR-10和CIFAR-100數據集進行的比較分析,我們的發現強調了后訓練量化和知識蒸餾作為突出策略的有效性。這些方法不僅顯著減小了模型大小,還加快了推理時間,同時保持了可接受水平的性能降低。對結合量化和知識蒸餾的協同潛力進行進一步探索揭示了優化的引人注目途徑。特別是在CIFAR-10數據集中,這種混合方法顯著加快了推理速度——超過基準速度兩倍以上——同時將模型大小降低到原始占用空間的四分之一。
從這次全面調查中獲得的見解倡導了對模型壓縮采取綜合多方面的方法。整合不同的壓縮方法對于提高Vision Transformers的操作效率具有重大的潛力,為該領域未來研究指明了堅實的方向。此外,本文還可以在交通工程、機器學習、生物工程等領域進一步研究。
本文轉自 AI生成未來 ,作者:Feiyang Chen等
