掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、设备以及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本公开涉及人工智能技术领域,尤其涉及深度学习技术领域,可适用于语音识别、自然语言处理和信息推荐等场景。

背景技术

随着人工智能技术的发展,深度学习技术在日常生活中的应用越来越广,为了不断提升深度学习模型的模型精度,导致模型的复杂度和参数量都在持续增加,直接影响模型体积和模型的运算速度,从而影响人工智能技术落地成本,亟需改进。

发明内容

本公开提供了一种数据处理方法、装置、设备以及存储介质。

根据本公开的一方面,提供了一种数据处理方法,包括:

获取目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵;其中,特征矩阵的列数等于权重矩阵的行数;

根据目标量化网络层的目标分段系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段,以及将权重矩阵的每一列权重元素划分为至少两个权重元素子段;

根据目标量化网络层的目标量化比特数,对至少两个特征元素子段和至少两个权重元素子段进行量化处理,并根据量化处理结果,确定目标量化网络层的输出特征。

根据本公开的另一方面,提供了一种电子设备,该电子设备包括:

至少一个处理器;以及

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开任一实施例的数据处理方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开任一实施例的数据处理方法。

本方案,能够在尽可能保证模型精度的同时,压缩模型体积,提高模型运算速度,从而降低人工智能技术落地成本。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开实施例提供的一种数据处理方法的流程图;

图2是根据本公开实施例提供的一种数据处理方法的流程图;

图3是根据本公开实施例提供的一种数据处理方法的流程图;

图4是根据本公开实施例提供的一种数据处理方法的流程图;

图5是根据本公开实施例提供的一种数据处理装置的结构示意图;

图6是用来实现本公开实施例的数据处理方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本公开实施例提供的一种数据处理方法的流程图;本公开实施例适用于对深度学习模型中目标量化网络层的数据计算过程进行量化处理的情况,具体适用于对深度学习模型中的目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵进行处理,得到该目标网络层的输出特征的情况。该方法可以由数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现。具体可以集成于配置有深度学习模型的电子设备中。如图1所示,本实施例提供的数据处理方法可以包括:

S101,获取目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵。

其中,目标量化网络层可以是深度学习模型中,运算矩阵乘法算子的网络层,可选的,该矩阵乘法算子可以包括但不限于:全连接算子和其他衍生算子,如transformer算子。

目标量化网络层输入的特征矩阵,可以是输入到目标网络层的输入信息,例如,若目标量化网络层为深度学习模型中的首个网络层,则该特征矩阵,可以是该深度学习模型的输入,若目标量化网络层为深度学习模型的非首个网络层,则该特征矩阵可以是深度学习模型中,位于该目标量化网络层的上一网络层的输出。目标量化网络层的权重矩阵可以是目标量化网络层在网络训练阶段得到,用于表征本层输入特征的权重系数的固有网络参数。需要说明的是,由于目标量化网络层对应的是矩阵乘法算子,所以需要要求特征矩阵的列数等于权重矩阵的行数。即特征矩阵的大小为:m*k,权重矩阵的大小为k*n。其中,m、k、n的取值为正整数。

可选的,本实施例可以获取输入到目标量化网络层的特征数据作为特征矩阵,并获取该目标量化网络层内固有的权重参数作为权重矩阵。具体的,若目标网络层的输入数据为多个时,则可以是选择列数与权重矩阵的行数相同的输入数据作为该目标量化网络层输入的特征矩阵。

S102,根据目标量化网络层的目标分段系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段,以及将权重矩阵的每一列权重元素划分为至少两个权重元素子段。

其中,目标分段系数可以是对目标量化网络层的运算过程进行量化时所需的量化配置参数中的一个参数。其用于表征划分后的每一子段中包含的矩阵元素的数量。例如,若目标分段系数为C,则可以是将矩阵中的每C个连续元素划分为一段,即划分后的每一子段中包含的矩阵元素的数量为C个。其中,C的取值为正整数。该目标分段系数的具体数值可以是预先确定的,例如,可以是通过大量测试分析,从多种可选分段系数中选择一个作为目标分段系数。还可以是根据经验设置等,对此不进行限定。可选的,本实施例优选设置目标分段系数能够将特征矩阵的每一行特征元素和权重矩阵的每一列矩阵元素进行等份划分,即若特征矩阵的列数和权重矩阵的行数均为k,则此时目标分段系数C的取值优选能被k整除。

