学习向导
本节给出AMCT(Ascend Model Compression Toolkit,简称AMCT)的概念以及优势、文档的使用对象,并给出不同框架下AMCT的差异,用户根据场景选择不同框架进行模型压缩。
AMCT是一个针对昇腾芯片亲和的深度学习模型压缩工具包,提供量化、张量分解等多种模型压缩特性,压缩后模型体积变小,部署到昇腾AI处理器上后可使能低比特运算,提高计算效率,达到性能提升的目标。
AMCT基于开源框架运作,实现了神经网络模型中数据与权重低比特量化、张量分解、模型部署优化(主要为算子融合)的功能,该工具优点如下:
- 使用方便,基于用户原有的框架环境,安装工具包即可。
- 接口简单,在用户基于开源框架的推理脚本基础上,调用API即可完成模型压缩,压缩后的模型支持在CPU和GPU运行。
- 与硬件配套,生成的压缩模型经过ATC工具转换后可在昇腾AI处理器上实现8比特推理。
- 量化可配置,用户可自行修改量化配置文件,调整压缩策略,获取较优的压缩结果。
AMCT当前使用的压缩方法主要包括量化和张量分解,量化过程中可以实现模型部署优化(主要为算子融合)。
各种压缩方式优缺点比较
压缩方式 |
优点 |
缺点 |
支持框架 |
支持产品型号 |
|
---|---|---|---|---|---|
量化 |
训练后量化 |
|
依赖校准数据集分布情况,如果校准数据集与验证数据集分布差异较大,会导致量化结果差; 没有对权重进行重训练,量化后模型精度掉点较大。 |
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
量化感知训练 |
|
|
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
|
稀疏 |
通道稀疏 |
|
|
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
4选2结构化稀疏 |
稀疏的粒度较小,可以保留较多重要信息,具有细粒度稀疏的精度优势。 |
|
|
Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
|
组合压缩 |
- |
可以同时对模型进行量化和稀疏,得到更高的压缩率。 |
涉及重训练,过程比较耗时;同步进行了量化和稀疏,对模型精度影响大。 |
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
张量分解 |
- |
将卷积核分解为低秩张量,降低存储空间和计算量 |
- |
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
自动混合精度搜索 |
- |
解决用户手动调优困难,自动对每一层计算精度配置给出较优解。 |
- |
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
量化数据均衡预处理 |
- |
降低activation离群值对于量化后模型精度的影响。 |
- |
|
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
近似校准 |
- |
不需要重训练模型,只需少量校准数据。 |
依赖校准数据集分布情况,如果校准数据集与验证数据集分布差异较大,会导致量化结果差; 没有对权重进行重训练,量化后模型精度掉点较大。 |
TensorFlow |
Atlas 推理系列产品 |
逐层蒸馏 |
- |
在量化的基础上可以对权重进行微调,在保障较高精度的同时,对比重训练有更短的执行时长。 |
- |
PyTorch |
Atlas 200/300/500 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 Atlas 200/500 A2推理产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
KV Cache量化 |
- |
不需要对模型进行重训练;只需要少了校准数据 |
只对节点的输出进行量化,不会提升模型运行效率。 |
PyTorch |
Atlas 推理系列产品 Atlas A2训练系列产品/Atlas 800I A2推理产品 |
AMCT各框架差异
手册 |
介绍 |
---|---|
针对PyTorch框架模型进行的压缩,需要搭建PyTorch环境,搭建完成后安装AMCT工具。 |
|
针对ONNX模型进行的压缩,需要搭建ONNX Runtime环境,搭建完成后安装AMCT工具。 |
|
针对TensorFlow框架模型进行的压缩,需要搭建TensorFlow环境,搭建完成后安装AMCT工具。 |
|
针对Caffe框架模型进行的压缩,需要搭建Caffe环境,搭建完成后安装AMCT工具。 |
|
需要搭建TensorFlow环境,并借助带有NPU设备的在线推理环境;搭建完成后安装AMCT工具。 |
使用对象
本文档用于指导开发者如何使用AMCT工具进行模型压缩,通过本文档您可以达成以下目标:
- 了解AMCT不同的压缩方法。
- 能够基于文档中提供的方法,完成不同模型的压缩。
- 掌握常用的压缩方法:量化。
熟悉Linux基本命令、具备Python语言程序开发能力,对机器学习、深度学习有一定了解的人员,可以更好地理解本文档。