- 新增W8A16训练后权重量化算法
RoundToNearest
,实现对Llama2 7B/13B/70B、Baichuan2 13B网络无损压缩参数40%+。
- 新增
PTQConfig
,用于配置训练后量化算法。 - 新增
PTQMode
枚举类,可以在PTQConfig
中进行配置,用于区分量化算法的两个阶段:量化阶段和部署阶段。 - 新增
BackendTarget
枚举类,可以在PTQConfig
中进行配置,表达量化的网络最终要部署到什么后端,比如BackendTarget.Ascend
表示最终要部署到MindSpore的昇腾后端上。
感谢以下人员做出的贡献:
zhuxiaoxiong, hangangqiang
欢迎以任何形式对项目提供贡献!
- 修复SCOP剪枝算法训练无法收敛的问题。
感谢以下人员作出的贡献:
hangangqiang, yangruoqi713, kevinkunkun
欢迎以任意形式对项目提供贡献!
- [stable] SLB(Searching for Low-Bit Weights in Quantized Neural Networks)感知量化算法支持BatchNorm矫正能力。可以通过
set_enable_bn_calibration
接口来配置使能。对于存在BatchNorm层的网络,BatchNorm矫正能力减少SLB量化算法产生的网络准确率下降。(!150) - [stable] 验证了SimQAT(Simulated Quantization Aware Training)算法和SLB算法在ResNet网络,Imagenet2012数据集上的量化效果,详细效果参见MindSpore Models仓readme。
- [stable] 打通了SimQAT算法在Lite上的部署流程,并验证了LeNet网络的部署效果,详细效果参见MindSpore官网SimQAT量化算法推理部署效果。
- SLB算法新增
set_enable_bn_calibration
接口,用于配置是否需要使能BatchNorm矫正能力。(!150) - 算法基类CompAlgo新增
convert
接口,用于在训练后将网络转换为推理网络,推理网络将被导出为MindIR进行推理部署,具体使用方法详见模型部署文档。(!176) - 算法基类CompAlgo新增
set_save_mindir
接口,配置在训练后自动导出MindIR,具体使用方法详见模型部署文档。(!168)
- [STABLE] 重构SimQAT算法代码,解决量化过程中激活算子丢失、pre-trained参数丢失、伪量化算子冗余等问题。
感谢以下人员作出的贡献:
liuzhicheng01, fuzhongqian, hangangqiang, yangruoqi713, kevinkunkun.
欢迎以任意形式对项目提供贡献!
- [STABLE] SLB(Searching for Low-Bit Weights in Quantized Neural Networks)感知量化算法通过内置温度调节机制来简化算法的应用方式,用户训练脚本中不在需要手动编写温度调节的逻辑,通过算法配置接口即可实现原来的温度调节功能。
- [STABLE] 解决多卡训练时AllReduce算子的一个bug,从而SLB感知量化算法得以支持多卡训练。
- 算法基类CompAlgo新增
callbacks
接口,返回算法在训练过程中的回调逻辑,为了方便不同算法实现各自的回调逻辑,该算法为变参输入。(!117) - SLB算法新增
set_epoch_size
接口,用于配置当前训练的总epoch数,用于温度调节逻辑的实现。(!117) - SLB算法新增
set_has_trained_epoch
接口,如果训练中使用了预训练的checkpoing,请通过该接口配置当前训练中使用的预训练checkpoint对应的预训练轮数,用于温度调节逻辑的实现。(!117) - SLB算法新增
set_t_start_val
接口,用于配置温度调节机制中温度的初始值,用于温度调节逻辑的实现。(!117) - SLB算法新增
set_t_start_time
接口,用于配置温度调节机制开始生效的时间点,用于温度调节逻辑的实现。(!117) - SLB算法新增
set_t_end_time
接口,用于配置温度调节机制停止生效的时间点,用于温度调节逻辑的实现。(!117) - SLB算法新增
set_t_factor
接口,用于配置温度调节机制中的温度调节因子,用于温度调节逻辑的实现。(!117)
感谢以下人员作出的贡献:
ghostnet, liuzhicheng01, fuzhongqian, hangangqiang, cjh9368, yangruoqi713, kevinkunkun.
欢迎以任意形式对项目提供贡献!
MindSpore Golden Stick是华为诺亚团队和华为MindSpore团队联合设计开发的一个模型压缩算法集,提供了一套统一的算法应用接口,让用户能够统一方便地使用例如量化、剪枝等等模型压缩算法,同时提供前端网络修改能力,降低算法接入成本。MindSpore Golden Stick当前版本提供了三个算法。
- [BETA] 提供一个名为SimQAT(Simulated Quantization Aware Training)的感知量化算法,是一种最基本的感知量化算法。
- [BETA] 提供一个名为SLB(Searching for Low-Bit Weights in Quantized Neural Networks)的感知量化算法,是一种非线性、高精度的感知量化算法,在低比特量化上优势明显。
- [STABLE] 提供一个名为SCOP(Scientific Control for Reliable Neural Network Pruning)的剪枝算法,是一种高精度的结构化剪枝算法,当前主要应用于CV网络上。
感谢以下人员作出的贡献:
ghostnet, liuzhicheng01, fuzhongqian, hangangqiang, cjh9368.
欢迎以任意形式对项目提供贡献!