浮点神经网络模型量化系统和方法技术方案

技术编号:28376547 阅读:14 留言:0更新日期:2021-05-08 00:04
本发明专利技术公开了一种浮点神经网络模型的量化系统,包括:组合校准算法单元,所述组合校准算法单元包括多种校准算法单元,组合校准算法单元为各个浮点神经网络模型或者一个浮点神经网络模型中的各个激活值分配不同的校准算法,以便获得量化参数,并对浮点神经网络进行量化,得到定点神经网络模型;自检优化单元,所述自检优化单元在校准数据集的一个子集上,推演浮点神经网络模型和定点神经网络模型,计算浮点神经网络模型和定点神经网络模型的结果的余弦相似度作为基准余弦相似度;自检优化单元微调初始量化参数,生成经微调的定点神经网络模型,计算浮点神经网络模型和经微调的定点神经网络模型的结果的余弦相似度;判断经微调的余弦相似度是否大于基准余弦相似度,如果经微调的余弦相似度大于基准余弦相似度,则利用经微调的量化参数、经微调的定点神经网络、经微调的余弦相似度更新量化参数、定点神经网络和基准余弦相似度。

【技术实现步骤摘要】
浮点神经网络模型量化系统和方法
本专利技术涉及数据处理领域,尤其涉及一种浮点神经网络模型量化系统和方法。
技术介绍
人工神经网络的应用在很多方面都取得了很大的进展,例如在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。随着模型预测(predication)越来越准确,网络越来越深,神经网络消耗的计算和内存资源成为问题,尤其是在移动设备上。例如,如果部署相对较小的ResNet-50网络来分类,运行网络模型就需要3GB/s的内存带宽,在网络运行时,内存、CPU和电池会都在飞速消耗,使设备变得智能化需要付出昂贵的代价。随着神经网络的发展,大型神经网络具有越来越多的层级和数据量,这为神经网络的部署带来了巨大的挑战。针对这些问题,一方面可通过设计更有效的网络架构,用相对较小的模型尺寸达到可接受准确度;另一方面,可通过压缩、编码等方式减小网络规模。量化是最广泛采用的压缩方法之一。例如,目前常见的神经网络框架为了高效地推演神经网络模型往往采用量化方式将浮点神经网络模型转换为定点神经网络模型,具体方法为:首先,通过在一定规模的数据集上对浮点模型进行推演,收集每个中间结果的浮点范围,来确定定点神经网络模型的量化参数;然后通过收集到的量化参数,量化浮点神经网络模型,得到定点神经网络模型。然而,常见的神经网络框架中,收集中间结果浮点范围,并计算得到神经网络量化参数的校准算法往往比较单一且简单,对复杂的神经网络进行量化后,可能产生比较严重的性能损失。使用者也无法通过比较不同算法的性能优劣来选择合适的校准算法。另外,常见的神经网络框架中,进行完模型量化后,缺乏评估量化性能并对收集到的量化参数进行自检和优化的部分。
技术实现思路
针对现有技术中存在的问题,根据本专利技术的一个实施例,提供一种浮点神经网络模型的量化系统,包括:组合校准算法单元,所述组合校准算法单元包括多种校准算法单元,组合校准算法单元为各个浮点神经网络模型或者一个浮点神经网络模型中的各个激活值分配不同的校准算法,以便获得量化参数,并对浮点神经网络进行量化,得到定点神经网络模型;自检优化单元,所述自检优化单元在校准数据集的一个子集上,推演浮点神经网络模型和定点神经网络模型,计算浮点神经网络模型和定点神经网络模型的输出值的余弦相似度作为基准余弦相似度;自检优化单元微调初始量化参数,生成经微调的定点神经网络模型,计算浮点神经网络模型和经微调的定点神经网络模型的输出值的余弦相似度;判断经微调的余弦相似度是否大于基准余弦相似度,如果经微调的余弦相似度大于基准余弦相似度,则利用经微调的量化参数、经微调的定点神经网络、经微调的余弦相似度更新量化参数、定点神经网络和基准余弦相似度。在本专利技术的一个实施例中,所述组合校准算法单元包括:极值校准算法单元、均值校准算法单元、交叉熵校准算法单元、覆盖范围校准算法单元、和/或均方差校准算法单元。在本专利技术的一个实施例中,所述极值校准算法单元采用极值校准算法获得量化参数,极值校准算法在一定规模的数据集上对浮点神经网络进行推演,并记录每个激活值在这个数据集内取到的最大值和最小值,并作为这一个激活值的量化参数;所述均值校准算法单元采用均值校准算法获得量化参数,均值校准算法在一定规模的数据集D={d1,d2,…,dn}上对浮点神经网络进行推演,记录每个激活值在所有数据集D内的单个数据di上的最大值和最小值,并求出这些最大值和最小值均值,作为这一个激活值的量化参数;交叉熵校准算法单元采用交叉熵校准算法获得量化参数,交叉熵校准算法:对于神经网络的每一层的激活值,按照采样数得到该激活值分布的直方图序列P,根据P所覆盖的范围(min,max)枚举得到所有候选量化参数N,N中包含n组候选量化参数,分别表示为(min1,max1),(min2,max2),…,(minn,maxn),利用N中的每组候选量化参数量化激活值的分布直方图序列P,得到量化后的激活值直方图分布Q,然后将P和Q归一化,并计算归一化后的P和Q的交叉熵,选择计算得到交叉熵最小的一组后选量化参数作为激活值的量化参数;覆盖范围校准算法单元采用覆盖范围校准算法获得量化参数,覆盖范围校准算法在极值校准算法的基础上,将收集到的最大值和最小值乘上一个溃缩系数C,作为该激活值的量化参数;均方差校准算法单元采用均方差校准算法获得量化参数,均方差校准算法:对于神经网络的每一层的激活值P,使用此激活值P的最大值和最小值作为初始量化参数,并计算得到用于量化浮点数的缩放尺度scale0以及零点位置zeropoint;利用scale0和zeropoint对激活值P进行量化反量化,得到伪浮点激活值Q,计算P和Q的均方差m0;按照一定的采样数n等分scale0,得到Δscale=scale0÷n,以采样数n为循环,每次将scale0减去Δscale,得到scalei=scale0-i*△scale,利用scalei作为新的缩放尺度和zeropoint一起再次对激活值P进行量化反量化,得到伪浮点激活值Qi,并计算P和Qi的均方差mi;结束采样数循环后,选择均方差最小的一组缩放尺度和零点zeropoing一起作为该激活值的量化参数。在本专利技术的一个实施例中,组合校准算法单元包括配置单元,所述配置单元对每个激活值的校准方法进行单独设置,在校准每个激活值时,通过索引该激活值的名称寻找该激活值对应的校准算法名称,然后使用相应的校准算法来校准该激活值。在本专利技术的一个实施例中,所述自检优化单元用于:从定点神经网络模型的最后一层开始;A)微调当前一层的量化参数;B)计算浮点神经网络模型和经微调的定点神经网络模型的结果的余弦相似度;C)判断经微调的余弦相似度是否大于基准余弦相似度,如果经微调的余弦相似度大于基准余弦相似度,则利用经微调的量化参数、经微调的定点神经网络、经微调的余弦相似度更新量化参数、定点神经网络和基准余弦相似度;D)将定点神经网络模型的当前层的前一层更新为当前层,重复步骤A)至C),遍历整个定点神经网络模型,直到连续多次微调不再提高余弦相似度,或余弦相似度高于用户设定的目标余弦相似度结束优化过程。在本专利技术的一个实施例中,所述微调是多种微调的组合,根据以下公式获得一组候选缩放系数序列factor,来缩放量化参数:factor[i]=1-Seedi,factor[i+1]=1+seedi,i∈[1,n]其中,factor是缩放系数序列,seed是缩放系数种子,n是缩放次数,i是属于[1,n]的所有正整数。在本专利技术的一个实施例中,余弦相似度的计算公式如下:其中,Ai,Bi分别为浮点神经网络模型和定点神经网络模型输出值序列A和B中的元素。根据本专利技术的另一个实施例,提供一种浮点神经网络模型的量化方法,包括:获取数据集,并逐层地推演整个浮点神经网络模型,通过推演得到的每一层的激活本文档来自技高网
...

