这里写目录标题
- 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 ↩︎