下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

基本概念

昇腾模型压缩工具(Ascend Model Compression Toolkit,简称AMCT)是一个针对昇腾芯片亲和的深度学习模型压缩工具包,提供量化等多种模型压缩特性,压缩后模型体积变小,部署到昇腾AI处理器上后可使能低比特运算,提高计算效率,达到性能提升的目标。

AMCT基于MindSpore框架运作,实现了神经网络模型中模型部署优化(主要为算子融合)、数据与权重8比特量化的功能,该工具优点如下:

  • 使用方便,安装工具包即可。
  • ​接口简单,在用户基于MindSpore框架的推理脚本基础上,调用API即可完成模型压缩。
  • ​与硬件配套,生成的压缩模型经过ATC工具转换后可在昇腾AI处理器上实现8比特推理。
  • ​量化可配置,用户可自行修改量化配置文件,调整压缩策略,获取较优的压缩结果。

AMCT当前使用的压缩方法为量化,量化过程中可以实现模型部署优化(主要为算子融合)。

量化

量化是指对模型的权重(weight)和数据(activation)进行低比特处理,让最终生成的网络模型更加轻量化,从而达到节省网络模型存储空间、降低传输时延、提高计算效率,达到性能提升与优化的目标。

AMCT将量化和模型转换分开,实现对模型中可量化算子的独立量化,并将量化后的模型保存为.air文件。该模型既可以在昇腾AI处理器进行精度仿真,也可以经过ATC工具转换成离线模型后部署在昇腾AI处理器,达到提升推理性能的目的。其运行原理如下图所示。特性详细介绍请参见量化

图1 量化运行原理

量化根据是否需要重训练,分为训练后量化(Post-Training Quantization,简称PTQ)和量化感知训练(Quantization-Aware Training,简称QAT),概念解释如下:

  • 训练后量化

    训练后量化是指在模型训练结束之后进行的量化,对训练后模型中的权重由浮点数(当前支持float32)量化到低比特整数(当前支持int8),并通过少量校准数据基于推理过程对数据(activation)进行校准量化,从而尽可能减少量化过程中的精度损失。训练后量化简单易用,只需少量校准数据,适用于追求高易用性和缺乏训练资源的场景。

    通常,训练后的模型权重已经确定,因此可以根据权重的数值离线计算得到权重的量化参数。而通常数据是在线输入的,因此无法准确获取数据的数值范围,通常需要一个较小的有代表性的数据集来模拟在线数据的分布,利用该数据集执行前向推理,得到对应的中间浮点结果,并根据这些浮点结果离线计算出数据的量化参数。其原理如图2所示。

    图2 训练后量化原理
  • 量化感知训练

    量化感知训练是指在重训练过程中引入量化,通过重训练提高模型对量化效应的能力,从而获得更高的量化模型精度的一种量化方式。量化感知训练借助用户完整训练数据集,在训练过程中引入伪量化的操作(从浮点量化到定点,再还原到浮点的操作),用来模拟前向推理时量化带来的误差,并借助训练让模型权重能更好地适应这种量化的信息损失,从而提升量化精度。

    通常,量化感知训练相比训练后量化,精度损失会更小,但主要缺点是整体量化的耗时会更长;此外,量化过程需要的数据会更多,通常是完整训练数据集。

    其运行原理如图3所示。

    图3 量化感知训练原理

模型部署优化

主要为算子融合,是指通过数学等价,将模型中的多个算子运算融合单算子运算,以减少实际前向过程中的运算量,如将卷积层和BN层融合为一个卷积层。其运行原理如下图所示。

图4 模型部署优化原理
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词