大模型压缩:基于贝叶斯优化的自适应低秩分解

1.方法

1.1 基于特征的高维空间低秩分解

PCA已经是老朋友了,每次一说主成分都会出现PCA。这篇文章1利用预训练数据的子集作为校准数据集 D c a l = { x i } i = 1 n \mathcal{D}_{cal}=\{x_{i}\}_{i=1}^{n} Dcal={xi}i=1n,首先用校准数据集的样本协方差矩阵(SCM)估计整个特征空间分布的Y的协方差矩阵
C o v S ( Y ) = 1 n − 1 ∑ i = 1 n ( y i − y ˉ ) T ( y i − y ˉ ) (1) Cov_S(\boldsymbol{Y})=\frac{1}{n-1}\sum_{i=1}^n(\boldsymbol{y}_i-\bar{\boldsymbol{y}})^T(\boldsymbol{y}_i-\bar{\boldsymbol{y}})\tag{1} CovS(Y)=n11i=1n(yiyˉ)T(yiyˉ)(1)
式中 y i \boldsymbol{y}_i yi表示 x i \boldsymbol{x}_i xi的特征, y ˉ \bar{\boldsymbol{y}} yˉ是校准数据集的特征值平均值。但文章指出,计算高维的协方差矩阵并不简单,他们提出了合并协方差矩阵(PCM),把校准数据集分成 m m m组,对每一组分别计算协方差矩阵最后求平均得PCM
C o v P ( Y ) = 1 m ∑ k = 1 m C o v S ( Y k ) (2) Cov_P(\boldsymbol{Y})=\frac{1}{m}\sum_{k=1}^mCov_S(\boldsymbol{Y}_k)\tag{2} CovP(Y)=m1k=1mCovS(Yk)(2)

1.2 基于贝叶斯优化得低秩分配

