大模型压缩-LoRAP

news2025/1/21 7:20:16

这里写目录标题

  • 1.多头注意力和FFN的权重分布
  • 2 多头矩阵的低秩分解
  • FFN无梯度通道剪枝

这篇文章 1期望找到一个“剪枝+低秩分解”的路子,使结构化剪枝达到非结构化剪枝的性能。

1.多头注意力和FFN的权重分布

在这里插入图片描述

Fig. 1.1 多头注意力权重矩阵

从Fig.1.1可以看出多头注意力机制的qkvo矩阵表现出了稀疏性。
在这里插入图片描述

Fig. 1.2 FFN权重矩阵

然而从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=(X12,X22,,Xdin2)(1)
式中, ∥ X 1 ∥ j \|\mathbf{X}_{1}\|_{j} X1j表示 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)2Xj2(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,RminWDLRD2(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=VD1,为了压缩矩阵,保留权重矩阵 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=VrD1,在实验中,论文选择将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。
在这里插入图片描述

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(pr1001)%,ifCigroupinmin1%,otherwise.(6)


  1. LoRAP: Transformer Sub-Layers Deserve Differentiated Structured Compression for Large Language Models ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

万字浅析视频搜索系统中的多模态能力建设

万字浅析视频搜索系统中的多模态能力建设 FesianXu 20240331 at Tencent WeChat search team 前言 视频搜索是天然的富媒体检索场景,视觉信息占据了视频的一大部分信息量,在视频搜索系统中引入多模态能力,对于提高整个系统的能力天花板至关重…

学习感悟丨在誉天学习数通HCIP怎么样

大家好,我是誉天学员的徐同学,学习的数通HCIP课程。 在学校的时候,听说下半年就要出去实习了,心中坎坷不安,现在我学到的知识远远不够的。然后就想着学点东西充实一下自己的知识面和专业能力,有一次和同学谈…

【STM32嵌入式系统设计与开发---传感器拓展】——1_4_标准库FreeRTOS移植实验

目录 雅俗理解源码下载链接知识拓展步骤1:stm32f103vet6移植freeRTOS步骤:(1)准备开发环境(2)添加FreeRTOS移植 致谢 雅俗理解 雅:FreeRTOS是一个开源的实时操作系统(RTOS)&#xf…

数字图像处理之【高斯金字塔】与【拉普拉斯金字塔】

数字图像处理之【高斯金字塔】与【拉普拉斯金字塔】 1.1 什么是高斯金字塔? 高斯金字塔(Gaussian Pyramid)是一种多分辨率图像表示方法,用于图像处理和计算机视觉领域。它通过对原始图像进行一系列的高斯平滑和下采样操作&#x…

【例子】webpack 开发一个可以加载 markdown 文件的加载器 loader 案例

Loader 作为 Webpack 的核心机制,内部的工作原理却非常简单。接下来我们一起来开发一个自己的 Loader,通过这个开发过程再来深入了解 Loader 的工作原理。 这里我的需求是开发一个可以加载 markdown 文件的加载器,以便可以在代码中直接导入 m…

Pikachu靶场--Sql Inject

参考借鉴 pikachu靶场练习(详细,完整,适合新手阅读)-CSDN博客 数字型注入(post) 这种类型的SQL注入利用在用户输入处插入数值,而不是字符串。攻击者试图通过输入数字来修改SQL查询的逻辑,以执行恶意操作。…

前端笔记-day11

文章目录 01-空间-平移02-视距03-空间旋转Z轴04-空间旋转X轴05-空间旋转Y轴06-立体呈现07-案例-3D导航08-空间缩放10-动画实现步骤11-animation复合属性12-animation拆分写法13-案例-走马灯14-案例-精灵动画15-多组动画16-全民出游全民出游.htmlindex.css 01-空间-平移 <!D…

普元EOS学习笔记-创建精简应用

前言 本文依旧基于EOS8.3进行描述。 在上一篇文章《EOS8.3精简版安装》中&#xff0c;我们了解到普元预编译好的EOS的精简版压缩包&#xff0c;安装后&#xff0c;只能进行低开&#xff0c;而无法高开。 EOS精简版的高开方式是使用EOS开发工具提供的IDE&#xff0c;创建一个…

nginx架构学习

前言 这篇文章主要记录下对nginx架构的学习记录。 架构设计 优秀的模块化设计 高度模块化的设计是Nginx的架构基础。在Nginx中&#xff0c;除了少量的核心代码&#xff0c;其他一切皆 为模块。 在这5种模块中&#xff0c;配置模块与核心模块都是与Nginx框架密切相关的&…

【ESP32】打造全网最强esp-idf基础教程——14.VFS与SPIFFS文件系统

VFS与SPIFFS文件系统 这几天忙着搬砖&#xff0c;差点没时间更新博客了&#xff0c;所谓一日未脱贫&#xff0c;打工不能停&#xff0c;搬砖不狠&#xff0c;明天地位不稳呀。 不多说了&#xff0c;且看以下内容吧~ 一、VFS虚拟文件系统 先来看下文件系统的定义&#x…

zabbix监控进阶:如何分时段设置不同告警阈值(多阈值告警)

作者 乐维社区&#xff08;forum.lwops.cn&#xff09;乐乐 在生产环境中&#xff0c;企业的业务系统状态并不是一成不变的。在业务高峰时段&#xff0c;如节假日、促销活动或特定时间段&#xff0c;系统负载和用户访问量会大幅增加&#xff0c;此时可能需要设置更高的告警阈值…

网络基础:静态路由

静态路由是一种由网络管理员手动配置的路由方式&#xff0c;用于在网络设备&#xff08;如路由器或交换机&#xff09;之间传递数据包。与动态路由不同&#xff0c;静态路由不会根据网络状态的变化自动调整。 不同厂商的网络设备在静态路由的配置上有些许差异&#xff1b;下面…

qt文件如何打包成一个独立的exe文件

QT官方给我们安装好了打包软件&#xff0c;就在你QT安装的位置 把这个在cmd打开C:\Qt\6.7.1\mingw_64\bin\windeployqt6.exe&#xff08;或复制地址&#xff09; 然后把要打包项目的exe复制到新的空文件夹&#xff0c;再复制他的地址 按回车后生成新文件 再下载打包软件&#…

Arduino IDE 的安装与esp32项目的创建

1打开官网下载 官网 1-1下载完成后安装即可&#xff0c;会弹出一些按安装提示点击安装 2切换为中文模式 2-1点击Flie&#xff0c;在点击图中高亮的位置&#xff0c;进入 2-2选择语言 3创建esp32项目 3-1在线安装&#xff08;不一定成功&#xff0c;可以一直试&#xff09; …

树莓派3B读写EEPROM芯片AT24C256

AT24C256是一个Atmel公司的EEPROM存储芯片&#xff0c;容量是256K个bit&#xff08;也就是32K字节&#xff09;&#xff0c;I2C接口&#xff0c;而树莓派正好有I2C接口&#xff0c;如下图蓝框中的4个IO口&#xff0c; 把AT24C256和这4个口接在一起&#xff0c;这样硬件就准备好…

观察者模式在金融业务中的应用及其框架实现

引言 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;使得多个观察者对象同时监听某一个主题对象。当这个主题对象发生变化时&#xff0c;会通知所有观察者对象&#xff0c;使它们能够自动更新。…

【NodeJs】入门

目录 一、前导 二、 url模块 三、path模块 四、buffer模块 五、fs模块 六、stream流模块 七、os模块 八、crypto模块 九、util模块 十、http模块 nodejs官网 Node.js — 在任何地方运行 JavaScript nmp是Node.js包管理器&#xff0c;用来安装各种库、框架和工具&…

js自定义内容生成二维码,qrcodejs的使用

qrcodejs qrcodejs是基于原生js的文本转换成二维码的库&#xff0c;轻量且使用方法简单&#xff0c;它的实现原理是通过canvas将重新编码的内容绘制在页面元素上&#xff0c; 使用qrcodejs时可以选择引入它的cdn或者使用npm下载 <script type"text/javascript" …

Nacos配置中心客户端源码分析(一): 客户端如何初始化配置

本文收录于专栏 Nacos 推荐阅读&#xff1a;Nacos 架构 & 原理 文章目录 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder总结「AI生成」 前言 专栏前几篇文章主要讲了Nacos作为服务注册中心相关…

vmware安装debian11

安装vmware16 下载镜像 https://repo.huaweicloud.com/debian-cd/ https://repo.huaweicloud.com/debian-cd/11.7.0/amd64/iso-dvd/ 安装 安装完成之后重启&#xff0c;输入账号密码进入&#xff0c;安装ssh服务器即可使用