这里写目录标题
- 1.多头注意力和FFN的权重分布
- 2 多头矩阵的低秩分解
- FFN无梯度通道剪枝
这篇文章 1期望找到一个“剪枝+低秩分解”的路子,使结构化剪枝达到非结构化剪枝的性能。
1.多头注意力和FFN的权重分布
从Fig.1.1可以看出多头注意力机制的qkvo矩阵表现出了稀疏性。
然而从Fig.1.2可以看出FFN的 W u p W_{up} Wup, W d o w n W_{down} Wdown, W g a t e W_{gate} Wgate就没有这种表现。所以这篇文章指出用低秩分解来压缩多头注意力矩阵,用结构化剪枝来压缩FFN矩阵。
2 多头矩阵的低秩分解
对于一个权重 W i j W_{ij} Wij,用对应的输入激活 X X X的 ℓ 2 \ell_2 ℓ2范数来评估其重要度,用式1来表示
x d i n = ( ∥ X 1 ∥ 2 , ∥ X 2 ∥ 2 , ⋯ , ∥ X d i n ∥ 2 ) (1) \mathbf{x}_{d_{in}}=(\|\mathbf{X}_{1}\|_{2},\|\mathbf{X}_{2}\|_{2},\cdots,\|\mathbf{X}_{d_{in}}\|_{2})\tag{1} xdin=(∥X1∥2,∥X2∥2,⋯,∥Xdin∥2)(1)
式中, ∥ X 1 ∥ j \|\mathbf{X}_{1}\|_{j} ∥X1∥j表示 W : , j W_{:,j} W:,j的重要度。用式2表示其损失,
min L , R ∑ i , j ( W i j − ( L R ) i j ) 2 ∥ X j ∥ 2 (2) \min_{\mathbf{L},\mathbf{R}} \sum_{i,j}(W_{ij}-(\mathbf{LR})_{ij})^2\|\mathbf{X}_j\|_2\tag{2} L,Rmini,j∑(Wij−(LR)ij)2∥Xj∥2(2)
把重要度分数定义为对角线矩阵 D = d i a g ( x d i n ) \mathbf{D} = \mathrm{diag}(\mathbf{x}_{d_{in}}) D=diag(xdin),由公式2可变为公式3
min L , R ∥ W D − L R D ∥ 2 (3) \min_{\mathbf{L},\mathbf{R}}\|\mathbf{WD}-\mathbf{LRD}\|_2\tag{3} L,Rmin∥WD−LRD∥2(3)
对 W D \mathbf{WD} WD进行SVD分解,得到 S V D ( W D ) = U Σ V SVD(\mathbf{WD})=U\Sigma V SVD(WD)=UΣV,令 L = U Σ , R = V D − 1 \mathbf{L} = \mathbf{U}\boldsymbol{\Sigma},\mathbf{R} = \mathbf{V}\mathbf{D}^{-1} L=UΣ,R=VD−1,为了压缩矩阵,保留权重矩阵 L \mathbf{L} L, R \mathbf{R} R的前 l l l和 r r r个分量,得到 L r = U r Σ r , R r = V r D − 1 \mathbf{L}_r=\mathbf{U}_r\mathbf{\Sigma}_r,\mathbf{R}_r=\mathbf{V}_r\mathbf{D}^{-1} Lr=UrΣr,Rr=VrD−1,在实验中,论文选择将75%的参数分配给 W v W_v Wv和 W o W_o Wo矩阵,而将剩下的25%分配给 W q W_q Wq和 W k W_k Wk矩阵,参数来自对不同矩阵不同压缩比下模型的性能如Fig.2.1。
FFN无梯度通道剪枝
用 ℓ 2 \ell_2 ℓ2范数 W i , : W_{i,:} Wi,:来评估矩阵第 i i i行的重要度,用公式4表示
Φ ( W i , : ) = ∥ I ( W i , 1 ) , I ( W i , 2 ) , ⋯ , I ( W i , d i n ) ∥ 2 (4) \Phi(\mathbf{W}_{i,:})=\|I(W_{i,1}),I(W_{i,2}),\cdots,I(W_{i,d_{in}})\|_{2}\tag{4} Φ(Wi,:)=∥I(Wi,1),I(Wi,2),⋯,I(Wi,din)∥2(4)
接下来考虑神经元之间的依赖关系,例如,在修剪下矩阵 W d o w n W_{down} Wdown的第 i i i个输入信道时,应对门矩阵 W g a t e W_{gate} Wgate和上矩阵 W u p W_{up} Wup中相应的输出信道进行相应的修剪。用公式5表示之间的依赖
W i g r o u p = { W i , : u p , W i , : g a t e , W : , i d o w n } (5) \mathbf{W}_i^{group}=\{\mathbf{W}_{i,:}^{up},\mathbf{W}_{i,:}^{gate},\mathbf{W}_{:,i}^{down}\}\tag{5} Wigroup={Wi,:up,Wi,:gate,W:,idown}(5)
由此评价某一有依赖关系的结构的重要度
C i g r o u p = Φ ( W i , : u p ) + Φ ( W i , : g a t e ) + Φ ( W : , i d o w n ) (6) C_{i}^{group}=\Phi(\mathbf{W}_{i,:}^{up})+\Phi(\mathbf{W}_{i,:}^{gate})+\Phi(\mathbf{W}_{:,i}^{down})\tag{6} Cigroup=Φ(Wi,:up)+Φ(Wi,:gate)+Φ(W:,idown)(6)
作者发现最不重要的1%的参数在模型性能中起着至关重要的作用。所以剪枝要把最不重要的和最重要的保留,由公式6给出剪枝原则
W i g r o u p = { W i g r o u p , i f C i g r o u p i n t o p ( p r ∗ 100 − 1 ) % , W i g r o u p , i f C i g r o u p i n m i n 1 % , 0. o t h e r w i s e . (6) \mathbf{W}_{i}^{group}=\begin{cases}\mathbf{W}_{i}^{group},&\mathrm{if} C_{i}^{group} \mathrm{in} \mathrm{top}(p_{r}*100-1)\%,\\\mathbf{W}_{i}^{group},&\mathrm{if} C_{i}^{group} \mathrm{in} \mathrm{min} 1\% ,\\0.&\mathrm{otherwise}.\end{cases}\tag{6} Wigroup=⎩ ⎨ ⎧Wigroup,Wigroup,0.ifCigroupintop(pr∗100−1)%,ifCigroupinmin1%,otherwise.(6)
LoRAP: Transformer Sub-Layers Deserve Differentiated Structured Compression for Large Language Models ↩︎