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

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.mzph.cn/news/864418.shtml

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

相关文章

ts语法---数据类型,interface和type的用法

ts的数据类型 ts的数据类型自上而下的分级有 第一层 any-任意类型和unknow类型, 第二层 原型链的Object类型, 第三层 js类的类型 第四层 标准的typescript类型 第五层 对应的实例数据类型 第六层 never类型,never表示不合理&#xff0c…

整除分块的题目

链接 思路: 求1到n中的因数个数和等价于求,设x为因子,就是求x在1到n里出现了几次,求1到n里是x的倍数的数有几个,即n/x。需要用整除分块,n/i的值是分块分部的,右端点是n/(n/i)。 代…

Application Studio 学习笔记(3)

一、工具栏按钮 1、panel控件添加工具栏按钮 展开panel控件的Advanced属性并点击Action Data,进入Action Data编辑界面 新增Action Data数据,Sequence设定工具按钮的显示顺序 默认工具按钮会显示在弹出工具栏中 勾选Add to Primary ToolBar后&#xff…

deepin基于apt-mirror同步软件源及构建本地内网源

1.安装apt-mirror sudo apt install -y apt-mirror2.配置apt-mirror(/etc/apt/mirror.list) sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.deepin.bak #备份配置文件 sudo gedit /etc/apt/mirror.list修改如下: deb [trustedyes] https://mirrors.bfsu.ed…

Django学习第一天

Django安装: pip install Django -i https://mirrors.aliyun.com/pypi/simple/ 在需要创建文件的文件目录下写这个命令 django-admin startproject mysite 注意:C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Scripts已加入环境变…

JAVA:Word2Vec的使用

1、简介 Word2Vec是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。 Wo…

windows USB设备驱动开发-双角色驱动

在USB的通讯协议中,规定发起连接的一方为主机(Host),接受连接的一方为设备,这可以用U盘插入电脑举个例子,当U盘插入电脑后,电脑这边主动发起查询和枚举,U盘被动响应查询和数据存取。 USB 双角色驱动程序堆…

使用Qt designer辅助开发pyqt应用,如何将自定义组件添加到designer中

背景: 我想要实现列表项的拖拽功能,于是自定义类 MyListWidget 通过Qt designer生成的代码,使用的是原始类型 QListWidget 我需要手动修改 Ui_xxx.py文件: 1.导入MyListWidget 2.将QListWidget替换为MyListWidget #Ui_xxx.pyf…

Generating Diverse Structure for Image Inpainting With Hierarchical VQ-VAE

Jialun Peng1 Dong Liu1* Songcen Xu2 Houqiang Li1 1 University of Science and Technology of China 2 Noahs Ark Lab, Huawei Technologies Co., Ltd.pjlmail.ustc.edu.cn, {dongeliu, lihq}ustc.edu.cn, xusongcenhuawei.com 原文提供代码链接: GitHub - UST…

3款免费宝藏电脑软件,每一个都非常实用

LICEcap LICEcap是一款简洁易用的动画屏幕录制软件,主要功能是将屏幕录像的内容直接保存为高质量(每帧颜色数量可超过256)GIF动态图片格式。该软件安装包轻量级,不到500KB,运行后会以窗口的方式显示在桌面上&#xff…

分布式存储和分布式计算两个哪个更适合作为工作深入方向发展?

有朋友问,分布式存储比如hdfs,ceph,minio,tidb,glusterfs;分布式计算比如Hadoop,spark,flink;它们在实际工作中咋样?具体开发工作是啥?哪个更有发…

财务RPA与数字化转型——财务RPA如何促进企业的数字化转型

在数字化时代,企业面临着推动创新、提高效率的巨大挑战。RPA财务机器人作为智慧财务不可或缺的新动能,不仅能够优化财务流程,还能够在整个企业中引领数字化变革。本文金智维将深入探讨财务RPA如何成为企业数字化转型的战略利器,为…

【哈哈大一上学的全忘了,重开!!】STM32从零入门物联网开发

本笔记资料来源 :STM32物联网入门30步=单片机物联网入门教程 WIFI连接阿里云物联网CubeMXHAL库蓝牙ESP8266杜洋主讲_哔哩哔哩_bilibili IOT:Internet of things 学习目标: 1.掌握洋桃IoT开发板的各功能以及驱动与基本应用 2.掌…

docker 部署jitsi meet

1. 部署环境: 1.1 vm 虚拟机 安装的 centos 7 1.2 centos7安装docker 和 docker-compose 2.docker命令 官网部署文档地址:(文档地址有可能失效) Self-Hosting Guide - Docker | Jitsi Meet 2.1Download and extract the late…

1-3.文本数据建模流程范例

文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的…

基于隐马尔可夫模型的股票预测【HMM】

基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 三、基于隐马尔可夫模型的股票预测【HMM】 文章目录 基于机器学习方法的股票预测系列文章目录一、HMM模型简介(1)前向后…

全球首款搭载Google Gemini和GPT-4o的智能眼镜发布

智能眼镜仍然是一个尚未完全成熟的未来概念,但生成式人工智能的到来显著提升了这些设备的能力。Meta 的 Ray-Ban 智能眼镜被许多人视为当今最好的选择之一,而现在 Solos AirGo Vision 正在为其带来竞争,这款眼镜还集成了 Google Gemini 支持。…

生命在于学习——Python人工智能原理(3.1.1)

Python部分结束了,开始概率论部分 一、概率基本知识 1.1 事件与概率 1.1.1 事件的运算与关系 (一)基本概念 定义1 随机试验 如果一个试验满足如下条件: 在试验前不能断定其将发生什么结果,但可明确指出或说明试验…

浅聊JavaScript中的栈(stack)

前言 这篇文章结合leetcode题目讲解一下栈这种结构 第20题:20. 有效的括号 - 力扣(LeetCode) 第LCR-147题LCR 147. 最小栈 - 力扣(LeetCode) 栈(stack) 在讲解题目之前,我们先来…

HTTPS是什么?原理是什么?用公钥加密为什么不能用公钥解密?

HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它通过在HTTP协议之上加入SSL/TLS协议来实现数据加密传输,确保数据在客户端和服务器之间的传输过程中不会被窃取或篡改。 HTTPS 的工作原理 客户端发起HTTPS请求&…