一种分段线性量化方法及相关装置制造方法及图纸

技术编号:37289938 阅读:23 留言:0更新日期:2023-04-21 01:11
本申请公开了一种分段线性量化方法及相关装置,所述方法包括对待量化网络模型进行量化,得到候选量化模型;将所述候选量化模型量化为至少两个目标量化模型,并将所述至少两个目标量化模型部署于NPU端。本申请通过先将浮点型的待量化网络模型量化为整数型的候选量化模型,然后再通过分段量化将候选量化模型量化为多个目标量化模型,这样一方面可以保证NPU端上部署的网络模型的模型精度,又可以使得NPU无需进行浮点计算,从而可以降低对NPU端的消耗,另一方面通过反量化得到的为整数型的网络模型,不会受到NPU带宽的限制,进而可以提高其部署的网络模型的运行和计算速度。高其部署的网络模型的运行和计算速度。高其部署的网络模型的运行和计算速度。

【技术实现步骤摘要】
一种分段线性量化方法及相关装置


[0001]本申请涉及计算机
,特别涉及一种分段线性量化方法及相关装置。

技术介绍

[0002]目前普遍使用的量化方法包括PTQ(训练后量化)和QTA(量化感知训练),其中,PTQ(训练后量化)在低bit(例如,4bit等)量化时,会导致量化后的模型精度损失严重。QTA(量化感知训练)虽然可以保证量化后的模型精度,但是QTA(量化感知训练)对数据的依赖性较强,需要较多的训练数据。然而,在实际的工业应用中,训练数据经常难以获得,从而限制了QTA(量化感知训练)的使用。
[0003]为了解决上述问题,有研究者提供了PWLQ(piecewise linear quantization分段线性量化),通过在浮点域上寻找一个或者多个合适的与之,对浮点进行截断,然后将不同区间量化值不同数据位。然而,由于不同量化区间存在重叠部分,从而需要分段量化后的数据反量化会返回float32后进行计算。但在实际操作中,NPU(neural

network processing units嵌入式神经网络处理器)对float32进行计算会导致NPU的消耗巨大,同时float32数据在NPU上搬运会受带宽限制影响,导致float32运行和计算速度慢。
[0004]因而现有技术还有待改进和提高。

技术实现思路

