您的位置:首页 > 汽车 > 时评 > 20240623日志:大模型压缩-sliceGPT

20240623日志:大模型压缩-sliceGPT

2024/11/18 8:41:03 来源:https://blog.csdn.net/JiajunSun/article/details/139906616  浏览:    关键词:20240623日志:大模型压缩-sliceGPT

context

  • 1. 剪枝方案图释
  • 2. 正交矩阵Q

1. 剪枝方案图释

在这里插入图片描述

Fig. 1.1 剪枝方案

图中的阴影是表示丢弃掉这部分数据。通过引入正交矩阵 Q Q Q使 Q ⊤ Q = Q Q ⊤ = I \mathrm{Q}^\top\mathrm{Q}=\mathrm{Q}\mathrm{Q}^\top=\mathrm{I} QQ=QQ=I,来大量缩减 X X X的列数和 W W W的行数。
由于 Q Q Q是正交矩阵,有 ∥ Q x ∥ = x ⊤ Q ⊤ Q x = x ⊤ x = ∥ x ∥ \|\mathbf{Q}x\|=\sqrt{x^\top\mathbf{Q}^\top\mathbf{Q}x}=\sqrt{x^\top x}=\|x\| Qx=xQQx =xx =x,所以 Q Q Q x x x相乘不会影响 x x x的范数。
在一般情况下,假设 X ℓ \mathbf{X}_{\ell} X是transformer中一个块的输出,在经过RMSNorm(对每一行 x ← X ∣ ∣ X ∣ ∣ x\leftarrow \frac{\mathbf{X}}{\left|\left|\mathbf{X}\right|\right|} xXX处理),然后 R M S N o r m ( X ℓ ) \mathrm{RMSNorm}(\mathbf{X}_{\ell}) RMSNorm(X)作为下一块的输入。若引入矩阵 Q Q Q,则有 R M S N o r m ( X ℓ ) = R M S N o r m ( X ℓ Q ) Q ⊤ \mathrm{RMSNorm}(\mathbf{X}_\ell)=\mathrm{RMSNorm}(\mathbf{X}_\ell\mathbf{Q})\mathbf{Q}^\top RMSNorm(X)=RMSNorm(XQ)Q,所以实际上引入 Q Q Q不改变transformer的结构。对于transformer中的每一attention或FFN层都有线性层,同时由于transformer中有残差连接(图中的 + ◯ \textcircled{+} +操作),这里把矩阵 Q Q Q引入每一块的线性层,所以需要把矩阵 Q Q Q引入到所有之前的层(一直到编码阶段)和所有之后的层(一直到LM头)。
W i n ℓ \mathbf{W}_{in}^\ell Win W o u t ℓ \mathbf{W}_{out}^\ell Wout为transformer的第 ℓ \ell 块的线性层的权重矩阵, b i n ℓ \mathbf{b}_{in}^\ell bin b o u t ℓ \mathbf{b}_{out}^\ell bout为相对应的偏置, W e m b d \mathbf{W}_{embd} Wembd W h e a d \mathbf{W}_{head} Whead为编码和头矩阵, Q Q Q D D D维矩阵,则可以用以下矩阵来模型不变性变换
W ~ e m b d = W e m b d Q , (1) b ~ o u t ℓ = Q ⊤ b o u t ℓ , (4) W ~ i n ℓ = Q ⊤ W i n ℓ , (2) W ~ h e a d = Q ⊤ W h e a d . (5) W ~ o u t ℓ = W o u t ℓ Q , (3) \begin{aligned}\tilde{\mathbf{W}}_{embd}&=\mathbf{W}_{embd}\mathbf{Q} ,&&\text{(1)}&&\tilde{b}_{out}^{\ell}=\mathbf{Q}^{\top}b_{out}^{\ell} ,&&\text{(4)}\\\tilde{\mathbf{W}}_{in}^{\ell}&=\mathbf{Q}^{\top}\mathbf{W}_{in}^{\ell},&&\text{(2)}&&\tilde{\mathbf{W}}_{head}=\mathbf{Q}^{\top}\mathbf{W}_{head} .&&\text{(5)}\\\tilde{\mathbf{W}}_{out}^{\ell}&=\mathbf{W}_{out}^{\ell}\mathbf{Q} ,&&\text{(3)}\end{aligned} W~embdW~inW~out=WembdQ,=QWin,=WoutQ,(1)(2)(3)b~out=Qbout,W~head=QWhead.(4)(5)偏置矩阵保持不变 b ~ i n ℓ = b i n ℓ , b ~ h e a d = b h e a d \tilde{b}_{in}^{\ell}=b_{in}^{\ell},\tilde{b}_{head}=b_{head} b~in=bin,b~head=bhead
文章主题思想如图Fig. 1.2
在这里插入图片描述

Fig. 1.2 图解slicegpt(三张图从左到右分别是a、b和c)

图中,(a)中的 W Q W_Q WQ W K W_K WK W V W_V WV是注意力中的QKV操作, W V W_V WV表示注意力机制的输出矩阵, M = I − 1 D 1 1 ⊤ \mathbf{M}=\mathbf{I}-\frac{1}{D}\mathbf{1}\mathbf{1}^{\top} M=ID111是用来使矩阵 X X X中的每一个元素拉回到0上下,与下一步的 x ← X ∣ ∣ X ∣ ∣ x\leftarrow \frac{\mathbf{X}}{\left|\left|\mathbf{X}\right|\right|} xXX共同完成归一化处理, W 1 W_1 W1 W 2 W_2 W2是MLP操作。(b)与(c)中的 ( α ) (\alpha) (α)就是diag( α \alpha α),矩阵 ( α ′ ) (\alpha^{'}) (α)来自前一块。向量 α \alpha α和偏置 β \beta β在每个LayerNorm实例上独立学习。diag( α \alpha α)是一个矩阵操作,表示将一个向量 ( α ) (\alpha) (α)作为对角线元素创建一个对角矩阵。
最后移除一些不重要的行和列。

2. 正交矩阵Q

使用主成分分析(PCA)来求解 Q ℓ Q_{\ell} Q(transformer中第 ℓ \ell 块),在训练集中抽取一些数据作为校准数据,喂给模型用来从前到后逐层提取正交矩阵。对于校准数据集中的 i i i条数据,使模型中第 ℓ \ell 层输出为 X ℓ , i X_{\ell,i} X,i,则有
C ℓ = ∑ i X ℓ , i ⊤ X ℓ , i \mathrm{C}_{\ell}=\sum_{i}\mathrm{X}_{\ell,i}^{\top}\mathrm{X}_{\ell,i} C=iX,iX,i Q ℓ Q_{\ell} Q C ℓ \mathrm{C}_{\ell} C的降序排列特征值的特征矩阵。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com