分布式部署模型的量化方法、装置、设备和介质制造方法及图纸

技术编号:38808527 阅读:10 留言:0更新日期:2023-09-15 19:47
本公开提供了一种分布式部署模型的量化方法、装置、设备和介质,涉及人工智能领域,具体涉及深度学习、分布式训练和模型量化等技术领域。分布式部署模型的量化方法的具体实现方案为:对于部署的模型所包括的多个网络层,确定根据第一量化精度量化多个网络层中每个网络层的损失值,作为每个网络层的量化损失值;将多个网络层的量化损失值发送给分布式部署模型的多个计算节点中的目标节点,以使所述目标节点根据接收的量化损失值确定多个网络层中的目标网络层;以及根据第一量化精度量化目标网络层的网络参数。标网络层的网络参数。标网络层的网络参数。

【技术实现步骤摘要】
分布式部署模型的量化方法、装置、设备和介质


[0001]本公开涉及人工智能领域,具体涉及深度学习、分布式训练和模型量化等
,尤其涉及一种分布式部署模型的量化方法、装置、设备和介质。

技术介绍

[0002]随着计算机技术和网络技术的发展,神经网络模型的应用越来越广泛,与此同时,也对神经网络模型的精度提出越来越高的要求。为了满足精度要求,神经网络模型通常具有大规模的参数量,对存储空间和计算资源的需求均较大,这给神经网络模型的部署和应用带来了巨大挑战。
[0003]为了应对该巨大挑战,多种压缩模型的方法应运而生。但模型的压缩不可避免的会带来模型精度的损失。

技术实现思路

