一文详解视觉Transformer模型压缩和加速策略(量化/低秩近似/蒸馏/剪枝)

devtools/2024/9/20 7:10:21/ 标签: transformer, 剪枝, 深度学习

视觉Transformer(ViT)在计算机视觉领域标志性地实现了一次革命,超越了各种任务的最先进模型。然而,它们的实际应用受到高计算和内存需求的限制。本研究通过评估四种主要的模型压缩技术:量化、低秩近似、知识蒸馏和剪枝,来解决这一挑战。系统地分析和比较了这些技术及其组合在优化ViT以适应资源受限环境方面的效果。全面实验评估表明,这些方法在模型准确性和计算效率之间实现了平衡的折中,为在边缘计算设备上的更广泛应用铺平了道路。

论文如下:需要原件可评论区留言

介绍

Transformer,由Vaswani等人引入,以其强大的数据建模能力、可伸缩性以及出色的捕捉长距离依赖性的能力,彻底改变了机器学习。起源于自然语言处理(NLP)领域,取得了机器翻译和文本摘要等方面的成功,Transformer现在将其实用性扩展到计算机视觉任务,如图像分类和目标检测。

最近,它们的能力已经在多模态情感分析领域得到了利用,其中它们整合和解释多样的数据流——文字、视觉和声音——以评估情感反应。Transformer的应用还扩展到了医疗保健领域,促进了疾病检测、医学影像分析以及电子健康记录的处理等领域的进步。这些技术在开发预测模型、提高诊断准确性和个性化治疗策略方面至关重要,展示了Transformer对影响患者护理的巨大潜力。

与之前NLP领域的研究不同,该领域的研究人员在长序列中处理softmax-attention的二次复杂度,正如Child等人所指出的,而Vision Transformers(ViTs)处理较短的、固定长度的输入序列。因此,在ViTs中,softmax-attention在总浮点运算(FLOPs)中占比较小,提出了一套独特的优化挑战,并强调了对专门的模型压缩策略的需求。

Vision Transformer(ViT),这是一种源自NLP方法学的创新架构,已经证明了将图像 patch转换为由Transformer块处理的 token 序列可以实现,有时甚至超越传统的CNN架构的准确性。这一突破已经催生了图像处理领域的一次范式转变。

然而,ViT的高性能伴随着数量庞大的参数集,数量达到数亿个,在推理过程中会产生相当大的内存和计算开销。因此,对于ViTs的模型压缩技术的开发和改进已经变得至关重要,尤其是在工业应用中,效率和资源管理至关重要。

深度学习模型的研究相比,Vision Transformers的模型压缩领域仍然相对未被开发。本文系统地探讨了ViTs的模型压缩策略,重点关注量化、低秩近似、知识蒸馏和剪枝。通过深入的比较分析,评估了这些技术对模型效率的个体和集体影响。研究还探讨了结合不同方法的潜在协同效应,旨在提高性能。广泛的实验结果证实,本文提出的方法有助于在维持准确性和提高计算效率之间取得良好的平衡,这对于实际部署至关重要。

相关工作

量化

量化已经成为促进神经网络高效推理的基石技术。这个过程涉及将网络转换为低比特表示,从而减少计算需求和内存占用,并最小化对模型性能的影响。这项技术的关键方面是确定权重的适当裁剪范围。Krishnamoorthi建议通过评估层的卷积滤波器内的所有权重来确定这个范围,而Shen等人则采用了一种分组量化方法来处理Transformer。为了减轻量化可能引入的精度损失,提出了量化感知训练(QAT)。QAT包括使用量化模型的浮点表示进行标准的前向和反向传递,然后在每次梯度更新后重新量化模型参数,从而在保留精度的同时利用量化的好处。

低秩近似

Vision Transformer(ViT)利用了自注意力机制,这本质上涉及到二次计算复杂度,这对可扩展性构成了重大挑战。Chen等人指出ViT内部的注意力矩阵本质上具有低秩特性,为复杂度降低提供了机会。在这些注意力矩阵上利用低秩矩阵逼近出现为减少计算成本的有前途的方法。