需要说明的是,本实施例将特征矩阵中的矩阵元素称为特征元素,将对特征元素划分后的每一组特征元素作为一个特征元素子段;将权重矩阵中的矩阵元素称为权重元素,将对权重元素划分后的每一组权重元素作为一个权重元素子段。

具体的,本实施例可以根据目标分段系数C,对特征矩阵中的每一行特征元素,以相邻的C个特征元素为一个组,划分为至少两段,其中的每一段均作为一个特征元素子段;再根据目标分段系数C,对权重矩阵中的每一列权重元素,以相邻的C个权重元素为一个组,划分为至少两段,其中的每一段均作为一个权重元素子段。

示例性的,若特征矩阵为矩阵I,即

权重矩阵为矩阵W,即

S103,根据目标量化网络层的目标量化比特数,对至少两个特征元素子段和至少两个权重元素子段进行量化处理,并根据量化处理结果,确定目标量化网络层的输出特征。

其中,目标量化比特数可以是对目标量化网络层的运算过程进行量化时所需的量化配置参数中的另一个参数。其用于表征对矩阵乘法算子量化的程度,即目标量化比特数的数值越小,代表量化程度越高,优选的,本实施例的目标量化比特数的数值通常不大于4,例如,可以取值为1bit、2bit或4bit等。

可选的,本实施例根据目标量化比特数,对每一特征元素子段和每一权重元素子段进行量化处理的过程具体包括:根据每一特征元素子段内的特征元素值,确定特征元素子段的特征基准值,例如,可以是将该特征元素子段内绝对值最大的特征元素值作为该特征元素子段的特征基准值,然后根据特征基准值和目标量化网络层的目标量化比特数,按照如下公式(1),确定特征元素子段内的各特征元素的量化值;

其中,I′

同理,根据每一权重元素子段内的权重元素值,确定权重元素子段的权重基准值,并根据权重基准值和目标量化比特数,按照如下公式(2),确定权重元素子段内的权重元素的量化值。

其中,W′

需要说明的是,本实施例中的变量i、p、s、j、q的取值为正整数。

需要说明的是,本实施例将每一特征元素或权重元素转化为其对应的量化值的过程实质是将特征元素或权重元素量化为目标量化比特数对应低比特整数的过程。

可选的,本实施例得到的量化结果可以先基于紧致格式保存,以便后续计算输出特征时调用。例如,若目标量化比特数B=4,则由于一个字节为8bit,所以可以用一个字节保存两个特征元素的量化值或两个权重元素的量化值,同时还要保存各特征基准值和各权重基准值,其中,每一特征基准值需要占用4个字节,每个权重基准值也要占用4个字节。

可选的,在基于上述方式对各特征元素子段和各权重元素子段进行量化处理后,可以基于量化处理结果,即每个特征元素子段的特征基准值和该特征元素子段内各特征元素的量化值;以及每个权重元素子段的权重基准值和该权重元素子段内各权重元素的量化值,通过低比特矩阵乘法计算和反量化的过程,来确定目标量化网络层的输出特征。

需要说明的是,本实施例上述方案的目标量化网络层可位于任何配置有矩阵乘法算子的深度学习模型中,例如,可以位于图像识别模型中、语音识别模型中或文本语义解析模型中等。

在本实施例中,可以优选在语音识别模型中部署该目标量化网络层,此时,对应的特征矩阵是语音片段经特征提取层处理后得到的语音特征;输出特征用于对语音片段进行语义识别处理。

本公开实施例的方案,获取目标量化网络层输入的特征矩阵和该目标量化网络层的权重矩阵后,基于目标分段系数,分别将特征矩阵的每一行和权重矩阵的每一列划分为至少两个权重元素子段,进而根据目标量化比特数,对划分后的特征元素子段和权重元素子段进行量化处理,并根据处理结果,确定目标量化网络层的输出特征。本方案通过引入目标分段系数,将特征矩阵的每一行和权重矩阵的每一列划分为多个子段进行量化,在达到低比特量化矩阵乘法的同时,还保证了低比特矩阵乘法量化的精准性,即能够在尽可能保证模型精度的同时,压缩模型体积,提高模型运行速度,从而降低人工智能技术落地成本。

