MLops博客

深学习模型优化法

6分钟
2024年5月14日

TL;DR

AG凯时手机版深学习模型显示优异性能,但需要高计算资源

优化技术如裁剪、量化和知识蒸馏对提高计算效率至关重要

    • 普林宁清除次要神经元,包括识别、消除和可选微调,从而减少模型大小
    • 量化用低数值精度模型权重减少内存用量和计算时间
    • 知识提取从复杂“师资”模型转换为简单化的“学生”模型,保持性能减少计算需求

选择右优化取决于模型类型、部署环境以及性能目标

潜在缺陷包括性能损耗和额外计算费用

深学习模型继续支配机器学习全景无论是原型完全连通神经网络 复发或卷积架构 或变压器百科特 2020年代初期

AG凯时手机版但这些能力牺牲庞大计算资源深学习模型培训操作耗时费钱,对环境有重大影响。

模型优化技术如裁剪、量化和知识蒸馏对精练和简化深神经网络至关重要,使其提高计算效率而不损害深度学习应用和能力

文章中,我将检视这些基本优化技术 并展示时间和方式

模型优化

深学习模型神经网络,由数以百计的互连层组成,每个层都包含数以千计神经元神经元间联系加权,每个权值表示神经元间影响强度

基于简单数学运算架构证明对模式识别和决策有强大的作用深入学习模型可高效计算,特别是特殊硬件,如GPUs和TPU等,但由于其纯尺寸,深学习模型在计算上密集并需要资源

随着深学习模型层和神经元数的增加,对方法的需求也会增加,从高端服务器到有限资源边缘设备等平台对方法执行的精简

模型优化技术旨在减少计算负载和内存使用,同时保留(或甚至提高)模型任务性能

优化深学习

阅读博客上探讨深学习优化方面的其他文章

  • 模型训练时如何优化GPU使用AG凯时手机版GPU资源昂贵,最优先最充分地使用GPUGPU使用法、内存使用法和电耗法等度量法深入了解资源利用法和改善潜力
  • 深学习优化算法深学习模型意味着解决优化问题:模型逐步调整以最小化目标函数深度学习使用范围优化器,每种方法都解决基本梯度下降法的具体缺陷

Prruning:通过减少冗余简化模型

Prinning是一种优化技术,通过减少冗余而不显著影响任务性能简化神经网络

神经网络结构前后裁剪
神经网络结构前后裁剪左侧是原型稠密网络,所有连接和神经元都完好无损右侧网络通过裁剪简化:次要连接(突触)和神经元已被清除 源码

Prruning基础观察说,并非所有神经元都对神经网络输出产生同等作用。识别并清除次要神经元可大幅降低模型大小和复杂性,而不会对其预测力产生消极影响。

裁剪过程分三大阶段:识别、消除和微调

  1. 识别分析审查神经网络定位权值和神经元对模型性能影响最小

    神经元关系网用权值对称并捕捉连接强度敏感度分析法显示权重改变如何影响模型输出等量度测量神经元和重量的重要性, 使我们能够识别可去除的重量和神经元, 而对网络功能作用微乎其微
  2. 消除:基于识别阶段,从模型中清除特定权或神经元策略系统化地降低网络复杂性,侧重于除基本计算路径外全部维护
  3. 微调:选取常益阶段后有目标清除神经元和权重需要再培训模型稀疏架构 恢复或提高任务性能减值模型满足性能标准时,可绕过此步裁剪过程
Prruning进程,从初始神经网络开始
图表概述运行过程,从初始神经网络开始第一,评价神经元和权值的重要性最小神经元和权值消除后继可选微调阶段以保持或提高性能循环裁剪和微调网络可重复多次,直到无法进一步改进 源码

模型操纵方法

识别消除阶段有两个主要策略:

  • 结构化裁剪:清除整组重物,如通道或层块,形成精度更高的架构,通过CPUs和GPUs等传统硬件提高处理效率从模型架构中删除全部子组件可显著降低任务性能,因为它可能去除网络内复杂学习模式
  • 非结构化裁剪:目标个人低效果权重跨神经网络, 导致连接模式稀疏化, 即网络多零值连接sparsity减少存储脚印,但往往不提高CPUs和GPUs等标准硬件速度,为密连网络优化

量化:通过降低计算精度减少内存足迹

量化目标降低存储需求,提高计算效率,表示权值精度低

通常32位浮点数表示权数单精浮点格式)减到16 8或更少比特并使用整数取代浮点数可显著减少模型内存足迹处理和移动少数据还减少内存带宽需求,而内存带宽在许多计算环境中是一个关键因素。推算比特数加速提高处理速度

量化技术

量化技术大致划分为两类:

  • 培训后量化方法应用后模型完全训练高精度权重转换为低位格式而不再培训

    PTQ方法需要快速部署模型,特别是在资源有限设备上精度可能下降,简化为下位表示法可累积近似错误,在复杂任务中影响特别大,如详细图像识别或微分语言处理

    培训后量化的一个关键部分是使用标定数据,该数据在优化模型量化方案方面起着重要作用。校准数据基本上是全数据集中具有代表性子集,模型将推导出

    服务双重目的
    • 量化参数判定校准数据帮助确定模型权重和激活的适当量化参数通过量化模型处理有代表性的数据子集, 有可能观察值分布和选择比例因子和零分最小化误差
    • 缓冲近似错误培训后量化包括降低模型权值精度,这不可避免地引入近似误差校准数据能估计出错对模型输出的影响通过评价模型标定数据集性能,人们可以调整量化参数来减少误差,从而尽可能保持模型精度
  • 量化认知培训将量化过程整合到模型培训阶段中,有效增强模型在低精度约束下操作量化认知培训通过允许模型学习补偿潜在近似误差,通过在培训中强制量化约束最小化比特表示值下降的影响量化认知培训还有助于微调特定层或组件量化过程