已经为此目的开发了各种方法,包括基于Nyström的方法、Performer和Linformer,每种方法都具有独特的实现方式,并适用于在微调和验证阶段与预训练的ViT模型进行集成。此外,如Chen等人所建议的,将低秩近似与稀疏注意力机制结合起来,已被证明能产生更精细的逼近,增强了ViT的效率和有效性。

知识蒸馏

知识蒸馏是一种精细的模型压缩技术,其中通过利用教师模型的软标签,训练一个紧凑的“学生”模型来模拟一个更复杂的“教师”模型。这些软标签因其丰富的信息内容而被认为在学生模型中的表现通常优于使用硬标签进行训练的情况。软标签在增强学生学习方面的有效性已被Yuan等人和Wei等人证实。

在这个领域的一个新进展是由Touvron等人引入的Vision Transformers中的蒸馏 token 。这个 token 类似于类 token ,但专门用于捕捉教师的预测,通过自注意机制参与优化蒸馏过程。这些定制的方法已经证明在传统的蒸馏技术上取得了相当大的收益,突显了针对Transformer的优化策略的潜力。

剪枝

剪枝是一种被广泛认可的方法,通过减少Vision Transformers的维度复杂性来简化它们的架构。这项技术的核心是为每个模型维度分配一个重要性分数,允许基于这些分数对被认为不太关键的维度进行选择性消除。这种有针对性的减少旨在在保持模型准确性的同时保持稳健的剪枝比例。杨等人提出的维度重分配策略可能被整合到剪枝过程中,进一步提高模型的性能。

有趣的是,研究表明,经过剪枝的模型有时可能会在性能上超过原始模型,这表明剪枝不仅可以简化模型,还可以增强模型的功能。

方法论

量化

基本概念

量化的总体目标是将模型参数(θ)和中间激活图的精度降低到较低的精度格式,例如8位整数,同时最小化对模型泛化性能的影响。这个过程的初始步骤涉及定义一个量化函数,能够将权重和激活图映射到一组离散值。用于此目的的常用函数如下所示:

图片

其中,代表量化映射函数,r表示实值输入(例如,权重、激活),是一个缩放因子,是一个整数零点。这种机制被称为均匀量化,确保了结果值的等距间隔。值得注意的是,还存在替代的非均匀量化策略。此外,原始实值r可以通过一种称为反量化的过程从其量化对应项近似得出:

图片

在量化中,由于量化本身固有的舍入误差,近似值r ̃可能与r不同。量化的一个关键方面是确定最佳的缩放因子,它有效地将实值r分成离散的段落:

图片

其中,表示裁剪范围,b表示量化的比特位宽度。裁剪范围的选择,即称为校准的过程,至关重要。一个直接的方法是使用输入的最小值和最大值作为裁剪范围,即和,对应着一个非对称量化方案,其中。另外,也可以采用对称量化方法,其中。在这种情况下,方程1中的量化函数可以通过设置来简化。

后训练量化

后训练量化(PTQ)通过直接调整权重来简化量化过程,而无需进一步进行微调。然而,这种效率可能会导致显著的精度下降,因为量化本身固有的精度损失。

Liu等人观察到,在Transformer架构中将量化应用于LayerNorm和Softmax层时,存在显著的精度下降。Lin等人将这些差异归因于LayerNorm层和注意力映射值中激活值的极化分布。具体来说,LayerNorm层输入中存在显著的通道间变异性(如下图1左侧所示),当采用逐层量化方法时,会产生相当大的量化误差。此外,注意力图中存在大量小值分布,只有稀疏的异常值接近1,这进一步加剧了在均匀量化策略下性能下降的问题。

图片

为了解决这些挑战,Lin等人提出了一种新颖的量化方法,利用LayerNorm的二次幂尺度和Softmax层的对数整数Softmax,旨在减轻传统量化方法带来的不利影响。

