System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种快速地将各种量化算法和MNN结合的方法技术_技高网

一种快速地将各种量化算法和MNN结合的方法技术

技术编号:40337344 阅读:10 留言:0更新日期:2024-02-09 14:26
本发明专利技术提供一种快速地将量化方法融合进MNN的方法,尤其对量化过程较复杂的量化算法很有用,求取量化参数S和Z的过程仍按原始的流程走,之后线下简化ONNX,去掉不需要的节点,提取相应的参数再合入MNN,修改起来简单方便。本申请是一种切实可行的简单快速的将其他方法量化出来的模型和MNN快速结合的方法。

【技术实现步骤摘要】

本专利技术属于神经网络,特别涉及一种快速地将各种量化算法和mnn结合的方法。


技术介绍

1、卷积神经网络具有很好的精度,甚至在一些任务上比如人脸识别、图像分类,已经超越了人类精度。但其缺点也比较明显,具有较大的参数量,计算量,以及内存占用。而模型量化可以缓解现有卷积神经网络参数量大、计算量大、内存占用多等问题,具有为神经网络压缩参数、提升速度、降低内存占用等“潜在”优势。这里的“潜在”为什么是加引号的呢?因为想同时达到这三个特性并不容易,在实际应用过程中存在诸多限制和前提条件。另外,由于模型量化是一种近似算法方法,精度损失是一个严峻的问题,大部分的研究都在关注这一问题。

2、目前,随着手机算力的不断提升,以及深度学习的快速发展,特别是小网络模型不断成熟,原本在云端执行的推理预测就可以转移到终端上来做。端智能即在端侧部署运行ai算法,相比服务端智能,端智能具有低延时、兼顾数据隐私、节省云端资源等优势。

3、此外,mnn(mobile neural network)是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,mnn已经在例如阿里巴巴的手机淘宝、手机天猫、优酷等20多个app中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。另外,iot等场景下也有若干应用。

4、adaround、adaquant以及brecq是现阶段后训练量化ptq研究的前沿策略,都沿着“权重不变的量化参数优化”方向演进,即都属于optimization-based methods,量化精度符合预期时,需要考虑与推理引擎(如mnn、tensorrt、tvm等)相结合,获得真实的推理加速效果;如果量化方法比较简单,替换掉原来的mnn的算法即可,但如果量化方法比较复杂,比如需要用小数据进行微调涉及到参数的反传,加上mnn又是c++实现,合并起来就会很麻烦,而且容易出错。

5、此外,现有技术中的常用术语如下:

6、1.模型量化:量化是指将信号的连续取值近似为有限多个离散值的过程。可理解成一种信息压缩的方法。在计算机系统上考虑这个概念,一般用“低比特”来表示。也有人称量化为“定点化”,但是严格来讲所表示的范围是缩小的。定点化特指scale为2的幂次的线性量化,是一种更加实用的量化方法。

7、2.训练量化(qat即quantization-aware-training):在训练中模拟量化行为,在训练中用浮点来保存定点参数,最后inference的时候,直接采用定点参数。优势:训练阶段考虑到了量化约束,精度效果相对更好;更有利于极低比特量化(如int4、或int8/int4混合)的落地实现;劣势:存在训练成本,维护升级相对吃力;精度效果未必好,也依赖策略选择与超参调整。

8、3.后训练量化(pqt即post-quantization-training):对预训练后的网络选择合适的量化操作和校准操作,以实现量化损失的最小化,该过程又细分为两种:

9、(1)需要calibration数据,这些数据主要用来统计得到量化参数,因此是不需要打标的,一般百来张即可。

10、(2)完全不需要数据集。这适用于那些完全拿不到训练环境和数据的场景。优势:简单易用,能快速看到量化效果;劣势:由于模型训练时,并未考虑到量化约束,因此未必能完全消除量化误差或精度损失。

11、4.量化的作用:量化将网络中主要算子(卷积)由原先的浮点计算转成低精度的int8计算,减少模型大小并提升性能。

12、5.onnx(open neural exchange,开放神经网络交换)格式,是一种针对机器学习所设计的开放式的文件格式用于存储训练好的模型。用于表示深度学习模型的标准,可使得模型在不同框架之间进行转移。


