LORS:騰訊提出低秩殘差結構,瘦身模型不掉點 | CVPR 2024

深度學習模型通常堆疊大量結構和功能相同的結構,雖然有效,但會導致參數數量大幅增加,給實際應用帶來了挑戰。爲了緩解這個問題,LORS(低秩殘差結構)允許堆疊模塊共享大部分參數,每個模塊僅需要少量的唯一參數即可匹配甚至超過全量參數的性能。實驗結果表明,LORS減少解碼器 70% 的參數後仍可達到與原始模型相當甚至更好的性能

來源:曉飛的算法工程筆記 公衆號

論文: LORS: Low-rank Residual Structure for Parameter-Efficient Network Stacking

Introduction


  在當前大模型繁榮的時代,一個普遍的問題是參數量大幅增加,這給訓練、推理和部署帶來了挑戰。目前有各種方法來減少模型中的參數數量,例如知識蒸餾,將大型模型壓縮爲較小的模型,同時試圖保持其性能,但仍可能導致模型容量的下降;剪枝,從模型中刪除冗餘參數,但會影響模型的穩定性;量化,降低模型參數的數值精度,降低存儲和計算量,但可能會導致模型精度損失;參數共享,通過在不同層之間共享參數來減少參數數量,但可能會限制模型的表達能力。

  與上述方法不同,論文觀察到一個導致參數數量龐大的重要事實:層堆疊在神經網絡中的廣泛使用。層堆疊是指那些具有相同架構並執行相同或相似功能的模塊,但由於隨機初始化和訓練更新而具有不同的參數。堆疊的例子可以在許多著名的神經網絡中找到,比如經典的ResNet模型和Transformers。特別是,Transformers嚴重依賴堆棧結構,並且通常在編碼器和解碼器中採用完全相同的多層堆棧。現在它已成爲計算機視覺、自然語言處理等領域許多優秀模型不可或缺的組成部分。

  儘管層堆疊對於增強模型容量非常有效,但也會導致參數數量的急劇增加。例如,GPT-3使用 1750 億個參數,由 96 個堆疊的Transformer層組成。如何才能享受堆棧帶來的好處,同時減少所需的參數數量?論文注意到堆疊的解碼器具有相同的結構和相似的功能,這表明它們的參數之間應該存在一些共性。然而,由於它們處理不同的輸入和輸出分佈,因此它們的參數也必須有獨特的方面。因此,一個自然的想法是:也許可以用共享參數來表示共享方面,同時允許每個堆疊模塊僅保留捕獲其獨特特徵的參數,從而減少總體參數使用。

  基於上述考慮,論文建議將堆疊模塊的參數分解爲兩部分:代表共性的共享參數和捕獲特定特徵的私有參數。共享參數可供所有模塊使用並共同訓練,而私有參數則由每個模塊單獨擁有,在保持模型性能的同時減少參數量。爲了實現這一目標,受LoRA方法的啓發,論文引入了低秩殘差結構 (LORS) 的概念,本質上是將私有參數添加到共享參數中,就像殘差連接將殘差信息添加到特徵中一樣。

  爲了驗證論文的想法,選擇AdaMixer(一個強大的基於查詢的對象檢測器)作爲實驗對象。其堆疊的解碼器中包含大量自適應和靜態參數,是展示LORS有效性的理想候選者。自適應參數和靜態參數的區別在於是否隨着不同的輸入而變化,而論文的目標是證明LORS可以有效減少兩類參數的總體使用,同時保持模型的性能。對此檢測器進行的廣泛實驗表明,LORS成功地減少了AdaMixer解碼器中高達 70% 的參數,同時能夠實現與其普通版本相當甚至更優越的性能。

  總之,論文的貢獻可以總結爲:

  • 論文提出了用於堆疊網絡的新穎低秩殘差結構LORS,與普通結構相比,在大幅減少參數數量的同時保持甚至提高性能。
  • 論文引入有效的方法來減少堆疊結構中的靜態參數和自適應生成參數,這使得論文提出的LORS更加通用。
  • 論文的方法有潛力作爲大型模型的基本網絡結構之一,這些模型受到堆疊網絡導致的參數過多問題的影響很大。LORS能使參數更加高效,從而在實際應用中更容易實現。

Approach