量化感知训练

直接将量化应用于完全训练好的模型可能会无意中扰动模型参数,导致显著的性能下降。一种有效的策略是使用量化参数重新训练模型,从而引导模型走向更有利的损失。量化感知训练(QAT)是一个突出的技术,可用于此目的。在QAT中,标准的前向和后向过程在浮点表示的模型上执行,但在每次梯度更新后重新量化参数,确保模型适应量化引起的变化。

学习步长量化(LSQ)是该领域的一个进步,它改进了量化器的配置过程,并通过优化量化间隔在量化性能方面设定了新的基准。类似地,DIFFQ引入了一种可微分的模型压缩技术,避免了需要像直通估计器(STE)这样的梯度近似方法。通过使用伪量化噪声,DIFFQ在训练期间实现了量化过程的近似,这是完全可微的,从而更容易地调整权重和量化比特深度。

知识蒸馏

知识蒸馏技术,如软蒸馏和硬蒸馏,促进了复杂的“教师”模型向简单的“学生”模型的知识传输。软蒸馏侧重于最小化教师模型和学生模型的软化对数输出之间的Kullback-Leibler(KL)散度。这正式由蒸馏目标所捕捉:

图片

其中,表示交叉熵损失,ψ代表softmax函数,和分别是教师模型和学生模型的logits,τ是增强分布软化的温度参数,λ平衡了KL散度和交叉熵损失的贡献。相反,硬蒸馏使用教师的预测作为确定性标签来训练学生,通过直接将学生的预测与这些标签进行比较来简化该过程。

图片

其中,表示教师模型的硬标签决策。DeiT 方法引入了一种针对Transformer的新方法,将一个“蒸馏 token ”(distillation token)引入了架构中,类似于类 token ,但专注于模仿教师的预测。这种机制允许通过自注意力层直接与蒸馏 token 和其他组件进行交互,展示了在蒸馏中的优越性能。我们的实验设置涉及在CIFAR数据集上应用DeiT框架进行知识蒸馏,同时考虑计算资源约束。

剪枝

Vision Transformers中的剪枝主要集中于通过减少模型的复杂性来减少参数的数量,具体来说是通过调整隐藏层之间的权重核的维度。这个目标可以形式化为:

图片

其中,a、b表示的原始维度,、表示剪枝后的减少维度。目标是确保由此减少引起的增量损失保持在预定义的阈值δ以下,以保持模型的完整性用于后续任务。确定要剪枝哪些维度涉及使用重要性分数,这是在预训练或微调期间学习到的概念。Zhu等人和Yang等人从每个权重的梯度幅度中推导出这些分数,并建议在剪枝后集成一个“软门控”层,该层在推理过程中硬化以将不太关键的维度清零:

图片

另外,Yu等人采用KL散度来计算重要性分数,重点关注在数据集Ω上具有特定模块和没有特定模块时模型性能之间的差异。这种方法既可以进行层内剪枝,也可以进行跨模块剪枝

图片

其中,对应于完整模型的损失,对应于去除剪枝权重后的损失。近期的创新引入了更加微妙的重要性评分系统。Tang等人设计了一种评分,反映了每个图像块对最终误差的理论影响,提高了图像块精简的效率。Rao等人结合了局部和全局特征,对 token 的重要性进行了更全面的评估。同样,Yi等人将各种评分综合到一个统一的损失函数中,进一步完善了剪枝过程。

低秩近似

在Vision Transformers(ViTs)中,如下图2所示,每个自注意力块最初使用权重、和对输入序列进行投影,以获得特征表示。自注意力机制计算为,引入了计算和空间复杂度为O(n^2)的问题,其中n是序列长度。

图片

鉴于自注意力的低秩性质的正式证明,利用这一属性进行低秩近似成为提高计算效率的战略选择。这种近似旨在保持准确性,同时显著降低时间和空间复杂度,近似为O(n),即使是在与预先存在的或新训练的模型集成时。

