文档
注册
评分
提单
论坛
小AI

学习向导

本节给出AMCT的概念以及优势、文档的使用对象,并给出不同框架下AMCT的差异,用户根据场景选择不同框架进行模型压缩。

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

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

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

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

各种压缩方式优缺点比较

表1 压缩方式比较

压缩方式

优点

缺点

支持框架

支持产品型号

量化

训练后量化

  • 不需要重训练模型。
  • 只需少量校准数据。

依赖校准数据集分布情况,如果校准数据集与验证数据集分布差异较大,会导致量化结果差; 没有对权重进行重训练,量化后模型精度掉点较大。

  • Caffe
  • TensorFlow
  • PyTorch
  • ONNX

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

量化感知训练

  • 需要重新训练模型。
  • 精度损失小。
  • 训练过程中进行的量化,过程比较耗时。
  • 量化过程中需要的数据会更多,通常是完整训练数据集。
  • Caffe
  • TensorFlow
  • PyTorch

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

稀疏

通道稀疏

  • 稀疏颗粒度更大,能够获取到更大的性能收益。
  • 稀疏率可配置。
  • 改变权重的形状,会影响上层或下层的算子。
  • 稀疏后需要进行重训练,过程比较耗时。
  • 对模型的精度影响大。
  • TensorFlow
  • PyTorch

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

4选2结构化稀疏

稀疏的粒度较小,可以保留较多重要信息,具有细粒度稀疏的精度优势。

  • 受硬件限制,只在部分芯片支持。
  • 稀疏后需要进行重训练,过程比较耗时。
  • 稀疏率固定为50%。
  • TensorFlow
  • PyTorch

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

组合压缩

-

可以同时对模型进行量化和稀疏,得到更高的压缩率。

涉及重训练,过程比较耗时;同步进行了量化和稀疏,对模型精度影响大。

  • TensorFlow
  • PyTorch

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

张量分解

-

将卷积核分解为低秩张量,降低存储空间和计算量

-

  • Caffe
  • TensorFlow
  • PyTorch

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

量化数据均衡预处理

-

降低activation离群值对于量化后模型精度的影响。

-

  • TensorFlow
  • PyTorch
  • ONNX

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

逐层蒸馏

-

在量化的基础上可以对权重进行微调,在保障较高精度的同时,对比重训练有更短的执行时长。

-

PyTorch

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

KV Cache量化

-

不需要对模型进行重训练;只需要少了校准数据

只对节点的输出进行量化,不会提升模型运行效率。

PyTorch

Atlas 推理系列产品(Ascend 310P处理器)

Atlas A2训练系列产品/Atlas 800I A2推理产品

AMCT各框架差异

手册

介绍

AMCT(PyTorch)

针对PyTorch框架模型进行的压缩,需要搭建PyTorch环境,搭建完成后安装AMCT工具。

AMCT(ONNX)

针对ONNX模型进行的压缩,需要搭建ONNX Runtime环境,搭建完成后安装AMCT工具。

AMCT(TensorFlow)

针对TensorFlow框架模型进行的压缩,需要搭建TensorFlow环境,搭建完成后安装AMCT工具。

AMCT(Caffe)

针对Caffe框架模型进行的压缩,需要搭建Caffe环境,搭建完成后安装AMCT工具

使用对象

本文档用于指导开发者如何使用AMCT工具进行模型压缩,通过本文档您可以达成以下目标:

  • 了解AMCT不同的压缩方法。
  • 能够基于文档中提供的方法,完成不同模型的压缩。
  • 掌握常用的压缩方法:量化。

熟悉Linux基本命令、具备python语言程序开发能力,对机器学习、深度学习有一定了解的人员,可以更好地理解本文档。

搜索结果
找到“0”个结果

当前产品无相关内容

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