Preliminary

  • The mechanism of LoRA

  低秩適應(LoRA)技術是一種新穎的方法,使大型預訓練語言模型能夠適應特定任務。LoRA的關鍵思想是引入一個低秩參數矩陣,該矩陣能夠捕獲任務相關的知識,同時保持原始預訓練參數固定。

  從數學角度來看,給定一個預訓練的參數矩陣 \(W\in \mathbb{R}^{d\times h}\)LoRA使用低秩矩陣 \(B\in\mathbb{R}^{d\times r}\) 和投影矩陣 \(A\in\mathbb{R}^{r\times h}\) 來適應 \(W\) ,其中秩 \(r\ll d,h\)。適應的參數矩陣由以下計算:

\[W+\triangle W=W+B A \quad\quad(1) \]

  其中\(BA\) 用於捕獲特定於任務的知識。

LoRA的主要優勢在於顯着減少需要微調的參數量,從而降低計算成本以及內存需求。在某些情況下,即使個位數值的秩 \(r\) 也足以將模型微調到所需狀態,比直接訓練 \(W\) 中的參數的開銷少數十倍。此外,通過固定原始參數,LoRA避免了災難性遺忘,這是微調大型模型時的常見問題。

  • Query-based object detection

  在對象檢測領域,基於查詢的檢測器建立了一種新的範例,利用一組可學習的查詢向量與圖像特徵圖進行交互:

\[Q_{\mathrm{updated}}=\mathrm{Atention}(Q,K(V)) \quad\quad(2) \]

  其中 \(Q\)\(K\)\(V\) 表示查詢、鍵和值。可學習查詢 \(Q\) 最終用於預測對象類和邊界框,而 \(K\)\({\cal{V}}\) 通常爲編碼的圖像特徵。經過連續的解碼層,\(Q\) 不斷地與 \(K\)\(V\) 交互來細化是一種常見的做法,而這些層通常由結構相同的解碼器組成。

  • Decoders of AdaMixer

AdaMixer是一種基於查詢的檢測器,添加自適應通道混合(ACM)和自適應空間混合(ASM)方法,大大增強了性能。

  給定一個採樣特徵 \({\textbf{x}}\in\ \mathbb{R}^{P_{\mathrm{in}}\times C}\),其中 \(\textstyle C\ = d_{feat/g}\)\(g\) 爲採樣組數。採樣特徵通過組採樣操作獲得的,該操作將每個多尺度特徵的空間通道 \(d_{feat}\) 劃分爲 \(g\) 組,然後對每個組內特徵進行單獨3D採樣操作,得到的多組採樣特徵分別進行後續的ACMASM操作。

  首先對採樣特徵執行ACM(自適應通道混合)操作,根據對象查詢 \(\mathbf{q}\) 生成的自適應權重在通道維度轉換特徵 \(\mathbf{x}\),增強通道語義:

\[\begin{array}{c} {{M_{c}=\mathrm{{Linear}(\mathbf{q})}\in\mathbb{R}^{C\times C}}} \quad\quad(3) \\ {{\mathrm{ACM}({\bf x})=\mathrm{{ReL}}\mathrm{U(LayerNorm}({\bf x}M_{c}))}} \quad\quad(4) \end{array} \]

  隨後對通道增強的採樣特徵執行ASM(自適應空間混合)操作,通過對空間維度應用自適應變換,使得對象查詢 \(\mathbf{q}\) 能夠適應採樣特徵的空間結構:

\[\begin{array}{c} {{M_{s}=\mathrm{{Linear}(\mathbf{q})}\in\mathbb{R}^{P_{\mathrm{in}}\times P_{\mathrm{out}}}}} \quad\quad(5) \\ {{\mathrm{ASM}(\mathbf{x})=\mathrm{ReLU}(\mathrm{LayerNorm}(\mathbf{x}^{T}M_{s}))}} \quad\quad(6) \end{array} \]

ACMASM都爲每個採樣組訓練獨立的參數,最後整合多組輸出將形狀爲 \(\mathbb{R}^{g\times C\times P_{out}}\) 的合併輸出展平並通過線性層 \(L_{\mathrm{output}}\) 輸出轉換爲 \(d_{q}\)維度,添加到原對象查詢中。

  與解碼器的其他操作相比,ACMASM和輸出線性變換 \(L_{\mathrm{output}}\) 擁有更多的參數,是模型參數量的主要貢獻者。因此,論文選擇它們作爲目標組件來驗證LORS方法在參數減少方面的有效性。

Formulation of Our Method

LORS的完整計算過程如圖 1 所示,分爲兩種類型:自適應計算和靜態計算。其中,“自適應”表示變換矩陣是否依賴於對象查詢。

  • Static Low Rank Residual Structure (\(\mathrm{LORS}^\mathrm{T}\))

  假設單個模塊包含 \(N\) 個具有相同架構的堆疊層,並且 \(W_{i}\in\mathbb{R}^{d\times h}\) 是第 \(i\) 層的參數矩陣,則有:

\[W_{i}=W^{\mathrm{shared}}+W_{i}^{\mathrm{private}} \quad\quad(7) \]

\(W^{\mathrm{shared}}\) 爲所有堆疊層的共享參數,\(W_{i}^{\mathrm{private}}\) 爲第 \(i\) 層的私有參數,其計算如下:

\[W_{i}^{\mathrm{private}} = {{{\sum_{k=1}^{K}B_{i k}A_{i k}}}} \quad\quad(8) \]

\(B_{ik}\in\mathbb{R}^{d\times r}\)\(A_{ik}\in\mathbb{R}^{r\times h}\),其中秩 \(r\ll d\)\(K\) 爲用於計算\(W_{i}^{\mathrm{private}}\) 的參數組的數量。

\(\mathrm{LORS}^\mathrm{T}\) 計算 \(W_{i}^{\mathrm{private}}\) 的僞代碼如圖 2 所示。

  • Adaptive Low Rank Residual Structure (\(\mathrm{LORS}^\mathrm{A}\))

  定義 \(\hat{W}_i\in\mathbb{R}^{d\times h}\) 爲第 \(i\) 個堆疊層中自適應生成參數,其計算爲:

\[\hat{W}_{i}=\hat{W}^{\mathrm{shared}}+\hat{W}_{i}^{\mathrm{private}} \quad\quad(9) \]

  其中跨層共享參數 \(\hat{W}^{\mathrm{shared}}\in\mathbb{R}^{d\times h}\) 和層私有參數 \({\hat{W}}_{i}^{\mathrm{private}}\in\mathbb{R}^{d\times h}\)都是基於查詢 \(q\) 計算得到的:

\[\begin{array}{l} {{\hat{W}_{i}^{\mathrm{shared}}=\mathrm{Linear(q)}\in\mathbb{R}^{d\times h}}} \quad\quad(10) \\ {{\hat{W}_{i}^{\mathrm{private}}=\sum_{k=1}^{K}\hat{B}_{i k}\hat{E}_{i k}\hat{A}_{i k}}} \quad\quad\ \ (11) \\ {{\hat{E}_{i k}=\mathrm{Linear(q)}\in\mathbb{R}^{r\times r}}} \quad\quad\quad\quad(12) \end{array} \]

  其中 \(\hat{B}_{i k}\ \in\ \mathbb{R}^{d\times r}\)\({\hat{A}}_{ik}\in\mathbb{R}^{r\times h}\),秩 \(r\ll d,h\)

\(\mathrm{LORS}^\mathrm{A}\) 計算 \({\hat{W}}_{i}^{\mathrm{Private}}\) 的僞代碼如圖 3 所示。

Applying LORS to AdaMixer’s Decoders

  將LORS應用到AdaMixer的每個解碼器的ACMASM\(L_{\mathrm{output}}\) 的線性變換的參數中。