值得注意的是,低秩近似并不会固有地减少模型大小,因为原始权重、和被保留。然而,它确实在计算时间和内存使用方面提供了显著的减少,特别是在对预训练模型进行微调或验证阶段时。

这是因为近似计算是在接收到输入后进行的。存在各种低秩近似的方法,包括基于Nyström的方法,如Nyströmformer和SOFT,它们通过Nyström方法线性化了自注意力。替代的线性化技术,如Linformer 和Performer,以及结合低秩和稀疏注意力机制的策略,进一步提高了近似的准确性。

我们的实验重点是基于Nyströmformer的ViT,将softmax注意力矩阵计算调整为在所有自注意力块中使用Nyström方法。这允许使用预训练的原生 ViT权重,从而便于在性能方面进行直接比较。Nyströmformer技术利用地标点进行高效的近似,避免了完全的计算的需求。评估了这种方法的有效性,其中landmark数量(m)设置为24、32和64,并评估其对模型性能的影响。

实验

本节详细比较了应用于Vision Transformers的各种模型压缩技术,包括量化、知识蒸馏、剪枝和低秩近似。此外,还调查了结合这些方法以确定性能指标改善的协同潜力。

实验设置

实验框架建立在Tesla V100-SXM2 16GB GPU上,PyTorch作为主要的代码实现平台。我们的数据集使用范围限于CIFAR-10和CIFAR-100,这是由于计算资源的限制。感兴趣的主要指标包括模型大小和推理速度,承认了准确性和这些效率参数之间的固有权衡。因此,最佳的压缩技术应该在准确性上对模型几乎没有影响,同时在模型大小上有显著的降低,并且在推理速度上有提升。将跨CIFAR-10和CIFAR-100数据集的比较分析结果系统地呈现在下表1和表2中。

图片

图片

不同模型压缩方法的比较

在评估模型大小对模型压缩的影响时,我们发现量化和剪枝策略能够在几乎不损失准确性的情况下显著减小模型大小。值得注意的是,量化技术,特别是动态量化,表现出了较高的有效性,将模型大小减小至25倍。

相反,权重剪枝,特别是采用简单的重要性评分,不能实现模型大小和准确性之间的最佳平衡。剪枝率为0.1(表示剪枝了10%的参数)导致与未剪枝的ViT相比,CIFAR-10和CIFAR-100数据集的显著准确性降低。进一步的调查显示,如下图3所示,大多数参数被认为是非常重要的(评分高于0.99),这表明了对于权重剪枝而言,简单形式的重要性评分存在固有的局限性。改进可能来自于整合更复杂的重要性评分或采用像减少输入图像块或精简之类的策略,而不是直接的权重剪枝

图片

在推理速度方面,不同模型压缩策略表现出一系列的改进,以知识蒸馏为中心的方法尤为突出,因其在效率方面的收益。值得注意的是,尽管DeiT基础模型并没有经历显著的尺寸缩减,但其推理速度几乎是标准Vision Transformer(ViT)的两倍,同时几乎保持了准确性。在CIFAR-10数据集上观察到了一个有趣的案例,即DeiT微型配置实现了95.43%的准确率,这个数字与原生 ViT非常接近,但其速度增加了四倍,仅压缩到了原始模型大小的6%。

此外,将Nyströmformer技术应用于ViT展示了准确性和速度之间微妙的平衡,特别受到landmark数量(m)的选择的影响。选择较大的m值会提高近似精度,但会以处理速度为代价。此外,动态量化在CPU平台上对推理速度的改进范围为10-20%,强调了模型压缩在实际应用中的好处,不仅仅是尺寸的缩减。

混合方法的探索

