20240623日志:大模型压缩-sliceGPT

news2024/9/20 18:51:58

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的降序排列特征值的特征矩阵。

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

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

相关文章

[职场] 保险理赔工作简历自我评价范文 #媒体#经验分享#笔记

保险理赔工作简历自我评价范文 保险行业是指将通过契约形式集中起来的资金,用以补偿被保险人的经济利益业务的行业。下面是保险理赔工作简历自我评价范文,供大家参考。 保险公司工作自我评价1 我已在__保险公司工作_个年头。在同事和领导的热情帮忙下&…

query2doc:用大模型做query检索拓展

原文: 前沿重器[38] | 微软新文query2doc:用大模型做query检索拓展 比较主流的检索方案: 字面检索(sparse,稀疏)向量检索(dense,稠密) query对文档文段的召回&#xff…

【消息队列】六万字长文详细带你RabbitMQ从入门到精通

目录 1、基础篇1.1 为什么要用消息队列MQ1.2 什么是消息队列?1.3 RabbitMQ体系结构介绍1.4 RabbitMQ安装1.5 Hello World1.5.1 目标1.5.2 具体操作 1.6 RabbitMQ用法1.6.1 Work Queues1.6.2 Publish/Subscribe1.6.3 Routing1.6.4 Topics1.6.5 工作模式小结 2. 进阶篇…

维度建模中的事实表

在维度建模中,根据粒度划分,数据表主要分为维度表和事实表。而事实表又可以分为三种类型:事务型事实表、周期快照型事实表和累计快照型事实表。本文将详细介绍这三种事实表,并提供相应的代码示例。 目录 1. 事务型事实表示例 2. 周…

推荐系统三十六式学习笔记:原理篇.模型融合13|经典模型融合办法:线性模型和树模型的组合拳

目录 为什么要融合?“辑度组合”原理逻辑回归梯度提升决策树GBDT二者结合 总结 推荐系统在技术实现上一般划分为三个阶段:挖掘、召回、排序 。 为什么要融合? 挖掘的工作是对用户和物品做非常深入的结构化分析,各个角度各个层面…

硬盘监控和分析工具:Smartctl

文章目录 1. 概述2. 安装3. 使用4. smartctl属性信息介绍 1. 概述 Smartctl(S.M.A.R.T 自监控,分析和报告技术)是类Unix系统下实施SMART任务命令行套件或工具,它用于打印SMART自检和错误日志,启用并禁用SMRAT自动检测…

PR模板 | RGB特效视频标题模板Titles | MOGRT

RGB特效视频标题模板mogrt免费下载 4K分辨率(38402160) 支持任何语言 友好的界面 输入和输出动画 快速渲染 视频教程 免费下载:https://prmuban.com/39055.html 更多pr模板视频素材下载地址:https://prmuban.com

初见:AntDB智能运维“三剑客“之ADC

引言 6月15日,PostgreSQL数据库技术峰会广州站圆满落幕。峰会上,亚信安慧数据库智能运维产品负责人李志龙介绍了AntDB的6大数据库引擎和3大工具产品能力。 这里的3大工具分别指: AntDB数据库迁移工具包 MTK 数据库智能运维平台 ACC AntDB数据…

Modbus协议在工业自动化中的应用

Modbus协议介绍 Modbus是一种常用的工业现场总线通信协议,被广泛应用于工业自动化领域。它是一种简单、易实现的主从式通信协议,具有高度的可靠性和通用性。本文将从Modbus协议的基本概念、通信模式、数据格式、常见应用场景等方面进行全面介绍,并通过图文并茂的方式帮助读者更…

ardupilot开发 --- 视觉伺服 篇

风驰电掣云端飘,相机无法对上焦 视觉伺服分类视觉伺服中的坐标系成像模型推导IBVS推导参考文献 视觉伺服分类 控制量是在图像空间中推导得到还是在欧式空间中推导得到,视觉伺服又可以分类为基于位置(PBVS)和基于图像的(IBVS)视觉伺服。 视觉伺服中的坐…

关于docker存储overlay2相关问题

报错如下: 报错原因:使用rm -rf 清理overlay2导致的,非正常清理。 正常清理命令如下: # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…

node.js环境安装以及Vue-CLI脚手架搭建项目教程

目录 ▐ vue-cli 搭建项目的优点 ▐ 安装node.js环境 ▐ 搭建vue脚手架项目 ▐ 项目结构解读 ▐ 常用命令 ▐ 创建组件 ▐ 组件路由 ▐ vue-cli 搭建项目的优点 传统的前端项目架构由多个html文件,且每个html文件都是相互独立的,导入外部组件时需…

wireshark常用过滤命令

wireshark常用过滤命令 wireshark抓包介绍单机单点:单机多点:双机并行: wireshark界面认识默认布局调整布局(常用)显示FCS错误 wireshark常见列Time回包数据报对应网络模型 wireshark基本操作结束抓包再次开始抓包 **wireshark常用过滤命令**…

【实物资料包】基于STM32智能台灯设计

【实物资料包】基于STM32智能台灯设计 需要资料的请在文章结尾获取哦~~~~(如有问题私信我即可) 1.介绍 1 添加wifi模块模块,可通过wifi模块APP或者手动按钮切换自动/手动模式 2 自动模式下,台灯可以感应是否有人落座&#xff0…

【BSCP系列第2期】XSS攻击的深度剖析和利用(文末送书)

文章目录 前言一、官方地址二、开始(15个)1:Lab: DOM XSS in document.write sink using source location.search inside a select element2:Lab: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-e…

猫头虎分享已解决Bug:Array Index Out of Bounds Exception

🐯 猫头虎分享已解决Bug:Array Index Out of Bounds Exception 🐯 摘要 大家好,我是猫头虎,今天我们要聊聊后端开发中经常遇到的一个问题:Array Index Out of Bounds Exception,即 java.lang.…

哪里找好用的商城系统源码?

很多企业在挑选商城系统时,由于不懂源码,很难选择到高质量源码的商城系统,那么哪里找好用的商城系统源码?如何选择?接下来就跟着启山智软小编一起来看看吧,以下为选择源码时的四看: 1.一看源码公司行业动态 可以查…

【linux】详解——库

目录 概述 库 库函数 静态库 动态库 制作动静态库 使用动静态库 如何让系统默认找到第三方库 lib和lib64的区别 /和/usr/和/usr/local下lib和lib64的区别 环境变量 配置相关文件 个人主页:东洛的克莱斯韦克-CSDN博客 简介:C站最萌博主 相关…

[FreeRTOS 内部实现] 信号量

文章目录 基础知识创建信号量获取信号量释放信号量信号量 内部实现框图 基础知识 [FreeRTOS 基础知识] 信号量 概念 创建信号量 #define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( uint8_t ) 3U ) #define semSEMAPHORE_QUEUE_ITEM_LENGTH ( ( uint8_t ) 0U ) #define xSe…

C++精解【6】

文章目录 eigenMatrix基础例编译时固定尺寸运行指定大小 OpenCV概述 eigen Matrix 基础 所有矩阵和向量都是Matrix模板类的对象。向量也是矩阵&#xff0c;单行或单列。Matrix模板类6个参数&#xff0c;常用就3个参数&#xff0c;其它3个参数有默认值。 Matrix<typename…