对于每一层,甚至每一层的不同矩阵对低秩分解得敏感度不同,对于一个模型 f ( ⋅ ; θ ) f(\cdot;\theta) f(;θ),引入一组压缩率 λ = { λ i } i = 1 k \lambda=\{\lambda_{i}\}_{i=1}^{k} λ={λi}i=1k,引入一个任务模糊数据集D来评价压缩大模型 f ( ⋅ ; θ , λ ) f(\cdot;\boldsymbol{\theta},\lambda) f(;θ,λ)的性能,例如预训练数据集的子集。因此目标函数表示为
min ⁡ λ ∈ V H ( λ ) = E ( x , y ) ∼ D h ( f ( x ; θ , λ ) , y ) s . t . Σ λ ≤ ρ (3) \begin{aligned}\min_{\lambda\in\mathcal{V}}H(\boldsymbol{\lambda})&=\mathbb{E}_{(x,y)\sim\mathcal{D}}h(f(x;\boldsymbol{\theta},\boldsymbol{\lambda}),y)\\&s.t.\Sigma\boldsymbol{\lambda}\leq\rho\end{aligned}\tag{3} λVminH(λ)=E(x,y)Dh(f(x;θ,λ),y)s.tλρ(3)
式中, ρ \rho ρ是模型的整体压缩比, h ( ⋅ , ⋅ ) h(\cdot,\cdot) h(,)是评价指标,但事实上,评价指标和低秩分配都是非常耗时耗算力的,所以这篇论文提出样本高效贝叶斯优化(BO)来优化公式3。这里引入一个替代模型(例如高斯模型 N ( μ ( ⋅ ) , σ 2 ( ⋅ ) ) \mathcal{N}(\mu(\cdot),\sigma^2(\cdot)) N(μ(),σ2())),BO通过替代模型来估计目标函数 H ( λ ) H(\boldsymbol{\lambda}) H(λ),并且基于每一步的结果,更新后面一步的目标函数 H ( λ ) H(\boldsymbol{\lambda}) H(λ)。比如给出前t-1步 { λ 1 , ⋯   , λ t − 1 } \{\boldsymbol{\lambda}_{1},\cdots,\boldsymbol{\lambda}_{t-1}\} {λ1,,λt1}的目标函数值分别为 H t − 1 = [ H ( λ 1 ) , ⋯   , H ( λ t − 1 ) ] H_{t-1}=[H(\boldsymbol{\lambda}_{1}),\cdots,H(\boldsymbol{\lambda}_{t-1})] Ht1=[H(λ1),,H(λt1)],替代模型更新为 μ ( λ ) = k ( K + η 2 I ) − 1 H t − 1 σ 2 ( λ ) = k ( λ , λ ) − k T ( K + η 2 I ) − 1 k (4) \mu(\boldsymbol{\lambda})=\boldsymbol{k}(\boldsymbol{K}+\eta^{2}\boldsymbol{I})^{-1}H_{t-1}\\\sigma^{2}(\boldsymbol{\lambda})=k(\boldsymbol{\lambda},\boldsymbol{\lambda})-\boldsymbol{k}^{T}(\boldsymbol{K}+\eta^{2}\boldsymbol{I})^{-1}\boldsymbol{k}\tag{4} μ(λ)=k(K+η2I)1Ht1σ2(λ)=k(λ,λ)kT(K+η2I)1k(4)
式中 k ( ⋅ , ⋅ ) k(\cdot,\cdot) k(,)是一个核函数, ( k = k ( λ , λ i ) ) i ∈ [ t − 1 ] (\boldsymbol{k}=k(\boldsymbol{\lambda},\boldsymbol{\lambda}_{i}))_{i\in[t-1]} (k=k(λ,λi))i[t1] K = ( k ( λ i , λ j ) ) i , j ∈ [ t − 1 ] K = (k(\boldsymbol{\lambda}_{i},\boldsymbol{\lambda}_{j}))_{i,j\in[t-1]} K=(k(λi,λj))i,j[t1] η 2 I \eta^{2}I η2I是用来模拟噪声的白核函数,得到后验估计 H ( λ ) H(\boldsymbol{\lambda}) H(λ)(例如 H ( λ ) ∼ N ( μ ( λ ) , σ 2 ( λ ) ) H(\boldsymbol{\lambda})\sim{\mathcal{N}}(\mu(\boldsymbol{\lambda}),\sigma^{2}(\boldsymbol{\lambda})) H(λ)N(μ(λ),σ2(λ)))之后,BO通过采集函数确定下一次的比率分布,对于采集函数,可以用EI
α ( λ ) = E H ( λ ) [ max ⁡ { 0 , H ′ − H ( λ ) } ] λ t = a r g m a x λ α ( λ ) , (5) \begin{aligned}\alpha(\boldsymbol{\lambda})&=\mathbb{E}_{H(\boldsymbol{\lambda})}\left[\max\left\{0,H'-H(\boldsymbol{\lambda})\right\}\right]\\\boldsymbol{\lambda}_{t}&=\mathop{\mathrm{argmax}}_{\boldsymbol{\lambda}}\alpha(\boldsymbol{\lambda}),\end{aligned}\tag{5} α(λ)λt=EH(λ)[max{0,HH(λ)}]=argmaxλα(λ),(5)
式中, H ′ = min ⁡ i ∈ [ t − 1 ] H ( λ i ) H^{\prime}=\operatorname*{min}_{i\in[t-1]}H(\boldsymbol{\lambda}_{i}) H=mini[t1]H(λi)是指迄今为止观察到的最小值,然后BO选择了最好的EI的方向去搜索。在得到最优比 λ ∗ \lambda^{*} λ之后,可以确定分配 r i = ( 1 − λ i ) d 1 d 2 / ( d 1 + d 2 ) r_{i}=(1-\lambda_{i})d_{1}d_{2}/(d_{1}+d_{2}) ri=(1λi)d1d2/(d1+d2)

1.3 后训练

为了不使模型参数量反弹,文章使用压缩模型的子空间对模型微调。
Y = ( B A + Λ b B r ′ Λ d A r ′ ) X (6) Y=(BA+\Lambda_bB_{r'}\Lambda_dA_{r'})X\tag{6} Y=(BA+ΛbBrΛdAr)X(6)
式中, B r ′ ∈ R d 2 × r ′ B_{r^{\prime}}\in\mathbb{R}^{d_2\times r^{\prime}} BrRd2×r A r ′ ∈ R r ′ × d 1 A_{r^{\prime}}\in\mathbb{R}^{r^{\prime}\times d_1} ArRr×d1是修正后的 B B B A A A矩阵, Λ b \boldsymbol{\Lambda}_{b} Λb Λ d \boldsymbol{\Lambda}_{d} Λd是对角阵。


  1. 基于贝叶斯优化的自适应低秩分解 ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI播客下载:Practical AI(人工智能最新进展)

Practical AI这是由 http://Changelog.com推出的节目。Changelog 本身做了许多跟软件开发的 podcast 节目 。比如《The Changelog》播客 ,这是一个专注于软件领域的播客,每周一发布最新新闻摘要,周三进行深入技术访谈,周五则是访谈…

Vue-element 组件dialog右上角点击 X 清空表单校验信息

问题: 点击确定触发校验后,点击弹窗右上角的 X号关闭弹窗后再次打开弹窗,校验规则没有被清空 解决方法:

Linux——数据流和重定向,制作镜像

1. 数据流 标准输入( standard input ,简称 stdin ):默认情况下,标准输入指从键盘获取的输入 标准输出( standard output ,简称 stdout ):默认情况下,命令…

每日复盘-20240701

今日关注: 20240701 六日涨幅最大: ------1--------301182--------- 凯旺科技 五日涨幅最大: ------1--------300977--------- 深圳瑞捷 四日涨幅最大: ------1--------300977--------- 深圳瑞捷 三日涨幅最大: ------1--------300461--------- 田中精机 二日涨幅最…

迈阿密色主题学科 HTML5静态导航源码

源码介绍 迈阿密色主题学科 HTML5静态导航源码,源码直接上传可用,有技术的可以拿去写个后端搜索调用百度接口,也可用于做引导页下面加你网址添加一个A标签就行了,很简单,需要的朋友就拿去吧 界面预览 源码下载 迈阿…

nginx限制特定国家或地区的访问

一、查看 1. 先查看本地nginx是否有ngx_http_geoip2模块(如果有的同学有该模块可以直接跳到下面直接配置nginx服务) nginx -V 二、安装 1. 安装所需依赖 yum install -y libmaxminddb-devel pcre-devel zlib-devel gcc gcc-c make git 2. 下载ngx_h…

Docker 镜像导出和导入

docker 镜像导出 # 导出 docker 镜像到本地文件 docker save -o [输出文件名.tar] [镜像名称[:标签]] # 示例 docker save -o minio.tar minio/minio:latest-o 或 --output:指定导出文件的路径和名称[镜像名称[:标签]]:导出镜像名称以及可选的标签 dock…

Web2Code :网页理解和代码生成能力的评估框架

多模态大型语言模型(MLLMs)在过去几年中取得了爆炸性的增长。利用大型语言模型(LLMs)中丰富的常识知识,MLLMs在处理和推理各种模态(如图像、视频和音频)方面表现出色,涵盖了识别、推…

修改element-ui日期下拉框datetimePicker的背景色样式

如图: 1、修改背景色 .el-date-picker.has-sidebar.has-time { background: #04308D; color: #fff; border: 1px solid #326AFF } .el-date-picker__header-label { color: #ffffff; } .el-date-table th { color: #fff; } .el-icon-d-arrow-left:before { color: …

【机器学习】基于层次的聚类方法:理论与实践

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 基于层次的聚类方法:理论与实践引言1. 层次聚类基础1.1 概述1.2 距离…

新质生产力最新测算(Shp/dta/xcel格式,2012-2022年)

数据简介:参考学者蔡湘杰、贺正楚的做法、我们通过收集数据构建了如下所示的衡量新质生产力的指标体系,但部分数据由于收集难度以及未公布等问题,部分数据有缺少,下面展示了部分原始数据,便于大家进行分析。 数据来源…

自动测域名延迟的导航页面源码

好看导航页面可自动测域名延迟,该源码是html源码,可以做个引导页面,需要的朋友可以下载使用 自动测域名延迟的导航页面源码

如何优化前端性能:提高网页加载速度的实用技巧

我们在前端开发中,性能优化是提高用户体验的关键因素。网页加载速度直接影响用户的满意度和留存率。本文将介绍几种优化前端性能的实用方法,帮助你提高网页加载速度。 问题描述 : 首先前端性能优化涉及多个方面,包括减少HTTP请…

QueryClientProvider is not defined

QueryClientProvider is not defined 运行一个svelte的项目,报错如上,前后查找解决不了,然后没办法, 本来是用yarn 安装的依赖,改用npm install,再次运行就成功了

全国产化飞腾模块BIOS下修复系统启动文件

1、背景介绍 全国产飞腾模块采用麒麟信安操作系统,当系统下面的grub.cfg文件被用户误操作导致无法启动时,可以在BIOS下通过U盘中备份的grub.cfg替换硬盘上原来的grub.cfg文件,从而实现启动。 2、操作步骤 首先进入BIOS命令行模式&#xff…

【Linux系列】Fedora40安装VMware Workstation Pro报错

问题描述 由于Fedora 40使用的Linux内核是6.9,导致安装VMware Workstation Pro 时,安装依赖无法成功,具体报错如下 ..................CC [M] /tmp/modconfig-a8Fcf5/vmnet-only/smac.oCC [M] /tmp/modconfig-a8Fcf5/vmnet-only/vnetEvent.oCC [M] …

【避雷实测】宠物空气净化器怎么选?希喂、小米、安德迈谁更值得入手!

不知道家里养猫的朋友们有没有注意到,每逢春夏季节,无论是户外还是室内,我们的鼻子常常感到痒痒的。户外的痒感往往是因为那些飘散的杨柳絮,而在室内,这种痒感很可能是由于猫主子的毛发飘浮在空气中所引起的。 为了能…

3D Gaussian Splatting代码中的Gaussian_Module和Cameras两个类的代码解读

Gaussian_model 讨论Gaussian_model这个类,是因为里面包含了三维高斯分布的基本信息,里面定义了各种参量的构建方式、用于优化学习的激活函数、学习率设置方法和高斯点优化过程中的增加与删除方式及对应优化器的处理方法。这个类定义在scene文件夹中的g…

UE5(c++)开发日志(3):将前面写的输出日志的方法进行封装

Public下新增一个c类: 选择无属性,因为不需要添加任何东西进去, 也不需要借助里面任何东西。 创建一个命名空间Debug,可以在命名空间内写一点静态方法 : namespace Debug{} static void Print(const FString& message, con…

41、web基础和http协议

web基础与http协议 一、web web:就是我们所说得页面,打开网页展示得页面。(全球广域网,万维网) world wide webwww 分布式图形信息系统 http:超文本传输协议 https:加密的超文本传输协议…