[0005]本申请要解决的技术问题在于,针对现有技术的不足,提供一种分段线性量化方法及相关装置。
[0006]为了解决上述技术问题,本申请实施例第一方面提供了一种分段线性量化方法,所述方法包括:
[0007]对待量化网络模型进行量化,得到候选量化模型,其中,所述待量化网模型的数据类型为浮点型,候选量化模型的数据类型为整数型;
[0008]将所述候选量化模型量化为至少两个目标量化模型,并将所述至少两个目标量化模型部署于NPU端,其中,每个目标量化模型均的数据类型均为整数型。
[0009]所述分段线性量化方法,其中,所述待量化网络模型的数据类型为float32,候选量化模型的数据类型为int8。
[0010]所述分段线性量化方法,其中,所述至少两个目标量化模型中的每个目标量化模型的数据位数均小于候选量化模型的数据位数。
[0011]所述分段线性量化方法,其中,所述将所述候选量化模型量化为至少两个目标量化模型具体包括:
[0012]对于候选量化模型中的待量化参数,将所述待量化参数划分为至少两个量化区间;
[0013]获取每个量化区间对应的数据位数,并按照各量化区间对应的数据位数对候选量化模型进行量化,以得到至少两个目标量化模型,其中,至少两个目标量化模型与至少两个
量化区间一一对应。
[0014]所述分段线性量化方法,其中,所述对于候选量化模型中的待量化参数,将所述待量化参数划分为至少两个量化区间具体包括:
[0015]对于候选量化模型中的待量化参数,寻找所述待量化参数对应的至少一个断点;
[0016]基于所述至少一个断点将所述待量化参数划分为至少两个量化区间。
[0017]所述分段线性量化方法,其中,所述将所述至少两个目标量化模型部署于NPU端之后,所述方法包括:
[0018]通过NPU端对各目标量化模型进行反量化,以得到候选量化模型;
[0019]通过NPU端基于所述候选量化模型进行模型推理,以得到推理结果。
[0020]所述分段线性量化方法,其中,所述NPU端中用于执行反量化的计算单元存储于内存搬迁指令内,以使得当基于所述内存搬迁指令向缓冲器内导入数据时,对各目标量化模型进行反量化,以得到候选量化模型。
[0021]本申请实施例第二方面提供了一种分段线性量化系统,所述系统包括:
[0022]第一量化模块,用于对待量化网络模型进行量化,得到候选量化模型,其中,所述待量化网模型的数据类型为浮点型,候选量化模型的数据类型为整数型;
[0023]第二量化模块,用于将所述候选量化模型量化为至少两个目标量化模型,其中,每个目标量化模型均的数据类型均为整数型。
[0024]部署模块,用于将所述至少两个目标量化模型部署于NPU端。
[0025]本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的分段线性量化方法中的步骤。
[0026]本申请实施例第四方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
[0027]所述通信总线实现处理器和存储器之间的连接通信;
[0028]所述处理器执行所述计算机可读程序时实现如上任一所述的分段线性量化方法中的步骤。
[0029]有益效果:与现有技术相比,本申请提供了一种分段线性量化方法及相关装置,所述方法包括对待量化网络模型进行量化,得到候选量化模型;将所述候选量化模型量化为至少两个目标量化模型,并将所述至少两个目标量化模型部署于NPU端。本申请通过先将浮点型的待量化网络模型量化为整数型的候选量化模型,然后再通过分段量化将候选量化模型量化为多个目标量化模型,这样一方面可以保证NPU端上部署的网络模型的模型精度,又可以使得NPU无需进行浮点计算,从而可以降低对NPU端的消耗,另一方面通过反量化得到的为整数型的网络模型,不会受到NPU带宽的限制,进而可以提高其部署的网络模型的运行和计算速度。
附图说明
[0030]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的
附图。
[0031]图1为本申请提供的分段线性量化方法的流程图。
[0032]图2为本申请提供的分段线性量化方法的一个示例图。
[0033]图3为NPU端部署至少两个目标量化模型后的推理流程的一个示例图。
[0034]图4为本申请提供的分段线性量化系统的结构原理图。
[0035]图5为本申请提供的终端设备的结构原理图。
具体实施方式
[0036]本申请提供一种分段线性量化方法及相关装置,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
[0037]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分段线性量化方法,其特征在于,所述方法包括:对待量化网络模型进行量化,得到候选量化模型,其中,所述待量化网模型的数据类型为浮点型,候选量化模型的数据类型为整数型;将所述候选量化模型量化为至少两个目标量化模型,并将所述至少两个目标量化模型部署于NPU端,其中,每个目标量化模型均的数据类型均为整数型。2.根据权利要求1所述分段线性量化方法,其特征在于,所述待量化网络模型的数据类型为float32,候选量化模型的数据类型为int8。3.根据权利要求1所述分段线性量化方法,其特征在于,所述至少两个目标量化模型中的每个目标量化模型的数据位数均小于候选量化模型的数据位数。4.根据权利要求1所述分段线性量化方法,其特征在于,所述将所述候选量化模型量化为至少两个目标量化模型具体包括:对于候选量化模型中的待量化参数,将所述待量化参数划分为至少两个量化区间;获取每个量化区间对应的数据位数,并按照各量化区间对应的数据位数对候选量化模型进行量化,以得到至少两个目标量化模型,其中,至少两个目标量化模型与至少两个量化区间一一对应。5.根据权利要求4所述分段线性量化方法,其特征在于,所述对于候选量化模型中的待量化参数,将所述待量化参数划分为至少两个量化区间具体包括:对于候选量化模型中的待量化参数,寻找所述待量化参数对应的至少一个断点;基于所述至少一个断点将所述待量化参数划分为至少两个量化区间。6.根据权利要求1

5任意一项所述分段线性量化方法,其特征在于,所...

【专利技术属性】
技术研发人员:裴朝科林布德
申请(专利权)人:深圳市欧冶半导体有限公司
类型:发明
国别省市:

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

1