可选的,在本实施例中,目标量化网络层的目标分段系数可以进一步包括第一系数和第二系数,相应的,对特征矩阵和权重矩阵进行分段的方式为:根据目标量化网络层的目标分段系数中的第一系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段;根据目标分段系数中的第二系数,将权重矩阵的每一列权重元素划分为至少两个权重元素子段;其中,第一系数和第二系数可以相同也可以不同,无论两者是否相同,均需遵循第一系数和第二系数成整数倍关系。例如,第一系数C1=4,第二系数C2=2。具体的,基于第一系数对特征矩阵进行划分的方式,以及基于第二系数对权重矩阵进行划分的方式与上述实施例介绍的方式类似,在此不进行赘述。本方对权重矩阵和特征矩阵可基于不同的目标分段系数进行子段划分,提高了划分规则的灵活性和多样性,进一步提高了后续矩阵量化,以及基于量化结果确定输出矩阵的精准性和灵活性。

图2是根据本公开实施例提供的一种数据处理方法的流程图。本公开实施例在上述实施例的基础上,进一步对如何根据量化处理结果,确定目标量化网络层的输出特征进行详细解释说明,如图2所示,本实施例提供的数据处理方法可以包括:

S201,获取目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵。

其中,特征矩阵的列数等于权重矩阵的行数。

S202,根据目标量化网络层的目标分段系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段,以及将权重矩阵的每一列权重元素划分为至少两个权重元素子段。

S203,根据目标量化网络层的目标量化比特数,对至少两个特征元素子段和至少两个权重元素子段进行量化处理。

S204,确定特征矩阵中的每一特征元素子段,在权重矩阵中对应的权重元素子段,并将具有对应关系的特征元素子段和权重元素子段作为一组关联子段对。

可选的,本实施例中特征矩阵的每一特征元素子段,其在权重矩阵的每一列中有对应有权重元素子段,具体的,以确定特征矩阵中第i行第s个特征元素子段对应的权重元素子段为例,依次针对权重矩阵的每一列执行如下操作:根据该特征元素子段中的各特征元素在第i行的位置,选择权重矩阵的每一列中同样位置的权重元素所在的权重元素子段,作为该特征元素子段在权重矩阵的每一列对应的权重元素子段。

示例性的,特征矩阵I为