对单个模型压缩技术的考察表明,一种混合方法,结合量化和知识蒸馏的优势,值得进一步研究。特别是当可以接受轻微的准确性降低时,这种组合策略似乎有望优化模型的紧凑性和处理效率。正如表1和表2所示,采用复合方法——将DeiT基础模型与动态量化相结合——显著提高了推理速度,达到了两倍以上的增长,同时将模型的大小减小到原始尺寸的四分之一。在准确性上有可控的权衡,突显了混合方法在速度、大小和性能之间取得平衡的潜力。

结论

本研究致力于对模型压缩技术进行实证调查,旨在增强Vision Transformers(ViTs)的效率和部署可行性。我们对四种主要的压缩方法——量化、低秩近似、知识蒸馏和剪枝——进行了细致的考察,同时回顾了该领域的前沿研究。

通过对CIFAR-10和CIFAR-100数据集进行的比较分析,我们的发现强调了后训练量化和知识蒸馏作为突出策略的有效性。这些方法不仅显著减小了模型大小,还加快了推理时间,同时保持了可接受水平的性能降低。对结合量化和知识蒸馏的协同潜力进行进一步探索揭示了优化的引人注目途径。特别是在CIFAR-10数据集中,这种混合方法显著加快了推理速度——超过基准速度两倍以上——同时将模型大小降低到原始占用空间的四分之一。

从这次全面调查中获得的见解倡导了对模型压缩采取综合多方面的方法。整合不同的压缩方法对于提高Vision Transformers的操作效率具有重大的潜力,为该领域未来研究指明了坚实的方向。此外,本文还可以在交通工程、机器学习、生物工程等领域进一步研究。

参考文献

[1] Comprehensive Survey of Model Compression and Speed up for Vision Transformers


http://www.ppmy.cn/devtools/16678.html

相关文章

OSPF的协议特性

路由汇总的概念 l 路由汇总( Route Aggregation ),又称路由聚合(Route Summarization),指的是把一组明细路由汇聚成一条汇总路由条目的操作 l 路由汇总能够减少路由条目数量、减小路由表规模&#xff0…

什么是OCR转换?

OCR转换是指将图片或扫描文档中的文字内容转换成电子文本的过程。OCR代表光学字符识别(Optical Character Recognition),是一种通过算法和模型来识别图像或文档中的文字,并将其转换成可编辑、可搜索的文本格式。OCR转换通常包括以…

mysql服务器无法启动问题处理

一台hlr服务器用网关软件登录失败,查找原因,发现网关软件连接服务器的tcp的10002端口失败,超时无应答,导致连接失败。 用户反馈核心网hlr,smc无法登录,putty登录服务器,发现hlr10002端口没有打…

http忽略ssl认证

我们在发请求时,会遇到需要ssl证书验证的报错,针对该错误以及所使用的不同的创建连接的方式,进行ssl证书忽略 忽略SSL证书的流程 简介:需要告诉client使用一个不同的TrustManager。TrustManager是一个检查给定的证书是否有效的类…

【Matlab函数分析】对二维或三维散点数据插值函数scatteredInterpolant

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

使用git将本地项目上传到github

大致的流程是:创建本地仓库,把代码传到本地仓库,把本地仓库内容传到远程仓库。还不太完整,逐渐摸索使用吧 1、初始化仓库 git init在本地项目的路径中初始化一个仓库。 2、提交到本地 选择需要上传的文件 git add .提交到本地…

CMake+qt+Visual Studio

#使用qt Creator 创建Cmake 项目,使用Cmake Gui 生成sln 工程,使用Visual Studio 开发 ##使用qt Creator 创建CMake项目 和创建pro工程的步骤一致,只是在选择构建系统的步骤上选择CMake,接下来步骤完全相同 工程新建完成之后,构建cmake 项…

第11章 Android特色开发——基于位置的服务

第11章 Android特色开发——基于位置的服务 本章中,将要学习一些全新的Android技术,这些技术有别于传统的PC或Web领域的应用技术,是只有在移动设备上才能实现的。 基于位置的服务(Location Based Service)。由于移动…

机器学习(三)之监督学习2