[0004]本公开旨在提供一种分布式部署模型的量化方法、装置、设备和介质,以提高量化得到的模型的精度。
[0005]根据本公开的第一个方面,提供了一种分布式部署模型的量化方法,包括:对于部署的模型所包括的多个网络层,确定根据第一量化精度量化多个网络层中每个网络层的损失值,作为每个网络层的量化损失值;将多个网络层的量化损失值发送给分布式部署模型的多个计算节点中的目标节点,以使所述目标节点根据接收的量化损失值确定多个网络层中的目标网络层;以及根据第一量化精度量化目标网络层的网络参数。
[0006]根据本公开的第二个方面,提供了一种分布式部署模型的量化装置,包括:第一损失确定模块,用于对于部署的模型所包括的多个网络层,确定根据第一量化精度量化多个网络层中每个网络层的损失值,作为每个网络层的量化损失值;第一损失发送模块,用于将多个网络层的量化损失值发送给分布式部署模型的多个计算节点中的目标节点,以使所述目标节点根据接收的量化损失值确定多个网络层中的目标网络层;参数量化模块,用于根据第一量化精度量化目标网络层的网络参数。
[0007]根据本公开的第三个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的分布式部署模型的量化方法。
[0008]根据本公开的第四个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的分布式部署模型的量化方法。
[0009]根据本公开的第五个方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令存储于可读存储介质和电子设备其中至少之一上,所述计算机程序/指令在被处理器执行时实现本公开提供的分布式部署模型的量化方法。
[0010]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特
征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0011]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0012]图1是根据本公开实施例的分布式部署模型的量化方法、装置的应用场景示意图;
[0013]图2是根据本公开实施例的分布式部署模型的量化方法的流程示意图;
[0014]图3是根据本公开实施例的确定根据第一量化精度量化每个网络层的损失值的原理示意图;
[0015]图4是根据本公开实施例的分布式部署模型的量化方法的实现原理图;
[0016]图5是根据本公开实施例的确定自注意力层的输入激活值的缩放因子的原理示意图;
[0017]图6是根据本公开实施例的分布式部署模型的量化方法的应用示意图;
[0018]图7是根据本公开实施例的分布式部署模型的量化装置的结构框图;以及
[0019]图8是用来实施本公开实施例的分布式部署模型的量化方法的电子设备的框图。
具体实施方式
[0020]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0021]随着深度学习技术的发展,神经网络模型的参数量越来越大,例如生成式预训练Transformer模型(Generative Pre

Trained Transformer)的最大参数量可以达到上亿级别。如此大规模的模型的部署是一个巨大的挑战,一般需要使用多卡A100的GPU服务器才可以进行该如此大规模模型的分布式部署和应用。
[0022]为了加快该些大规模模型的落地部署,多种压缩模型的方法应运而生。多种压缩模型的方法中,应用最广泛的模型量化方法可以分为量化感知训练(Quantization Aware Training,简称为QAT)方法和训练后量化(Post Training Quantization,简称为PTQ)方法。其中,QAT方法需要对全精度模型进行微调训练,耗时和周期较长。PTQ方法又称为离线量化方法,该方法运行模型前向推理,需要收集待量化层的截断值范围,并根据此截断值来将模型中的相应运算转换成低比特运算,同时模型的网络参数也会转换成低比特参数。采用PTQ方法可以快速的产出量化模型,且由于模型无需训练,因此只需要少量的样本作为校准数据参与量化过程。但PTQ方法会带来模型精度的损失。
[0023]为了解决上述问题,本公开提供了一种分布式部署模型的量化方法、装置、设备和介质。以下先结合图1对本公开提供的方法和装置的应用场景进行描述。
[0024]图1是根据本公开实施例的分布式部署模型的量化方法、装置的应用场景示意图。
[0025]如图1所示,该实施例的应用场景100可以包括分布式系统110,分布式系统110具有多个计算节点111~113,该多个计算节点111~113分布式地部署有包括多个网络层的神经网络模型120。具体地,可以将神经网络模型120的每个网络层切分为多个网络块,并将多个网络块一一对应的部署在多个计算节点111~113上,由多个计算节点111~113对各自部
署的网络块进行训练,得到训练后的神经网络模型。
[0026]在一实施例中,该应用场景100中,还可以包括主节点130,该主节点130可以为分布式系统110中设置的多个计算节点中的任一计算节点,也可以为独立于分布式系统110的节点。该实施例可以经由主节点130与多个计算节点111~113之间的通信交互,确定量化配置信息,并由多个计算节点111~113根据量化配置信息对各自部署的网络块进行量化处理,以实现对训练后的神经网络模型的量化。该实施例可以通过导出量化处理后的网络块,得到预测模型140。
[0027]该预测模型140的网络参数相较于神经网络模型120而言,对计算源和存储空间的需求明显减小。例如,该预测模型140可以部署在计算能力有限的电子设备150中,以由电子设备150采用部署的预测模型140对线上产生的数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式部署模型的量化方法,包括:对于部署的模型所包括的多个网络层,确定根据第一量化精度量化所述多个网络层中每个网络层的损失值,作为所述每个网络层的量化损失值;将所述多个网络层的量化损失值发送给分布式部署模型的多个计算节点中的目标节点,以使所述目标节点根据接收的量化损失值确定所述多个网络层中的目标网络层;以及根据所述第一量化精度量化所述目标网络层的网络参数。2.根据权利要求1所述的方法,其中,所述目标节点为所述多个计算节点中指定的任一节点;所述方法还包括:响应于接收到所述多个计算节点发送的所述多个网络层的量化损失值,确定所述每个网络层的多个量化损失值中的最大值,作为所述每个网络层的目标量化损失值;以及确定所述多个网络层中所述目标量化损失值小于预定损失值的网络层,得到所述目标网络层。3.根据权利要求1所述的方法,其中,确定根据第一量化精度量化所述多个网络层中每个网络层的损失值,作为所述每个网络层的量化损失值包括:确定所述每个网络层包括的网络参数的取值的绝对值;根据所述第一量化精度和所述绝对值中的最大值,确定针对所述每个网络层的网络参数的第一缩放因子;以及确定根据所述第一缩放因子量化所述每个网络层的网络参数的损失值,作为所述每个网络层的量化损失值。4.根据权利要求3所述的方法,其中,所述确定根据所述第一缩放因子量化所述每个网络层的网络参数的损失值,作为所述每个网络层的量化损失值包括:根据所述第一缩放因子预量化所述每个网络层的网络参数,得到预量化后网络层;采用部署的模型对预定校准数据进行处理,得到输入所述每个网络层的输入激活值;采用所述每个网络层对所述输入激活值进行处理,得到第一输出激活值;采用所述预量化后网络层对所述输入激活值进行处理,得到第二输出激活值;以及根据所述第一输出激活值与所述第二输出激活值之间的距离,确定所述每个网络层的量化损失值。5.根据权利要求1所述的方法,还包括:针对所述多个网络层中除所述目标网络层外的其他网络层,根据第二量化精度和所述其他网络层包括的网络参数的取值,确定针对所述其他网络层的网络参数的第二缩放因子;以及根据所述第二缩放因子量化所述其他网络层的网络参数,其中,所述第一量化精度低于所述第二量化精度。6.根据权利要求1所述的方法,还包括:采用部署的模型对N个预定校准数据分别进行处理,得到所述每个网络层的N组输入激活值;根据目标量化精度和所述N组输入激活值中的每组输入激活值,确定针对所述每组输入激活值的缩放因子;以及根据针对所述N组输入激活值的N个缩放因子,确定针对所述每个网络层的输入激活值
的第三缩放因子,其中,所述目标量化精度为确定针对所述每个网络层的网络参数的缩放因子时所依据的量化精度;N为大于1的自然数。7.根据权利要求6所述的方法,其中,所述多个网络层包括自注意力层;所述方法还包括:将针对所述自注意力层的输入激活值的第三缩放因子发送给所述目标节点,以使所述目标节点根据接收的第三缩放因子确定针对所述自注意力层的输入激活值的多个备选缩放因子;响应于接收到所述多个备选缩放因子,确定根据每个备选缩放因子量化所述自注意力层的输入激活值的损失值,作为针对所述每个备选缩放因子的量化损失值;将针对所述每个备选缩放因子的量化损失值发送给所述目标节点,以使所述目标节点确定所述多个备选缩放因子中的目标缩放因子;以及将所述目标缩放因子作为针对所述自注意力层的输入激活值的缩放因子。8.根据权利要求7所述的方法,其中,所述目标节点为所述多个计算节点中指定的任一节点;所述方法还包括:响应于接收到所述多个计算节点发送的多个第三缩放因子,确定所述多个第三缩放因子的取值区间;根据预定取值间隔从所述取值区间中取多个值,作为多个备选缩放因子;将所述多个备选缩放因子发送给所述多个计算节点;响应于接收到所述多个计算节点发送的针对所述每个备选缩放因子的量化损失值,根据针对所述每个备选缩放因子的多个量化损失值,确定针对所述每个备选缩放因子的目标量化损失值;以及确定所述多个备选缩放因子中目标量化损失值最小的备选缩放因子为所述目标缩放因子。9.根据权利要求7所述的方法,其中,确定根据每个备选缩放因子量化所述自注意力层的输入激活值的损失值包括:采用部署的模型对预定校准数据进行处理,得到所述自注意力层的输入激活值;根据所述目标量化精度预量化所述自注意力层的网络参数,得到预量化后自注意力层;采用所述每个备选缩放因子预量化所述自注意力层的输入激活值,得到预量化后激活值;采用所述自注意力层处理所述自注意力层的输入激活值,得到第三输出激活值;采用所述预量化后自注意力层处理所述预量化后激活值,得到第四输出激活值;以及根据所述第三输出激活值和所述第四输出激活值,确定根据每个备选缩放因子量化所述自注意力层的输入激活值的损失值。10.根据权利要求4所述的方法,其中,所述根据所述第一输出激活值与所述第二输出激活值之间的距离,确定所述每个网络层的量化损失值包括:确定所述第一输出激活值与所述第二输出激活值之间的欧式距离及所述第一输出激活值与所述第二输出激活值之间的推土距离;以及
根据所述欧式距离与所述推土距离,确定所述每个网络层的量化损失值。11.一种分布式部署模型的量化装置,包括:第一损失确定模块,用于对于部署的模型所包括的多个网络层,确定根据第一量化精度量化所述多个网络层中每个网络层的损失值,作为所述每个网络层的量化损失值;第一损失发送模块,用于将所述多个网络层的量化损失值发送给分布式部署模型的多个计算节点中的目标节点,以使所述目标节点根据接收的量化损失值确定所述多个网络层中的目标网络层;以及参数量化模块,用于根据所述第一量化精度量化所述目标网络层的网络参数。12.根据权利要求11所述的装置,其中,所述目标节点为所述多个计算节点中指定的任一节点;所述装置还包括:目标损失确定模块,用...

【专利技术属性】
技术研发人员:于广华王豪爽党青青沙燕霖于佃海马艳军
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1