AdaMixer中運行的LORS的整體流程如圖 4 所示。對於每組採樣點,\(\mathrm{LORS}^\mathrm{A}\) 用於減少ACM\({M}_{c}\)(映射 \(\mathbb{R}^{d_q}\)\(\mathbb{R}^{C\times C}\))和ASM\(M_{s}\) 的參數(映射 \(\mathbb{R}^{d_q}\)\(\mathbb{R}^{P_{in}\times P_{out}}\),而 \(\mathrm{LORS}^\mathrm{T}\) 則用於最小化 \(L_{\mathrm{output}}\) 中的參數(映射 \(\mathbb{R}^{C\times P_{\mathrm{out}}}\)\(\mathbb{R}^{d_q}\) )。

  從上面括號中的映射關係可以看出,\(M_{c}\)\(M_{s}\)\(L_{\mathrm{output}}\) 的參數量分別爲 \(d_q\times C\times C\)\(d_{q}\times P_{\mathrm{in}}\times P_{\mathrm{out}}\)\(d_{q}\times C\times P_{\mathrm{out}}\)。當分組採樣策略由 2 組、每組 64 點組成時,變量的值爲 \(d_{q}=256\)\(C= 64\)\(P_{\mathrm{in}}=64\)\(P_{\mathrm{out}}=128\),進而計算出 \(M_{c}\)\(M_{s}\)\(L_{\mathrm{output}}\) 的參數數量均超過百萬。

  事實上,這三個組件共同佔據了以ResNet-50爲主幹的AdaMixer模型總參數的大部分,同時它們也是增強模型性能的主要驅動力。綜上,這也就是論文對它們進行LORS實驗的動機。

Analysis on Parameter Reduction

  定義 \(W\in \mathbb{R}^{d\times h}\) 爲堆疊結構中每層都存在的權重參數,\(N\) 爲堆疊層數:

  • 如果是靜態的,則原本就有 \(d\times h\) 個參數,而使用 \(\mathrm{LORS}^\mathrm{T}\) 後平均每層僅需要 \(\frac{1}{N}\times d\times h + K\times(d\times r+r\times h)\)個參數。
  • 如果是自適應的,通過 \(q\) 線性變換生成需要 \(d_{q}\times d\times h\) 個參數,其中 \(d_{q}\)\(q\) 的維度,使用 \(\mathrm{LORS}^\mathrm{A}\) 每層平均僅需要 \(\frac{1}{N}\times d_q\times d\times h + K\times(d_q\times r^2 + d\times r + r\times h)\) 個參數。

  爲了更直觀地展示LORS的參數減少效果,在ASM設置 \(d_{q}=256\)\(d=64\)\(h=128\)\(K=2\)\(h=256\)\(L_{\mathrm{output}}\) 設置 \(d=2\times 128\times 128\)\(K\,=\,1\) 的情況下,\(\mathrm{LORS}^\mathrm{T}\)\(\mathrm{LORS}^\mathrm{A}\) 對不同 \(r\) 值的參數減少情況如表 1 所示。

Experiments


Implementation Details

  • Training.

  使用權重衰減爲 0.0001 的AdamW優化器,在 8 個Nvidia V100 GPU上訓練所有模型,批量大小爲 16,學習率爲 2.5 × e−5。模型訓練 12 或 36 個 週期,對於 12 週期訓練,學習率在第 8 和 11 週期下降 10 倍;對於 36 週期訓練,在第 24 和 33 週期學習率下降 10 倍。

  低秩值方面,\(\mathrm{LORS}^\mathrm{A}\) 設置爲 \(r=16\)\(\mathrm{LORS}^\mathrm{T}\) 設置爲 \(r=8\)

  所有實驗中,\(\mathrm{LORS}^\mathrm{A}\) 的參數組數量設置爲\(K\,=\,[1,1,2,2,3,3]\),應用於AdaMixer解碼器中的ACMASM,而\(L_{\mathrm{output}}\)則設置爲 \(K\ =\ [1,1,1,1,1,1]\)

  組採用時將特徵通道分爲 2 組,每組 64 個採樣點,而不是AdaMixer默認的 4 組,每組 32 個採樣點,旨在增加LORS的參數可壓縮空間。根據AdaMixer論文和論文的實驗,這並不會簡介提高性能。

  主幹網絡使用ImageNet-1k預訓練模型進行初始化,LORS參數初始化如下面所示,其餘參數則由Xavier初始化。關於模型訓練的所有其他方面,如數據增強、損失函數等,只需遵循AdaMixer的設置即可。

  • Initialization Strategies

  論文對LORS中的各個組件嘗試了多種初始化方法,確定了整體的初始化方法如下:

  • \(\mathrm{LORS}^\mathrm{T}\):對於靜態LORS,對 \(W^\mathrm{shared}\) 和每個 \({\boldsymbol{B}}\) 採用Kaiming初始化,並對每個 \(A\) 進行零初始化。
  • \(\mathrm{LORS}^\mathrm{A}\):對於自適應LORS,將Kaiming初始化每個 \(\tilde{W}^\mathrm{shared}\)\({\hat{B}}\)\({\hat{A}}\)線性變換權重。此外,論文對每個 \({\hat{E}}\) 的線性變換權重使用零初始化

Main Results

  表 2 展示了在 1× 訓練方案下使用和不使用LORS技術的性能比較。

  表 3 展示了AdaMixer+LORS方法在不同骨幹網和查詢數的3×訓練方案下的性能。

Ablation Study

  表 4 展示了 \(\mathrm{LORS}^\mathrm{A}\)\(\mathrm{LORS}^\mathrm{T}\) 對模型參數和性能的影響進行消融研究

  表 5 對比了共享權重和私有權重中哪一個對解碼器的性能影響更大。

  表 6 探索了自適應LORS的最佳參數組數量和秩 \(r\) 的值。

  表 7 研究了 \(\mathrm{LORS}^\mathrm{T}\) 的最佳配置設置。

  表 8 對結合LORS結構的最佳解碼器層數進行實驗對比。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章