【技术保护点】
1.一种浮点神经网络模型的量化系统,包括:/n组合校准算法单元,所述组合校准算法单元包括多种校准算法单元,组合校准算法单元为各个浮点神经网络模型或者一个浮点神经网络模型中的各个激活值分配不同的校准算法,以便获得量化参数,并对浮点神经网络进行量化,得到定点神经网络模型;/n自检优化单元,所述自检优化单元在校准数据集的一个子集上,推演浮点神经网络模型和定点神经网络模型,计算浮点神经网络模型和定点神经网络模型的输出值的余弦相似度作为基准余弦相似度;自检优化单元微调初始量化参数,生成经微调的定点神经网络模型,计算浮点神经网络模型和经微调的定点神经网络模型的输出值的余弦相似度;判断经微调的余弦相似度是否大于基准余弦相似度,如果经微调的余弦相似度大于基准余弦相似度,则利用经微调的量化参数、经微调的定点神经网络、经微调的余弦相似度更新量化参数、定点神经网络和基准余弦相似度。/n

【技术特征摘要】
1.一种浮点神经网络模型的量化系统,包括:
组合校准算法单元,所述组合校准算法单元包括多种校准算法单元,组合校准算法单元为各个浮点神经网络模型或者一个浮点神经网络模型中的各个激活值分配不同的校准算法,以便获得量化参数,并对浮点神经网络进行量化,得到定点神经网络模型;
自检优化单元,所述自检优化单元在校准数据集的一个子集上,推演浮点神经网络模型和定点神经网络模型,计算浮点神经网络模型和定点神经网络模型的输出值的余弦相似度作为基准余弦相似度;自检优化单元微调初始量化参数,生成经微调的定点神经网络模型,计算浮点神经网络模型和经微调的定点神经网络模型的输出值的余弦相似度;判断经微调的余弦相似度是否大于基准余弦相似度,如果经微调的余弦相似度大于基准余弦相似度,则利用经微调的量化参数、经微调的定点神经网络、经微调的余弦相似度更新量化参数、定点神经网络和基准余弦相似度。


