【知识星球】剪枝量化初完结,蒸馏学习又上线

剪枝、量化、蒸馏 1 剪枝 剪枝是一项古老的技术,从上个世纪传承至今,在学术界和工业界相关的研究工作都是很活跃的。剪枝根据不同的粒度有很多种,小到一个卷积参数,大到一个网络层。 剪枝到底对性能会有什么影响呢?在稀疏性分别为0%,50%,75%,87.5%时,模型中非零参数分别是原始模型的1,0.5,0.25,0.128倍(也就是模型的参数少了,是原来的12.8%,剪枝了不少,压缩了),即实现了1,2,4,8倍的... 阅读详情

欢迎大家来到《知识星球》专栏,这里是网络结构1000变小专题,模型压缩是当前工业界的核心技术,我们这一个月一直在更新相关的内容,刚刚更新完了一批剪枝和量化相关的文章,最近又开始更新蒸馏学习相关的内容。

作者&编辑 | 言有三

1 剪枝

剪枝是一项古老的技术,从上个世纪传承至今,在学术界和工业界相关的研究工作都是很活跃的。剪枝根据不同的粒度有很多种,小到一个卷积连接,大到一个网络层。

640?wx_fmt=png

下面是Google关于剪枝的一个典型研究。

有三AI知识星球-网络结构1000变

To prune, or not to prune

640?wx_fmt=png

本文探讨了具有同样大小的稀疏大模型和稠密小模型的性能对比,在图像和语音任务上表明稀疏大模型普遍有更好的性能。

作者/编辑 言有三

模型剪枝是一项重要的模型压缩技术,它给网络参数带来了稀疏性,在开源框架中可以通过和权重矩阵大小相等的掩膜来实现。

那么,剪枝到底对性能会有什么影响呢?首先看Inception V3模型的实验,在稀疏性分别为0%,50%,75%,87.5%时的结果,此时模型中非零参数分别是原始模型的1,0.5,0.25,0.128倍,即实现了1,2,4,8倍的压缩。

640?wx_fmt=png

可以看到,在稀疏性为50%,性能几乎不变。稀疏性为87.5%时,指标下降为2%。

640?wx_fmt=png

上表展示了MobileNet的实验结果,分别比较更窄的MobileNet和更加稀疏的MobileNet的结果,可以发现稀疏的MobileNet性能明显优于稠密的MobileNet。

75%的Sparse Model比0.5倍宽的Dense Model在top-

1指标上超出了4%,而且模型更小。90%的Sparse Model比0.25倍宽的Dense Model在top-1指标上超出了10%,模型大小相当。

从这里可以看出剪枝真的是一个非常有前途的课题,值得研究。

[1] Zhu M, Gupta S. To prune, or not to prune: exploring the efficacy of pruning for model compression[J]. arXiv preprint arXiv:1710.01878, 2017.

其他相关的内容如果感兴趣可以移步有三AI知识星球。

640?wx_fmt=jpeg
640?wx_fmt=jpeg

2 量化

量化是深度学习模型在各大硬件平台落地的重要基础技术,从全精度到8bit及以下的相关研究和实践都非常多。早期的研究关注在训练后模型的权重量化,而现在更多的研究已经集中在训练过程中同时完成量化,并且并不仅仅限制在模型的权重,而是从权重到激活,甚至是误差和梯度,并且开始关注混合精度量化,下面是一个典型的研究。

有三AI知识星球-网络结构1000变

HAQ

640?wx_fmt=png

HAQ(Hardware-Aware Automated Quantization with Mixed Precision)是一个自动化的混合精度量化框架,使用增强学习让每一层都学习到了适合该层的量化位宽。

作者/编辑 言有三

不同的网络层有不同的冗余性,因此对于精度的要求也不同,当前已经有许多的芯片开始支持混合精度。通常来说,浅层特征提取需要更高的精度,卷积层比全连接层需要更高的精度。如果手动的去搜索每一层的位宽肯定是不现实的,因此需要采用自动搜索策略。

另一方面,一般大家使用FLOPS,模型大小等指标来评估模型压缩的好坏,然后不同的平台表现出来的差异可能很大,因此本文使用了新的指标,即芯片的延迟和功耗。

搜索的学习过程是代理Agent接收到层配置和统计信息作为观察,然后输出动作行为即权值和激活的位宽。其中一些概念如下:

(1) 观测值-状态空间,一个10维变量,如下:

640?wx_fmt=png

(2) 动作空间,使用了连续函数来决定位宽,离散的位宽如下:

640?wx_fmt=png

(3) 反馈,利用硬件加速器来获取延迟和能量作为反馈信号,以指导Agent满足资源约束。

(4) 量化,直接使用线性量化方法,其中s是缩放因子,clamp是截断函数。

640?wx_fmt=png

c的选择是计算原始分布和量化后分布的KL散度,这也是很多框架中的做法。

640?wx_fmt=png

(5) 奖励函数,在所有层被量化过后,再进行1个epoch的微调,并将重训练后的验证精度作为奖励信号。

640?wx_fmt=png

(6)代理,使用了深度确定性策略梯度(DDPG)方法。

下面我们看实验结果,这是延迟约束量化下的结果。

640?wx_fmt=png

上图是MobileNet-V1/V2模型在边缘端和云端设备上的实验结果,与固定的8bit量化方法相比,分别取得了1.4倍到1.95倍的加速。

640?wx_fmt=png

上图分别是边缘端和云端设备上MobileNet-V1各个网络层的量化特点,可以发现在边缘端设备上depthwise卷积有更少的bits,pointwise有更多,在云端则是完全相反。这是因为云设备具有更大的内存带宽和更高的并行性,而depthwise就是内存受限的操作,pointwise则是计算受限的操作,MobileNet-V2上能观察到同样的特点。

另外还有能量约束和模型大小约束的结果,读者可以读原始论文获取细节。