前言: 本专栏一直在更新机器学习的内容,欢迎点赞收藏哦! 笔者水平有限,文中掺杂着自己的理解和感悟,如果有错误之处还请指出,可以在评论区一起探讨! 1.支持向量机(Support Vector Ma…

STM32中断系统详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 中断基本概念 2. STM32中断 3. NVIC的基本组件 3.1 NVIC的基本组件 3.2 NVIC的优先级 4. EXTI外部中断 4.1 基本概念 4.2 基本结构 5. AFIO 1. 中断基本概念 中断(Interrupt&…

数据结构--顺序表

顺序表:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 1,自己实现一个基础的顺序表: // 新增元素,默认在数组最后新增 void add(int data); // 在 po…

STCAD转换 晶联讯1353(5VLCD)显示

/***晶联讯1353(5VLCD)显示调节电位器参数变化***/ /******2018 6 30 08:50*L252 CODE 1339 ******/ /***变频器 PWM2017 5 6板测试AD晶联讯1353*****/ #include <reg52.h> // #define uint unsigned int …

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术&#xff0c;促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势&#xff0c;为高性能计算提…

【漏洞复现】SpringBlade dict-biz SQL注入漏洞

0x01 产品简介 SpringBlade 是一个由商业级项目升级优化而来的微服务架构 采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。 0x02 漏洞概述 SpringBlade d…

在 Ubuntu 和 CentOS 上重新配置 Fail2Ban

遇到的问题 最近,我在管理服务器时遇到了一个问题。我的服务器上运行着 Fail2Ban,用于保护服务器免受暴力登录攻击。然而,由于某些原因,我需要卸载并重新配置 Fail2Ban。这个过程涉及到停止服务、卸载软件包、清理配置文件和数据、重新安装以及配置新的规则。 在这篇博客中,我…

Golang实现一个批量自动化执行树莓派指令的软件(5)模块整合

简介 基于上篇 Golang实现一个批量自动化执行树莓派指令的软件(4)上传 已经实现了ssh的基本操作模块了&#xff0c;这里我们将这些模块进行整合。 环境描述 运行环境: Windows&#xff0c; 基于Golang&#xff0c; 暂时没有使用什么不可跨平台接口&#xff0c; 理论上支持Linux…

Java集合框架-Collection-List-vector(遗留类)

目录 一、vector层次结构图二、概述三、底层数据结构四、常用方法五、和ArrayList的对比 一、vector层次结构图 二、概述 Vector类是单列集合List接口的一个实现类。与ArrayList类似&#xff0c;Vector也实现了一个可以动态修改的数组&#xff0c;两者最本质的区别在于——Vec…

【Elasticsearch<一>✈️✈️】简单安装使用以及各种踩坑

目录 &#x1f378;前言 &#x1f37b;一、软件安装&#xff08;Windows版&#xff09; 1.1、Elasticsearch 下载 2.1 安装浏览器插件 3.1、安装可视化工具 Kibana 4.1、集成 IK 分词器 &#x1f37a;二、安装问题 &#x1f379;三、测试 IK 分词器 ​&#x1f377; 四、章…

Flutter 有什么优异特性和革命性创新之处?

Flutter 有什么优异特性和革命性创新之处? 什么是 Flutter&#xff1f; Flutter mobile app SDK是一种新的方式来构建漂亮的原生移动应用程序&#xff0c;摆脱过去常见的“千篇一律”的应用程序。用过Flutter的人都对它赞赏有加&#xff1b; 相比较其他新型系统&#xff0c…

MySQL面试题入门:四大范式、SQL生命周期、SQL六大语言、索引、最左匹配原则....

1、数据库四大范式&#xff1f; 第一范式&#xff1a;属性不可分割&#xff0c;即每个属性都是不可分割的原子项。(实体的属性即表中的列) 第二范式&#xff1a;满足第一范式&#xff1b;且不存在部分依赖&#xff0c;即非主属性必须完全依赖于主属性。(主属性即主键&#xf…