2.如权利要求1所述的浮点神经网络模型的量化系统,其特征在于,所述组合校准算法单元包括:极值校准算法单元、均值校准算法单元、交叉熵校准算法单元、覆盖范围校准算法单元、和/或均方差校准算法单元。


3.如权利要求2所述的浮点神经网络模型的量化系统,其特征在于,
所述极值校准算法单元采用极值校准算法获得量化参数,极值校准算法在一定规模的数据集上对浮点神经网络进行推演,并记录每个激活值在这个数据集内取到的最大值和最小值,并作为这一个激活值的量化参数;
所述均值校准算法单元采用均值校准算法获得量化参数,均值校准算法在一定规模的数据集D={d1,d2,…,dn}上对浮点神经网络进行推演,记录每个激活值在所有数据集D内的单个数据di上的最大值和最小值,并求出这些最大值和最小值均值,作为这一个激活值的量化参数;
交叉熵校准算法单元采用交叉熵校准算法获得量化参数,交叉熵校准算法:对于神经网络的每一层的激活值,按照采样数得到该激活值分布的直方图序列P,根据P所覆盖的范围(min,max)枚举得到所有候选量化参数N,N中包含n组候选量化参数,分别表示为(min1,max1),(min2,max2),…,(minn,maxn),利用N中的每组候选量化参数量化激活值的分布直方图序列P,得到量化后的激活值直方图分布Q,然后将P和Q归一化,并计算归一化后的P和Q的交叉熵,选择计算得到交叉熵最小的一组后选量化参数作为激活值的量化参数;
覆盖范围校准算法单元采用覆盖范围校准算法获得量化参数,覆盖范围校准算法在极值校准算法的基础上,将收集到的最大值和最小值乘上一个溃缩系数C,作为该激活值的量化参数;
均方差校准算法单元采用均方差校准算法获得量化参数,均方差校准算法:对于神经网络的每一层的激活值P,使用此激活值P的最大值和最小值作为初始量化参数,并计算得到用于量化浮点数的缩放尺度scale0以及零点位置zeropoint;利用scale0和zeropoint对激活值P进行量化反量化,得到伪浮点激活值Q,计算P和Q的均方差m0;按照一定的采样数n等分scale0,得到Δscale=scale0÷n,以采样数n为循环,每次将scale0减去Δscale,得到scalei=scale0-i*△scale,利用scalei作为新的缩放尺度和zeropoint一起再次对激活值P进行量化反量化,得到伪浮点激活值Qi,并计算P和Qi的均方差mi;结束采样数循环后,选择均方差最小的一组缩放尺度和零点zeropoing一起作为该激活值的量化参数。


4.如权利要求2所述的浮点神经网络模型的量化系统,其特征在于,所述组合校准算法单元包括配置单元,所述配置单元对每个激活值的校准方法进行单独设置,在校准每个激活值时,通过索引该激活值的名称寻找该激活值对应的校准算法名称,然后使用相应的校准算法来校准该激活值。


5.如权利要求1所述的浮点神经网络模型的量化系统,其特征在于,所述自检优化单元用于:从定点神经网络模型的最后一层开始;
A)微调当前一层的量化参数;
B)计算浮点神经网络模型和经微调的定点神经网络模型的结果的余弦相似度;
C)判断经微调的余弦相似度是否大于基准余弦相似度,如果经微调的余弦相似度大于基准余弦相似度,则利用经微调的量化参数、经微调的定点神经网络、经微调的余弦相似度更新量化参数、定点神经网络和基准余弦相似度;
D)将定点神经网络模型的当前层的前一层更新为当前层,重复步骤A)至C),遍历整个定点神经网络模型,直到连续多次微调不再提高余弦相似度,或余弦相似度高于用户设定的目标余弦相似度结束优化过程。


6.如权利要求1所述的浮点神经网络模型的量化系统,其特征在于,所述微调是多种微调的组合,根据以下公式获得一组候选缩放系数序列factor,来缩放量化参数:
factor[i]=1-seedi,factor[i+1]=1+seedi,i∈[1,n]
其中,factor是缩放系数序列,seed是缩放系数种子,n是缩放次数,i是属于[1,n]的所有正整数。


7.如权利要...

【专利技术属性】
技术研发人员:陈家麒黄宇扬冯建豪
申请(专利权)人:上海熠知电子科技有限公司
类型:发明
国别省市:上海;31

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

1