技术实现思路

1、为了解决上述问题,本申请的目的在于:提供一种切实可行的简单快速的将其他方法量化出来的模型和mnn快速结合的方法。

2、具体地,本专利技术提供一种快速地将各种量化算法和mnn结合的方法,所述方法包括:

3、s1,分析线性量化方法:

4、设:

5、量化quantize x_int=round(x*s)+z

6、x_q=clamp(0,n-1,x_int)

7、反量化de-quantize x_float=(x_q-z)/s

8、其中,x是float32的原始值,s是float32的缩放因子,z是float32的偏移量,n=2n-1,其中n表示量化的位宽,n由比特bit计算得出;x_int是量化之后的值对比x_float,x_q是量化后的值,x_int做完边界处理就是x_q,大部分情况x_int\x_q二者相等,x_float是反量化后的值,这里默认已经量化完毕,即已经得到合适的s和z;

9、s2,假设,线性量化的一个卷积层,节点conv之上的一系列节点是对权重weight的量化,之后的是对feature的量化,只想得到量化参数,即weight的缩放系数s_w和零点z_w以及feature的缩放系数s_f和零点z_f;进一步包括:

10、(1),原权重weight先除以s值,表示为:div:w’=w/s;

11、(2),round()是四舍五入取整函数,表示为:aten:w_r=round(w’);

12、(3),这一步相当于计算整数和取整之前浮点直接的差值,表示为:sub:d=w_r-w’;

13、(4),这一步的结果其实跟(2)中round后的结果是一样的,表示为add:w_int=w’+d;

14、(5),加上零点值,表示为:add:w_int=w_int+z_w

15、(6),该操作是为了防止越界,做了一个阶段,将值限制在量化的范围0~2bit-1;表示为:clip:w_q=clamp(w_int,0,n),其中n=2bit-1;

16、(7),相当于前面量化的值再减去零值,表示为:sub:w_q=w_q-z_w;

17、(8),再乘上前面的scale值,这两步相当于反量化操作,表示为:mul:w_float=w_q*s;

18、因此,以上步骤(1)-(6)是在进行量化操作,对应x_q=clamp(0,n-1,round(x*s)+z);(7)-(8)是在进行反量化操作,对应x_float=(x_q-z)/s;故步骤(1)中div中可取出来量化的s值,由第二个sub即步骤(7)取出z的值,因为这里是对weight的量化,所以用了s_w和z_w来表示;

19、s3,分析s1中的量化方法及s2中的节点可知,从除法div中即可获取s的值,节点conv前的div的input[0]对应conv的weight,input[1]对应conv的s_w,conv后的div的input[本文档来自技高网...

【技术保护点】

1.一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S2中,所述线性量化的一个卷积层是量化前已经合并完BN。

3.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,所述卷积Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W是分通道,channels个值。

4.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,所述Conv前、后均有两个Sub,每个的第一个Sub是整形和浮点值之间的差值计算。

5.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,当节点的属性的值的维度node.attribute.t.dims有值时为零点Z_W,因为Weight分通道,值有多个,否则是Z_F即Feature不分通道,单个值。

6.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,为了保证去掉无用节点之后整个网络节点之间的连续性,将Conv的输出节点改为量化特征Feature的最后一个乘法Mul的输出节点,这样该层Conv就和下一层自然衔接。

...

【技术特征摘要】

1.一种快速地将各种量化算法和mnn结合的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种快速地将各种量化算法和mnn结合的方法,其特征在于,所述步骤s2中,所述线性量化的一个卷积层是量化前已经合并完bn。

3.根据权利要求1所述的一种快速地将各种量化算法和mnn结合的方法,其特征在于,所述步骤s3中,所述卷积conv前的div的input[0]对应conv的weight,input[1]对应conv的s_w是分通道,channels个值。

4.根据权利要求1所述的一种快速地将各种量化算法和mnn结合的方法,其特征在于,所述步骤s3中,所述conv前、后均...

【专利技术属性】
技术研发人员:余慧
申请(专利权)人:北京君正集成电路股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1