其结果是一个量化模型,本性强健,更适合部署资源受限设备,而培训后量化方法通常不显示高精度权衡法

孔巴里松量化培训与培训后量化
量化认知培训(左)与后量化对比(右)。量化认知培训中,预培训模型量化并用培训数据微调以调整参数并恢复精度退化培训后量化中,预培训模型使用校准数据(例如小片培训数据点)校准计算剪切幅度和缩放因子模型根据标定结果量化注意标定过程常与量化认知训练微调过程并行 源码

蒸馏:通过知识传递压缩模型

知识蒸馏优化技术设计从大复杂模型(“师资”)向小高效模型(“学生”)传递知识

方法基础思想是,即使可能需要复杂大模型学习数据模式,小模型可编码相同关系并实现相似任务性能

最常用技术分级模型(二类或多类模型)输出层软max激活在下文中,我们将侧重于此应用,尽管知识蒸馏也可以应用到相关模型和任务中

知识蒸馏原理

知识蒸馏基于两个关键概念:

  • 师生架构师范模型高容量网络,目标任务性能强学生模型小化并计算效率更高
  • 蒸馏损耗学生模型培训不单复制师范模型输出,还匹配师范模型生成输出分布知识蒸馏使用软max输出激活模型
知识蒸馏过程
知识蒸馏过程概述复杂教程模型转移知识为简单教程模型。该转移受数据引导:教程输入数据样本,学生模仿师程输出分布 源码
基于响应知识蒸馏过程概述
基于响应知识蒸馏过程概述数据输入二模型:复杂教工和简单学士比较产生“学习损耗”,表示师生输出值之差学生模型学习模仿老师, 源码

应用知识蒸馏

知识蒸馏实施需要几种方法选择,每种方法都影响蒸馏模型的效率和效果:

  • 蒸馏损耗损失函数有效平衡复制师生输出目标并实现原创任务高性能常用权重合并处理跨渗透损耗(精确度)和蒸馏损耗(相似性教工):
蒸馏损耗

直觉上说,我们想教学生教教教教教教教师“思想”,这包括它输出的不确定性举例说,如果教师最后输出概率为二分分类问题[0.53,0.47],我们希望学生同样不确定。师生预测值之差是蒸馏损耗


获取对损耗的某种控制,我们可以使用参数有效平衡两种损函数:alpha参数,它控制蒸馏损益相对于交叉倍数的权重字母0表示只考虑交叉损耗

  • 温度缩放调整师生模型软max函数中的温度参数产生较弱概率分布

    温度参数T缩放软max函数
温度缩放
条形图显示温度缩放对软max概率的影响

条形图显示温度缩放对软max概率的影响:左面板温度定为T=1.0,结果概率分布最大分为3.0右面板温度定为T=10.0,结果概率分布变软,分数分布比较均匀,而分数3.0保持最高概率显示温度缩放如何调节软max函数在可能的分数范围中的信任度,从而产生更均衡概率分布

通过温度缩放实现这些输出的“软化化化”,可以更详细地传递信息,说明模型在各个类中的信任度和决策过程

  • 模型架构兼容性知识蒸馏效果取决于学生模型从师范模型中学习多好,师范模型在很大程度上受师范结构兼容性的影响正像深复杂师范模式在任务上最优异一样,学生模型必须有一个架构,能够吸收精学知识而不复制师范复杂性这可能包括实验学生模型深度或添加或修改层以更好捕捉教师的洞察力目标是为学生寻找架构,既高效又能尽可能近距离模仿教师性能
  • 传输中间表示器也指为特征知识蒸馏校对中间特征表示或注意力图师生模型需要兼容架构,但能大大改善知识转移,学生模型学习使用与教师相同的特征等学着点
基于特征知识蒸馏框架
特征知识蒸馏框架数据同时输入复杂教程模型和简单求学模型。 师范模型由多层组成(从图层1到图层n),处理数据生成日志,一组原始预测值类似地,学生模型多层(从图层1到图层m)生成自己的日志核心框架在于最小化教程损耗度目的是使学生特征描述与教师特征相似, 源码

深学习模型优化方法比较

本表汇总每一种优化方法的利弊

技术类
专业类
康斯
时间使用

普林宁

降低模型大小和复杂性

任务性能损失Can需要迭代微调以保持任务性能

最优减特大操作紧凑资源假想. ideal使用最小模型大小关键设备

量化

显著减少模型内存足迹并同时保持完全复杂性Acerente计算Enthances部署弹性

任务性能可能退化Optime性能可能需要硬件加速支持

适合各种硬件,尽管优化最优取自兼容系统平衡模型大小和速度提高

知识蒸馏

保持精度同时压缩模型Boosts小模型从大师型模型归纳

两种模型必须经过培训挑战识别最优师生模式对知识转移

保留精度与紧凑模型

结论

通过裁剪、量化和知识提取优化深学习模型对提高计算效率并减少环境影响至关重要

每一种技术都解决具体挑战:裁剪减少复杂性,量化最小存储脚印并加速速度,知识蒸馏向简单模型传递洞见哪种技术最优取决于模型类型、部署环境以及性能目标

文章有用吗

感谢回馈
感谢投票上头有记录........
感谢投票上头有记录通知我们应改善什么

    谢谢您的建议已转发编辑