[1] Wang K, Liu Z, Lin Y, et al. HAQ: Hardware-Aware Automated Quantization with Mixed Precision[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 8612-8620.

更多相关内容感兴趣请移步有三AI知识星球。

640?wx_fmt=jpeg

3 蒸馏学习

人类学习都需要一个经验更加丰富的老师引导,这一思想也可以更自然地迁移到深度学习模型的训练上,即知识蒸馏(Knowledge Distilling)技术,由此引发了很多的相关研究,大佬云集。下面是Hinton研究组最早期的经典方法。

有三AI知识星球-网络结构1000变

Knowledge Distilling

640?wx_fmt=png

知识蒸馏(Knowledge Distilling)是一项重要的模型压缩技术,它将Teacher模型的知识迁移到了Student模型上,有着很广泛的应用。

作者/编辑 言有三

知识蒸馏法包含了一个大模型,也被称为teacher模型,一个小模型,也被称为student模型,teacher模型和student模型的训练是同时进行的。

Hinton最早在文章“Distilling the knowledge in a neural network”中提出了这个概念,核心思想是一旦复杂网络模型训练完成,便可以用另一种训练方法从复杂模型中提取出来更小的模型。

“蒸馏”的难点在于如何缩减网络结构但保留有效信息,文中以softmax分类为例子,T就是一个常量参数:

640?wx_fmt=png

当T=1时,这就是softmax的定义,当T>1,称之为soft softmax,T越大,因为Zk产生的概率差异就会越小。

文中提出这个方法用于生成软标签,然后将软标签和硬标签同时用于新网络的学习。当训练好一个模型之后,模型为所有的误标签都分配了很小的概率。然而实际上对于不同的错误标签,其被分配的概率仍然可能存在数个量级的悬殊差距。这个差距,在softmax中直接就被忽略了,但这其实是一部分有用的信息。文章的做法是先利用softmax loss训练获得一个大模型,然后基于大模型的softmax输出结果获取每一类的概率,将这个概率,作为小模型训练时的标签,网络结构如上图。真实的损失函数包含了硬标签(hard label)和软标签(soft label)两部分。

MNIST和JAT数据集上的结果都验证了该方法的有消性,如下图:

640?wx_fmt=png
640?wx_fmt=png

[1] Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint arXiv:1503.02531, 2015.

更多蒸馏学习相关的内容请移步有三AI知识星球,火热更新中。

640?wx_fmt=jpeg

4 关于有三AI知识星球

有三AI知识星球是我们继公众号之后重点打造的原创知识学习社区,有需要的同学可以阅读下文了解生态。

大家可以预览一些内容如下,添加有三微信Longlongtogo加入可以优惠。

640?wx_fmt=png
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg
640?wx_fmt=jpeg

以上所有内容

加入有三AI知识星球即可获取

来日方长

点击加入

不见不散

更多精彩

每日更新

640?wx_fmt=jpeg

转载文章请后台联系

侵权必究

640?wx_fmt=png
模型压缩-模型蒸馏、模型剪枝、模型量化 过参数化主要是指在训阶段,在数学上需要进行大量的微分求解,去捕捉数据中的微小的变化信息,一旦完成迭代式的训练之后,网络模型在推理的时候不需要这么多参数,而剪枝算法正是基于过参数化的理论基础提出来的。剪枝算法核心思想就是减少网络模型中的参数量和计算量,同时尽量保证模型的性能不受影响。数字精度(如32位浮点数、16位浮点数或8位浮点数或8位整数),所能表示的范围不同。不同的数字精度会影响模型大小和推理时间,范围越大,精度越高,模型越大,推理时间越长。卷积神经网络特点:参数量大,计算量大,内存占用多,精度高。 阅读详情

相关推荐

灰度重心法实战:从原理到MATLAB代码实现激光条纹中心线提取

本文详细介绍了激光条纹中心线提取的核心方法——灰度重心法。通过物理类比阐释其原理,并提供从图像预处理到MATLAB代码实现的完整实战教程。文章重点解析了算法流程、关键参数调整及常见问题避坑指南,帮助读者快速掌握这一机器视觉与三维测量中的基础且高效的技术。

cake8的博客 461

AI学习_模型优化:剪枝、蒸馏、量化

模型优化:剪枝、蒸馏、量化

qq_41848886的博客 5457

几款常见存储系统的对比分析

如何对比选择存储系统?本文给你答案!本文将详细对比NetApp、Lsilon、Vast Data、DDN lustre和WekaFS的五个存储系统的简单性、速度、规模及标准。

hongcloudtech的博客 1679

【深度学习之模型优化】模型剪枝、模型量化、知识蒸馏概述

​ 模型部署优化这个方向其实比较宽泛。从模型完成训练,到最终将模型部署到实际硬件上,整个流程中会涉及到很多不同层面的工作,每一个环节对技术点的要求也不尽相同。但本质的工作无疑是通过减小模型大小,提高推理速度等,使得模型能够成功部署在各个硬件之中去并且实时有效的运作。 ​

向往有那么一天梦幻的步态识别落地,开花❀! 2万+

开源LocalAI本地人工智能安装教程

LocalAI是一款能在本地运行的人工智能应用,它兼容了OpenAI API规范,它可以在普通的电脑运行,不需要GPU,也不需要联网,音频转录

2301_78652552的博客 3614

避坑实录:用certificate-manager重置vCenter 6.7证书时遇到的三个致命陷阱

本文详细解析了使用certificate-manager重置vCenter 6.7证书时可能遇到的三大致命陷阱,包括进度卡在85%的服务启动僵局、脚本突然退出的静默杀手以及密码错误锁死的隐藏机制。通过实战验证的解决方案和高级恢复技巧,帮助系统管理员有效避免vCenter环境瘫痪,确保证书更新过程顺利进行。

g5h6i7j的博客 919

一文弄懂模型知识蒸馏、剪枝、压缩、量化

两个网络各选取几个关键的层(比如各5个,这些层两两之间是对应的),然后使用一种方法来衡量对应两层输出的相似度以计算损失,比如就将两个特征图的所有像素的均方差和作为该层的loss,这个loss就反映了学生网络的输出与老师网络输出的相似性,相似度越高说明小网络越能学到老师网络的精粹。基于层的剪枝,是可以直接去掉该层的,因此,属于真正意义上的剪枝,参数变少了,注意在对具有shortcut的结构进行剪枝时,需要在裁剪CBL后,调整相应的结构,以使网络结构正常,如去除shortcut等。那还表示个毛的原信息啊!

实践出真理,接毕设/课设项目开发指导 4722

Oracle Primavera P6实战手册:从入门到精通的企业项目管理秘籍

本文详细介绍了Oracle Primavera P6在企业项目管理中的实战应用,从环境配置到高级进度控制技巧,帮助用户从入门到精通。通过WBS设计、资源优化和情景模拟等核心功能,提升项目管理效率。特别适合需要处理复杂项目和多团队协作的企业用户。

weixin_29235923的博客 254

模型压缩:量化、剪枝和蒸馏

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达编者荐语近年来,BERT 系列模型成了应用最广的预训练语言模型,随着模型性能的提升,其参数规模不断增大,推理速度也急剧提升,导致原始模型必须部署在高端的GPU 显卡上,甚至部分模型需要多块显卡才能正常运行。转载自丨博文视点Broadview前言 在移动智能终端品类越发多样的时代,为了让预训练语言模型可以顺利部署在算力和存储空间...

小白学视觉 3900

MATLAB实战:手把手教你实现Gardner环路位同步(附完整代码)

本文通过MATLAB实战,详细讲解了Gardner环路位同步算法的原理与实现。内容涵盖插值滤波器、定时误差检测、环路滤波器与数控振荡器等核心模块,并提供完整代码和调试技巧,帮助读者掌握数字通信中关键的符号定时同步技术。

weixin_29048775的博客 174

U型槽微带贴片天线:从理论公式到带宽扩展实战

本文深入探讨了U型槽微带贴片天线的设计与带宽扩展实战。针对传统微带天线带宽窄的痛点,详细解析了通过引入U型槽形成双谐振点以拓宽带宽的原理,并提供了从MATLAB理论计算、ANSYS HFSS仿真建模到参数优化的一站式工程指南。文章还分享了多种带宽扩展组合技巧及仿真与实测避坑经验,助力射频工程师设计出高性能的宽带微带天线。

weixin_29168153的博客 447

【杂谈】为了让大家学好深度学习模型设计和优化,有三AI都做了什么

相比于学术理论研究,深度学习更是一门工程应用技术,其中最重要的一块内容就是模型,这也是有三重点关注的方向,那么迄今为止为了让大家更好地掌握深度学习模型设计和优化,我们都做了什么呢?文/编...

hacker_long的专栏 1269

微信支付接口「系统繁忙 SYSTEM_ERROR」/「文件不存在」报错分析与解决方案 接口开发实现SDK

微信支付的“平台证书模式”只有5年的有效期,过期后微信支付将不再签发新的平台证书,转而要求开发者使用“微信支付公钥”来处理敏感信息加密及回调签名验证。然而,由于以下几点原因,许多开发者在调用 获取平台证书。尽管微信支付在技术迭代上有其必要性,但报错设计过于不友好。诸如“系统繁忙”这样的提示很难直接关联到平台证书失效或公钥切换问题。这样的信息表达,开发者不仅看不懂,还需要花费大量时间分析排查,非常影响效率。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 780

【杂谈】当前模型剪枝有哪些可用的开源工具?

模型剪枝属于模型优化中的重要技术之一,经过了研究人员多年的研究,工业界也开始有一些实践,那么当前有哪些可用的模型剪枝工具呢?作者&编辑 | 言有三 1 TensorflowTe...

hacker_long的专栏 1161

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【小结】除了网络搜索(NAS),AutoML对深度学习模型优化还有哪些贡献?

文/编辑 | 言有三自从Google提出AutoML技术以来,已经过去了好几年了,如今在学术界和工业界都是热点。AutoML在网络结构的搜索上已经取得了非常多的突破,相关的文章,技术博客...

hacker_long的专栏 718

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

生成对抗网络gan原理_【杂谈】如何系统性地学习生成对抗网络GAN

文/编辑 | 言有三作为被誉为“下一代深度学习技术”,同时已经在工业界能够真正成熟稳定应用的GAN,有三AI公众号很早之前就开始关注相关内容,从理论到实践都做出了一些总结,并且在持续进行中,本次简单介绍一下相关内容供有需要的同学。1 了解GAN基本原理和应用有三最早写的一篇GAN相关的文章就是一篇综述,虽然因为后来比较忙,一直没有更新,但是在这个综述上中,已经介绍了GAN的来龙去脉,优化...

weixin_39789399的博客 114

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【智泊AI】终于把模型压缩四剑客:量化、剪枝、蒸馏、二值化说清楚了!

相较于非结构化剪枝的随机权重剪裁,虽然其理论压缩上限较低,但结构化剪枝带来的模型精度损失更可控,在工业级部署中通常可获得1.8-2.5倍的实际加速效果,特别是在移动端部署场景下,该技术可使ResNet-50等典型模型的推理延迟从230ms优化至92ms,满足边缘计算设备的实时性要求。该技术的核心机制在于利用教师网络训练过程中产生的知识信号(包括概率分布、特征图、注意力权重等)来引导学生模型的优化方向,使得轻量化后的模型在保持较低计算资源需求的前提下,能够有效继承教师模型的决策逻辑和表征能力。

javatiange的博客 2037

yolov5剪枝与知识蒸馏【附代码】

剪枝和知识蒸馏均属于模型轻量化设计,剪枝是将已有网络通过剪枝的手段得到轻量化网络,可分为和,该技术,而是通过计算各个权重或者通道的贡献度大小,剪去贡献度小的权重或通道,再,得到最终的模型,这种方法自然也是可以的,但在某些任务中,如果剪枝较多效果会很差,即便微调训练也恢复不了多少精度。,同时在我其他博客中还实现了知识蒸馏是在一个精度高的大模型和一个精度低的小模型之间建立损失函数,将大模型"压缩"到小模型中【并不是严格意义上的压缩】。

z240626191s的博客 1万+

模型优化(剪枝,蒸馏,量化)

全局剪枝(Global Pruning)是指在神经网络训练中,通过删除网络中不重要或冗余的权重、神经元、或者层,来减少网络的复杂度和提高计算效率的技术。与局部剪枝不同,局部剪枝只在单个神经元或单个层级上进行剪枝,而全局剪枝则是基于整个网络的全局视角来判断哪些部分可以被剪除。具体步骤通常包括:全局剪枝的优点在于能更有效地减少计算量和内存使用,从而提高推理速度和减少模型大小,特别适用于资源受限的环境(如嵌入式设备)。但是,全局剪枝也可能导致模型性能下降,特别是在剪枝过度时。 解释知识蒸馏是一

jenny88889999的博客 2125

模型压缩:剪枝、量化、蒸馏

在模型应用程序中,推理时间是至关重要的,模型压缩是缩短推理时间的有效办法,常见的模型压缩方法有剪枝、量化和知识蒸馏

金闪闪_Li的博客 3428

量化、剪枝、蒸馏,这些大模型黑话到底说了些啥?

扎克伯格说,Llama3-8B还是太大了,不适合放到手机中,有什么办法?量化、剪枝、蒸馏,如果你经常关注大语言模型,一定会看到这几个词,单看这几个字,我们很难理解它们都干了些什么,但是这几个词对于现阶段的大语言模型发展特别重要。这篇文章就带大家来认识认识它们,理解其中的原理。

2401_84495872的博客 996

大模型中的剪枝、蒸馏是什么意思?

剪枝是一种模型压缩技术,通过移除模型中不重要的权重或神经元来减少模型的大小和计算复杂度。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 2000

量化、剪枝、蒸馏、二值化:模型压缩技术的详细解析

随着深度学习的飞速发展,模型的规模和复杂度也在不断攀升。以 GPT-175B 为例,它拥有 1750 亿参数,至少需要 320GB 的半精度(FP16)格式存储空间,推理时至少需要五个 A100 GPU,每个 GPU 配备 80GB 内存。如此庞大的模型虽然性能强大,但对硬件资源的要求极高,极大地限制了其在实际场景中的应用。例如,在嵌入式设备、移动设备等资源受限的环境中,这些设备的算力和内存有限,无法直接运行如此庞大的模型。

2401_85375151的博客 1478

模型压缩-剪枝/量化/蒸馏/AutoML

深度学习模型计算复杂度高,参数存在冗余。(1)线性或非线性量化。 (2)结构或非结构剪枝。 (3)网络结构搜索。 (4)权重矩阵的低秩分解。(蒸馏)优化精度、性能、存储等,使得可以在一些场景和设备上进行相应模型的部署。(1)剪枝位置的判定一般根据权重。权重越小,证明该神经元的作用越小。(2)剪枝的方式:删去网络层上的权重的向量/整个神经元/单个像素(数据)。由于矩阵操作的并行化,减去单个像素或者向量并不能减少计算量。即有的硬件并不支持稀疏矩阵的运输,所以一般剪枝操作是直接减去整个神经元。(3)判别剪神经元的

年少的勇气已经用完,剩下的就是三思而后行 2077
上一篇: 【摄像头与成像】长文详解RAW图的来龙去脉
下一篇: 【图像分类】 标签噪声对分类性能会有什么样的影响?
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3633粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值