若C1=C2=4,则确定特征矩阵I中第1行的特征元素子段1(I

若C1=4,C2=2,则确定特征矩阵I中第1行的特征元素子段1(I

若C1=2,C2=4,则确定特征矩阵I中第1行的特征元素子段1(I

可选的,本实施例在确定出具有对应关系的特征元素子段和权重元素子段后,可以针对特征矩阵I中的每一行,分析该行中的各特征元素子段,与权重矩阵的每一列的各权重元素子段之间的对应关系,并将特征矩阵I中该行与权重矩阵的每一列,具有对应关系的特征元素子段和权重元素子段均作为一组关联子段对。

示例性的,针对特征矩阵I和权重矩阵W,若C1=C2=4,则特征矩阵I的第一行,与权重矩阵W的第一列之间存在两组关联子段对,即特征元素子段1(I

可选的,在本实施例中,每组关联子段对中包含的特征元素子段和权重元素子段的数量比值,与划分权重矩阵和特征矩阵的分段系数的比值相同。即针对每组关联子段对,其中包含的特征元素子段的数量/权重元素子段的数量=划分权重矩阵的第一系数/划分特征矩阵的第二系数。

S205,根据每组关联子段对中的特征元素子段和权重元素子段的量化处理结果,确定目标量化网络层的输出特征。

可选的,本实施例可以先根据每组关联子段对中的特征元素子段的特征基准值和特征元素的量化值,以及权重元素子段的权重基准值和权重元素的量化值,将位置相对应的特征元素的量化值和权重元素的量化值求低比特乘积后求和,再将乘积求和结果与特征基准值和权重基准值求乘积,得到该组关联子段对的子内积。其中,若特征元素所在列数,与权重元素所在行数相同,则该特征元素与权重元素的位置对应。

示例性的,若划分特征矩阵I和权重矩阵W的目标分段系数相同,即C1=C2=C,则可以通过如下公式(3)计算各组关联子段对的子内积。

其中,O

在按照上述方式确定出每组关联子段对的子内积后,根据各组关联子段对的子内积,确定目标量化网络层的输出特征。具体的,可以是在特征矩阵中对应行数和在权重矩阵中对应列数相同的各组关联子段对的子内积求和,得到输出特征中该对应行和对应列位置处的元素值。

其中,O

本公开实施例的方案,获取目标量化网络层输入的特征矩阵和该目标量化网络层的权重矩阵后,基于目标分段系数,分别将特征矩阵的每一行和权重矩阵的每一列划分为至少两个权重元素子段,进而根据目标量化比特数,对划分后的特征元素子段和权重元素子段进行量化处理,并确定出具有对应关系的特征元素子段和权重元素子段作为一组关联子段对,根据每组关联子段对中特征元素子段和权重元素子段的量化处理结果,确定目标量化网络层的输出特征。本方案在根据特征元素子段和权重元素子段确定目标量化网络层的输出特征时,先确定特征元素子段和权重元素子段之间的对应关系,基于该对应关系,能够更为精准且快速的确定出输出特征,进而保证了目标量化网络层运算结果的准确性。

可选的,由于低比特的矩阵乘法是上述介绍的数据处理方法的计算核心,且目前纳斯达克(NVIDIA)公司研发的图形处理器(graphics processing unit,GPU)对低比特乘法有高效的支持,可以实现int4和int1等的低比特乘法运算,所以在上述实施例的基础上,本实施例优选通过NVIDIA公司研发的GPU的张量核Tensor Core计算单元,根据量化处理结果,确定目标量化网络层的输出特征,具体实现方式如下:基于上述实施例的方式得到各特征元素子段和各权重元素子段的量化处理结果后,依次将量化结果加载到Tensor Core计算单元的缓存空间中,然后将缓存空间中的各组关联子段对中包含的特征元素子段的量化结果(即特征基准值和特征元素的量化值)和权重元素子段的量化结果(即权重基准值和权重元素的量化值)作为Tensor Core计算单元的输入,该Tensor Core计算单元即可基于输入的量化结果先提供低比特乘法计算,即将位置相对应的特征元素的量化值和权重元素的量化值求乘积后求和,得到低比特计算结果(如当目标量化比特数为4时,此时得到的低比特计算结果为int32类型的整数结果),然后再进行反量化计算,即将低比特计算结果与特征基准值和权重基准值求乘积,得到各组关联子段对的子内积,该子内积为单精度浮点类型;最后,再根据各组关联子段对的子内积,确定目标量化网络层的输出特征。

本实施例给出了一种基于NVIDIA公司研发的GPU的Tensor Core计算单元实现本实施例的数据处理方法的优选实例,为后续在定制芯片(如ASIC芯片)上应用该数据处理算法实现对深度学习模型量化提供了技术保障。

需要说明的是,本实施例的上述数据处理方法,依次完成了浮点数量化为低比特整数、低比特矩阵乘法和反量化的过程。由于权重矩阵的数值在整个计算过程中不会发生变化,因此其量化过程可以离线完成,而输入的特征矩阵是需要在线进行量化的。目标量化网络层的目标分段系数C的大小会直接影响量化过程的精度,通常目标分段系数C越大,量化表示的数值精度越低,相应的最终得到的输出特征的精度也会随之降低;而目标分段系数C越小量化表示的数值精度越高,相应的最终得到的输出特征的精度也随之提高。即目标分段系数C影响计算效率。通常其数值越大所需要的指令条数越少,也就是计算耗时越小;反之其越小则计算耗时越大。因此,目标分段系数C是平衡模型精度和速度的关键,具体取值选择需要根据场景需求来定制。

图3是根据本公开实施例提供的一种数据处理方法的流程图。本公开实施例在上述实施例的基础上,进一步对如何确定目标量化网络层、目标量化网络层的目标分段系数和目标量化比特数进行详细解释说明,如图3所示,本实施例提供的数据处理方法可以包括:

S301,确定原始模型的可选量化策略。

其中,原始模型可以是需要进行量化的深度学习模型,其中包含有至少一个能够量化的网络层,即可选量化网络层。该可选量化的网络层中包含有矩阵乘法算子。可选量化策略为对原始模型进行量化时所依据的策略,其中包含:可选量化网络层、可选量化网络层的可选分段系数和可选量化比特数。本实施例的可选量化策略的数量为多个,针对每一可选量化策略,其中都包含有一个可选量化网络层,和该可选量化网络层对应的一组量化配置参数,即可选分段系数和可选量化比特数。需要说明的是,对于不同的可选量化策略,可以是包含的可选量化网络层不同,但不同可选量化网络层对应的可选分段系数和可选量化比特数相同;还可以是包含的可选量化网络层相同,但同一可选量化网络层对应的可选分段系数和/或可选量化比特数不同;也是可以包含的可选量化网络层与可选分段系数和可选量化比特数均不同等,对此不进行限定。

可选的,本实施例确定原始模型的可选量化策略的一种实现方式可以是:先确定出原始模型中包含有矩阵乘法算子的网络层,作为可选量化网络层,然后再根据经验为每一可选量化网络层配置至少一种可选分段系数和可选量化比特数;然后依次将每一可选量化网络层与其对应的每一种可选分段系数和可选量化比特数作为原始模型的一个可选量化策略。

另一种可实现方式为:先确定出原始模型中包含有矩阵乘法算子的网络层,作为可选量化网络层,然后针对每一可选量化网络层,从预先确定的备选量化分段系数集合中随机抽取分段系数,从备选量化比特数集合中随机抽取量化比特数,然后与可选量化网络层进行随机组合,得到多个可选量化策略。

S302,获取原始模型基于可选量化策略执行数据处理,得到的可选量化策略的量化贡献信息。

其中,本实施例的量化贡献信息是指可选量化策略对原始模型量化效果的贡献程度,其具体可以包括:模型精度信息和压缩体积信息。其中,模型精度信息是基于该可选量化策略对原始模型进行量化处理后,模型的精度值。压缩体积信息是基于该可选量化策略对原始模型进行量化处理后,模型体积相比于量化之前,压缩的体积值。

可选的,本实施例可以是针对获取的每一可选量化策略,基于该可选量化策略对原始模型进行量化,具体的,在原始模型中找到该可选量化策略对应的可选量化网络层,然后将该可选量化网络层的可选分段系数和可选量化比特数,赋值到原始模型中该可选量化网络层的量化参数中,然后将原始模型的验证数据集输入到原始模型中,该原始模型中的各网络层会基于其网络参数进行数据处理,得到对应的输出结果,本实施例主要获取的是可选量化网络层输出的结果,即测试输出特征;将该测试输出特征与可选量化网络层基于可选分段系数和可选量化比特数进行量化处理前的真实输出特征进行误差分析,得到该可选量化策略对应的量化贡献信息中的模型精度值。然后再根据该可选量化策略中的可选量化比特数确定该可选量化策略对应的量化贡献信息中的压缩体积信息。

需要说明的是,本实施例中,赋值了可选分段系数和可选量化比特数的可选量化网络层在根据其输入的特征矩阵和自身的权重矩阵,确定测试输出特征的方式可参考上述实施例介绍的内容,在此不进行赘述。

S303,根据量化贡献信息,从可选量化策略中确定目标量化策略,以得到目标量化网络层、目标量化网络层的目标分段系数和目标量化比特数。

可选的,本实施例根据量化贡献信息,从可选量化策略中确定目标量化策略的方式可以是同时权衡模型精度信息和压缩体积信息,选择模型精度损失相对小,且压缩体积相对大的可选量化策略作为目标量化策略。例如,一种可实现方式为:先根据量化贡献信息中的模型精度信息,选择出模型精度损失在可接受范围内的可选量化策略,然后再判断选出的这部分可选量化策略对应的压缩体积,将压缩体积排名靠前的至少一个作为目标量化策略。

另一种可实现方式为:根据量化贡献信息中的模型精度信息,将各可选量化策略按照模型精度从高到低的顺序进行排序,然后再根据各量化贡献信息中的压缩体积信息和预期压缩体积,按照排序从高到低的顺序,从可选量化策略中确定目标量化策略。例如,判断排序靠前的哪些可选量化策略对应的压缩体积信息的总和能够达到预期压缩体积,则将这些可选量化策略作为目标量化策略。

本实施例在确定出目标量化策略后,可以依次基于每一目标量化策中对应的目标量化网络层及其对应的目标分段系数和目标量化比特数,执行后续的数据处理操作。从而实现对原始模型中的目标量化网络层的运算过程进行量化处理,进而达到对原始模型进行量化的效果。

S304,获取目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵。

其中,特征矩阵的列数等于权重矩阵的行数。

S305,根据目标量化网络层的目标分段系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段,以及将权重矩阵的每一列权重元素划分为至少两个权重元素子段。

S306,根据目标量化网络层的目标量化比特数,对至少两个特征元素子段和至少两个权重元素子段进行量化处理,并根据量化处理结果,确定目标量化网络层的输出特征。

本公开实施例的方案,确定原始模型的可选量化策略后,控制原始模型基于可选量化策略执行数据处理,并根据处理结果确定可选量化策略的量化贡献信息,根据各可选量化策略的量化贡献信息,确定目标量化策略,进而根据目标量化策略中的目标分段系数和目标量化比特数对目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵进行处理,得到输出特征。本方案基于多个可选量化策略的量化贡献信息来确定模型的最终量化策略,在保证了模型量化精度的同时,降低了模型体积,进而提高了模型量化的精度。

图4是根据本公开实施例提供的一种数据处理方法的流程图。本公开实施例在上述实施例的基础上,进一步对如何根据量化贡献信息,从可选量化策略中确定目标量化策略进行详细解释说明,如图4所示,本实施例提供的数据处理方法可以包括:

S401,确定原始模型的可选量化策略。

其中,可选量化策略包括:可选量化网络层、可选量化网络层的可选分段系数和可选量化比特数。

S402,获取原始模型基于可选量化策略执行数据处理,得到的可选量化策略的量化贡献信息。

S403,根据可选量化策略对应的量化贡献信息,从可选量化策略中确定新增选定量化策略。

需要说明的是,本实施例在从可选量化策略中确目标量化策略时,是通过多次筛选确定,即每次筛选出一部分,将多次筛选出的所有可选量化策略作为目标量化策略,而对于当前次筛选出的那部分可选量化策略,将其作为新增选定量化策略,对于当前次之前筛选出的那部分可选量化策略作为历史选定量化策略。

可选的,本实施例根据可选量化策略对应的量化贡献信息,从可选量化策略中确定新增选定量化策略的一种可实现方式为:同时结合模型精度信息和压缩体积信息,每次从可选量化策略中选择精度损失较小且压缩体积较大的预设个数(如3个)的可选量化策略作为新增选定量化策略。

另一种可实现方式为:根据可选量化策略对应的模型精度信息和压缩体积信息,对可选量化策略进行排序;根据排序结果和可选量化策略对应的压缩体积信息,从可选量化策略中确定新增选定量化策略。具体的,根据当前的原始模型的模型体积L和期望压缩体积R,计算本次筛选压缩体积R',其中R'=(L-R)/2。然后将各可选量化策略按照其对应的模型精度从高到低的顺序进行排序,判断排序靠前的哪些可选量化策略对应的压缩体积信息的总和能够达到本次筛选压缩体积,则将这些可选量化策略作为本次的新增选定量化策略。其中,所述L、R和R'的取值为正数;

本实施例优选采用第二种方式来确定新增选定量化策略,该方式能够更快且更精准的选出满足量化精度和量化体积要求的目标量化策略。

S404,确定新增选定策略和历史选定量化策略的总压缩体积。

可选的,本实施例每次确定出新增选定策略后,都会根据新增选定策略对应的量化贡献信息中的压缩体积信息,和之前确定的各历史选定策略对应的量化贡献信息中的压缩体积信息,计算新增选定策略和历史选定策略对原始模型的总压缩体积。如,将新增选定策略对应的压缩体积与历史选定策略对应的压缩体积求和得到总压缩体积。

S405,判断总压缩体积是否达到量化要求,若否,则执行S406,若是,则执行S409。

可选的,该量化要求可以是预先设置的预期压缩体积。本实施例可以在每次确定出一部分新增选定策略后,判断一次当前已经达到的总压缩体积是否达到预期压缩体积,即是否达到量化要求,若否,则说明没有达到量化要求,需要执行后续406的操作,若是,则说明达到量化要求,执行后续S409的操作。

S406,在总压缩体积未达到量化要求的情况下,基于新增选定量化策略对原始模型进行初步量化,并训练初步量化后的原始模型,得到初步量化模型。

可选的,若S405判断总压缩体积未达到量化要求,即未达到预期压缩体积,则基于新增量化策略中的可选量化网络层及其可选分段系数和可选量化比特数,对原始模型中对应的可选量化网络层进行量化参数赋值,即实现对原始模型的初步量化。然后采用训练样本对初步量化后的原始模型进行模型训练,如可以包括前向训练和反向训练两部分。以得到初步量化模型。

S407,将新增选定量化策略添加到历史选定量化策略。

S408,将可选量化策略中除新增选定量化策略之外的其他可选量化策略作为新的可选量化策略,将新增选定量化策略添加到历史选定量化策略中,以及将初步量化模型作为原始模型,返回执行S402的操作。

S409,在总压缩体积达到量化要求的情况下,将新增选定量化策略和历史选定量化策略作为目标量化策略,以得到目标量化网络层、目标量化网络层的目标分段系数和目标量化比特数。

S410,获取目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵。

其中,特征矩阵的列数等于权重矩阵的行数。

S411,根据目标量化网络层的目标分段系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段,以及将权重矩阵的每一列权重元素划分为至少两个权重元素子段。

S412,根据目标量化网络层的目标量化比特数,对至少两个特征元素子段和至少两个权重元素子段进行量化处理,并根据量化处理结果,确定目标量化网络层的输出特征。

本公开实施例的方案,确定原始模型的可选量化策略后,控制原始模型基于可选量化策略执行数据处理,并根据处理结果确定可选量化策略的量化贡献信息,根据各可选量化策略的量化贡献信息,分批次从可选量化策略中确定新增选定量化策略,若新增和历史选定量化策略的总压缩体积未达到量化策略时,则基于新增选定量化策略对原始模型进行量化和训练后,再返回重新执行确定可选量化策略的量化贡献信息及其后续操作,直到新增和历史选定量化策略的总压缩体积达到量化策略为止,然后将新增和历史选定量化策略作为目标量化策略,进而根据目标量化策略中的目标分段系数和目标量化比特数对目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵进行处理,得到输出特征。本方案分批次获取目标量化策略,且两两批次之间基于新选定量化策略进行原始模型的量化和训练处理,极大的保证了提取到的目标量化策略的精准性,进而保证了模型量化的精度。

图5是根据本公开实施例提供的一种数据处理装置的结构示意图,本公开实施例适用于对深度学习模型中目标量化网络层的数据计算过程进行量化处理的情况,具体适用于对深度学习模型中的目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵进行处理,得到该目标网络层的输出特征的情况。该装置可以配置于安装有深度学习模型的电子设备中,采用软件和/或硬件来实现,该装置可以实现本公开任意实施例的数据处理方法。如图5所示,该数据处理装置500包括:

矩阵获取模块501,用于获取目标量化网络层输入的特征矩阵和目标量化网络层的权重矩阵;其中,特征矩阵的列数等于权重矩阵的行数;

矩阵分段模块502,用于根据目标量化网络层的目标分段系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段,以及将权重矩阵的每一列权重元素划分为至少两个权重元素子段;

量化处理模块503,用于根据目标量化网络层的目标量化比特数,对至少两个特征元素子段和至少两个权重元素子段进行量化处理;

特征确定模块504,用于根据量化处理结果,确定目标量化网络层的输出特征。

本公开实施例的方案,获取目标量化网络层输入的特征矩阵和该目标量化网络层的权重矩阵后,基于目标分段系数,分别将特征矩阵的每一行和权重矩阵的每一列划分为至少两个权重元素子段,进而根据目标量化比特数,对划分后的特征元素子段和权重元素子段进行量化处理,并根据处理结果,确定目标量化网络层的输出特征。本方案通过引入目标分段系数,将特征矩阵的每一行和权重矩阵的每一列划分为多个子段进行量化,在达到低比特量化矩阵乘法的同时,还保证了低比特矩阵乘法量化的精准性,即能够在尽可能保证模型精度的同时,压缩模型体积,提高模型运行速度,从而降低人工智能技术落地成本。

进一步的,矩阵分段模块502,具体用于:

根据目标量化网络层的目标分段系数中的第一系数,将特征矩阵的每一行特征元素划分为至少两个特征元素子段;

根据目标分段系数中的第二系数,将权重矩阵的每一列权重元素划分为至少两个权重元素子段;

其中,第一系数和第二系数成整数倍关系。

进一步的,特征确定模块504,包括:

子段对确定单元,用于确定特征矩阵中的每一特征元素子段,在权重矩阵中对应的权重元素子段,并将具有对应关系的特征元素子段和权重元素子段作为一组关联子段对;

特征计算单元,用于根据每组关联子段对中的特征元素子段和权重元素子段的量化处理结果,确定目标量化网络层的输出特征。

进一步的,每组关联子段对中包含的特征元素子段和权重元素子段的数量比值,与划分权重矩阵和特征矩阵的分段系数的比值相同。

进一步的,特征确定模块504,具体用于:

通过图形处理器GPU的张量核Tensor Core计算单元,根据量化处理结果,确定目标量化网络层的输出特征。

进一步的,特征矩阵是语音片段经特征提取层处理后得到的语音特征;输出特征用于对语音片段进行语义识别处理。

进一步的,该数据处理装置500,还包括:

可选策略确定模块,用于确定原始模型的可选量化策略;其中,可选量化策略包括:可选量化网络层、可选量化网络层的可选分段系数和可选量化比特数;

贡献信息获取模块,用于获取原始模型基于可选量化策略执行数据处理,得到的可选量化策略的量化贡献信息;

目标策略确定模块,用于根据量化贡献信息,从可选量化策略中确定目标量化策略,以得到目标量化网络层、目标量化网络层的目标分段系数和目标量化比特数。

进一步的,目标策略确定模块,包括:

新增策略确定单元,用于根据可选量化策略对应的量化贡献信息,从可选量化策略中确定新增选定量化策略;

压缩体积确定单元,用于确定新增选定策略和历史选定量化策略的总压缩体积;

目标策略确定单元,用于在总压缩体积达到量化要求的情况下,则将新增选定量化策略和历史选定量化策略作为目标量化策略。

进一步的,量化贡献信息包括:模型精度信息和压缩体积信息;

新增策略确定单元,具体用于:

根据可选量化策略对应的模型精度信息和压缩体积信息,对可选量化策略进行排序;

根据排序结果和可选量化策略对应的压缩体积信息,从可选量化策略中确定新增选定量化策略。

进一步的,目标策略确定模块,还包括:

量化训练单元,用于在总压缩体积未达到量化要求的情况下,则基于新增选定量化策略对原始模型进行初步量化,并训练初步量化后的原始模型,得到初步量化模型;

历史量化策略更新单元,用于将新增选定量化策略添加到历史选定量化策略;

循环操作单元,用于将可选量化策略中除新增选定量化策略之外的其他可选量化策略作为新的可选量化策略,并将初步量化模型作为原始模型,返回执行获取原始模型基于可选量化策略执行数据处理,得到的可选量化策略的量化贡献信息的操作。

上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

本公开的技术方案中,所涉及的特征矩阵、权重矩阵、输出特征、语音片段等的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如数据处理方法。例如,在一些实施例中,数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。

云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术分类

06120114702972