模型稀疏化方法、装置及电子设备与流程
未命名
08-06
阅读:120
评论:0
1.本公开涉及计算机技术领域,尤其涉及一种模型稀疏化方法、装置及电子设备。
背景技术:
2.模型稀疏化通过裁剪神经网络模型中的冗余参数,在保证模型精度几乎无损的情况下,减少了模型的大小和计算量,加速模型在设备上的部署。模型稀疏化方法分为结构化稀疏和非结构化稀疏两种方式,当模型稀疏度较高时,为了保证精度几乎无损,通常采用非结构化稀疏方式。模型量化将浮点数以特定的处理方式映射到对应的整数域上,从而减少了模型的大小并提升了在硬件设备上的推理速度。模型量化方式根据训练方式的不同,通常分为训练中量化和训练后量化两种方式,当目标比特数比较低时,通常选用训练中量化方式。
3.现有的模型稀疏化方法,通常需要额外的硬件支持。特别的,使用非结构化稀疏方法虽然能够达到较高的模型稀疏度,但由于其模型权重非零值排布的不规则性,很难达到较好的实际加速效果。而现有的模型量化方式,为了达到较好的加速效果,需要较低的目标比特数,但通常会带来较大的计算误差,从而导致模型精度损失较大。
技术实现要素:
4.本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
5.为此,本公开的一个目的在于提出一种模型稀疏化方法。
6.本公开的第二个目的在于提出一种模型稀疏化装置。
7.本公开的第三个目的在于提出一种电子设备。
8.本公开的第四个目的在于提出一种非瞬时计算机可读存储介质。
9.本公开的第五个目的在于提出一种计算机程序产品。
10.为达上述目的,本公开第一方面实施方式提出了一种模型稀疏化方法,包括:获取第一模型和训练样本集,以及所述训练样本集的第一标签;对所述第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型;将所述训练样本集输入至所述第二模型中,并将输出结果作为所述训练样本集的第二标签;将所述训练样本集输入至所述第三模型中,并基于所述第三模型的输出结果、所述第一标签和所述第二标签对所述第三模型进行训练,以获取训练完成的第三模型。
11.根据本公开的一个实施方式,所述基于所述第三模型的输出结果、所述第一标签和所述第二标签对所述第三模型进行训练,包括:获取损失函数;基于所述第三模型的输出结果和所述第一标签,通过所述损失函数计算第一损失值;以及基于所述第三模型的输出结果和所述第二标签,通过所述损失函数计算第二损失值;基于所述第一损失值和所述第二损失值确定目标损失值,并基于所述目标损失值对所述第三模型进行训练。
12.根据本公开的一个实施方式,所述基于所述第一损失值和所述第二损失值确定目标损失值,包括:获取第一损失值的第一权重,以及所述第二损失值的第二权重;将所述第
一损失值与所述第一权重相乘确定第一参数,以及将所述第二损失值与所述第二权重相乘确定第二参数;将所述第一参数与所述第二参数的和作为所述目标损失值。
13.根据本公开的一个实施方式,所述基于所述目标损失值对所述第三模型进行训练,包括:将所述目标损失值与损失阈值进行比较;所述目标损失值大于所述损失阈值,则对所述第三模型的模型参数进行调整,直至所述第三模型的损失值不大于所述损失阈值。
14.根据本公开的一个实施方式,所述第一模型包括多个权重单元,对所述第一模型进行稀疏化,生成所述第二模型,包括:获取目标压缩率和所有所述权重单元的冗余度;基于所述冗余度,对所有所述权重单元进行从大至小的排序;基于所述目标压缩率,从所有所述权重单元中选取排序靠前的目标权重单元,并基于所述目标权重单元生成所述第二模型。
15.根据本公开的一个实施方式,所述权重单元的冗余度为所述权重单元的权重值的绝对值。
16.根据本公开的一个实施方式,所述将所述训练样本集输入至所述第二模型前,还包括:获取所述训练样本集输入至所述第一模型的损失值;获取所述训练样本集输入至所述第二模型的损失值;基于所述第二模型的损失值对所述第二模型的参数进行调整,直至所述第二模型的损失值与所述第一模型的损失值相同。
17.根据本公开的一个实施方式,对所述第一模型进行低比特量化,生成所述第三模型,包括:获取目标压缩率;基于低比特在线量化训练方法对所述第一模型进行低比特量化,直至模型的压缩率为所述目标压缩率,输出所述第三模型。
18.为达上述目的,本公开第二方面实施例提出了一种模型稀疏化装置,包括:获取模块,用于获取第一模型和训练样本集,以及所述训练样本集的第一标签;生成模块,用于对所述第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型;处理模块,用于将所述训练样本集输入至所述第二模型中,并将输出结果作为所述训练样本集的第二标签;训练模块,用于将所述训练样本集输入至所述第三模型中,并基于所述第三模型的输出结果、所述第一标签和所述第二标签对所述第三模型进行训练,以获取训练完成的第三模型。
19.为达上述目的,本公开第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以实现如本公开第一方面实施例所述的模型稀疏化方法。
20.为达上述目的,本公开第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于实现如本公开第一方面实施例所述的模型稀疏化方法。
21.为达上述目的,本公开第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时用于实现如本公开第一方面实施例所述的模型稀疏化方法。
22.通过对模型进行稀疏化和量化,基于稀疏化的模型获取训练样本集的第二标签,并基于训练样本集的第一标签和第二标签对量化的模型进行训练,以此可以通过第二标签能更好地接近量化模型的表达能力的特性,保证最终训练完成的模型的精度,同时可以保
证最终生成的模型在硬件设备上的推理速度。
附图说明
23.图1是本公开一个实施方式的一种模型稀疏化方法的示意图;
24.图2是本公开一个实施方式的另一种模型稀疏化方法的示意图;
25.图3是本公开一个实施方式的另一种模型稀疏化方法的示意图;
26.图4是本公开一个实施方式的另一种模型稀疏化方法的示意图;
27.图5是本公开一个实施方式的一种模型稀疏化装置的示意图;
28.图6是本公开一个实施方式的一种电子设备的示意图。
具体实施方式
29.下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
30.图1为本公开提出的一种模型稀疏化方法的一种示例性实施方式的示意图,如图1所示,该模型稀疏化方法包括以下步骤:
31.s101,获取第一模型和训练样本集,以及训练样本集的第一标签。
32.本公开实施例的模型稀疏化可应用于模型优化的场景中,本公开实施例的模型稀疏化的执行主体可为本技术实施例的验证装置,该验证装置可以设置在电子设备上。
33.在本公开实时中,第一模型为神经网络模型,该模型的种类可为多种,举例来说,可为文本模型、图像模型等,对应的,训练样本集的种类也可为多种,例如文本训练样本、图像训练样本等,此处不作任何限定,具体可根据实际的设计需要进行限定。
34.需要说明的是,第一模型和训练样本集为提前设定好的,该第一模型可为提前训练好的模型,也可为未训练的模型,此处不作任何限定。
35.训练样本集可包括多个训练样本,每个训练样本对应至少一个第一标签,该第一标签可为多种,此处不作任何限定,举例来说,可为该第一标签可为0、1、2、3
…
n等,也可为a、b、c
…
等。
36.s102,对第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型。
37.在本公开实施例中,模型稀疏化通过裁剪神经网络模型中的冗余参数,在保证模型精度几乎无损的情况下,减少了模型的大小和计算量,加速模型在设备上的部署。模型稀疏化方法分为结构化稀疏和非结构化稀疏两种方式,当模型稀疏度较高时,为了保证精度几乎无损,通常采用非结构化稀疏方式。
38.可选地,可通过预先设定的冗余度,对第一模型中的权重单元进行优化筛选,以获取第二模型。
39.可选地,还可通过将第一模型输入至稀疏化程序中进行处理,以获取第二模型,该稀疏化程序为将第一模型进行稀疏化的程序,为提前设计好的,并可根据实际的设计需要进行变更,此处不作任何限定。
40.在本公开实施例中,低比特量化将浮点数以特定的处理方式映射到对应的整数域
上,从而减少了模型的大小并提升了在硬件设备上的推理速度。模型量化方式可为多种,具体可根据训练方式的不同,此处不作任何限定。举例来说,可分为训练中量化和训练后量化两种方式,当目标比特数比较低时,通常选用训练中量化方式。
41.s103,将训练样本集输入至第二模型中,并将输出结果作为训练样本集的第二标签。
42.在本公开实施例中,在获取到第二模型后,可通过将训练样本集输入至第二模型中,以此,由于第二模型为经过稀疏化得到的模型,相较于第一模型表达空间受限,因此,第二模型的输出结果作为第二标签,也具备稀疏化后的影响。
43.s104,将训练样本集输入至第三模型中,并基于第三模型的输出结果、第一标签和第二标签对第三模型进行训练,以获取训练完成的第三模型。
44.在本公开实施例中,首先获取第一模型和训练样本集,以及训练样本集的第一标签,然后对第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型,而后将训练样本集输入至第二模型中,并将输出结果作为训练样本集的第二标签,最后将训练样本集输入至第三模型中,并基于第三模型的输出结果、第一标签和第二标签对第三模型进行训练,以获取训练完成的第三模型。通过对模型进行稀疏化和量化,基于稀疏化的模型获取训练样本集的第二标签,并基于训练样本集的第一标签和第二标签对量化的模型进行训练,以此可以通过第二标签能更好地接近量化模型的表达能力的特性,保证最终训练完成的模型的精度,同时可以保证最终生成的模型在硬件设备上的推理速度。
45.在本公开实施例中,对第一模型进行低比特量化,生成第三模型,可首先获取目标压缩率,然后基于低比特在线量化训练方法对第一模型进行低比特量化,直至模型的压缩率为目标压缩率,输出第三模型。
46.需要说明的是,目标压缩率为提前设定好的,并可根据实际的设计需要进行变更,此处不作任何限定。
47.在进行低比特量化时,对于模型各层比特数的选定,可选用均匀比特和混合比特两种量化方式中的一种,此处不作任何限定。
48.上述实施例中,基于第三模型的输出结果、第一标签和第二标签对第三模型进行训练,还可通过图2进一步解释,该方法包括:
49.s201,获取损失函数。
50.在本公开实施例中,损失函数可为多种,此处不作任何限定,具体可根据实际的设计需要进行设定。举例来说,该损失函数可为铰链损失函数、交叉熵损失函数和指数损失函数等。
51.在本公开实施例中,在对第一模型、第二模型和第三模型进行确定损失值时,使用的损失函数为同一损失函数,以此,可以保证在对数据进行处理时,数据的准确性和有效性。
52.s202,基于第三模型的输出结果和第一标签,通过损失函数计算第一损失值,以及基于第三模型的输出结果和第二标签,通过损失函数计算第二损失值。
53.s203,基于第一损失值和第二损失值确定目标损失值,并基于目标损失值对第三模型进行训练。
54.在本公开实施例中,可首先获取第一损失值的第一权重,以及第二损失值的第二
权重,然后将第一损失值与第一权重相乘确定第一参数,以及将第二损失值与第二权重相乘确定第二参数,最后将第一参数与第二参数的和作为目标损失值,可通过如下公式进行计算。
55.loss=a*loss1+b*loss256.其中,loss为目标损失值,a为第一权重,loss1为第一损失值,b为第二权重,loss2为第二损失值。
57.需要说明的是,不同的模型对应的第一损失值的第一权重和第二损失值的第二权重可为不同,此处不作任何限定,具体需要根据实际的设计需要进行设定。举例来说,该第一权重和第二权重可分别为0.5和0.5。
58.在本公开实施例中,首先获取损失函数,然后基于第三模型的输出结果和第一标签,通过损失函数计算第一损失值,以及基于第三模型的输出结果和第二标签,通过损失函数计算第二损失值,最后基于第一损失值和第二损失值确定目标损失值,并基于目标损失值对第三模型进行训练。通过分别计算第一标签和第二标签与输出的结果的损失值,确定目标损失值,并基于目标损失值对第三模型进行训练,以此可以通过控制第一损失值和第二损失值的计算比例,来控制最终生成的第三模型的精度、表达能力和推理速度,提升本公开方法的实用性。
59.基于目标损失值对第三模型进行训练,可首先将目标损失值与损失阈值进行比较,目标损失值大于损失阈值,则对第三模型的模型参数进行调整,直至第三模型的损失值不大于损失阈值。
60.需要说明的是,该损失阈值可为提前设定好的,并可根据实际的实际需要进行变更此处不作任何限定。举例来说,该损失阈值可为0.5,当损失值大于损失阈值时,则认为此时第三模型的输出效果并未达到预期,需要对第三模型的模型参数进行调整,并将训练样本集输入至第三模型中重新输出结果并计算损失值,直至损失值小于或者等于损失阈值。
61.上述实施例中,第一模型包括多个权重单元,对第一模型进行稀疏化,生成第二模型,还可通过图3进一步解释,该方法包括:
62.s301,获取目标压缩率和所有权重单元的冗余度。
63.在本公开实施例中,权重单元的冗余度为权重单元的权重值的绝对值,不同的权重单元的冗余度可为不同,此处不作任何限定。
64.目标压缩率为提前设定好的,并可根据实际的设计需要进行变更,此处不作任何限定。
65.s302,基于冗余度,对所有权重单元进行从大至小的排序。
66.s303,基于目标压缩率,从所有权重单元中选取排序靠前的目标权重单元,并基于目标权重单元生成第二模型。
67.在本公开实施例中,在获取大冗余度后,可通过冗余度权重单元进行从大至小的排序,并选取排名高的目标权重单元,生成第二模型。
68.在本公开实施例中,在获取到第二模型后,为了使第二模型的输出结果与第一模型输出结果能够在同一层面进行处理,需要对第二模型进行精度的调整,以实现第二模型和第一模型的模型精度相同。将训练样本集输入至第二模型前,还可通过图4进一步解释,该方法包括:
69.s401,获取训练样本集输入至第一模型的损失值。
70.s402,获取训练样本集输入至第二模型的损失值。
71.s403,基于第二模型的损失值对第二模型的参数进行调整,直至第二模型的损失值与第一模型的损失值相同。
72.需要说明的是,为了保证第一模型的模型精度和第二模型的模型精度相同,在获取第一模型的损失值和第二模型的损失值时,输入的训练样本、训练时间、损失函数等因素需要完全相同,在此条件下,当第二模型的损失值与第一模型的损失值相同时,则可认为二者的模型精度为相同的。
73.与上述几种实施例提供的模型稀疏化方法相对应,本公开的一个实施例还提供了一种模型稀疏化装置,由于本公开实施例提供的模型稀疏化装置与上述几种实施例提供的模型稀疏化方法相对应,因此上述模型稀疏化方法的实施方式也适用于本公开实施例提供的模型稀疏化装置,在下述实施例中不再详细描述。
74.图5为本公开提出的一种模型稀疏化装置的示意图,如图5所示,该模型稀疏化装置500,包括:获取模块510、生成模块520、处理模块530和训练模块540。
75.其中,获取模块510,用于获取第一模型和训练样本集,以及训练样本集的第一标签。
76.生成模块520,用于对第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型。
77.处理模块530,用于将训练样本集输入至第二模型中,并将输出结果作为训练样本集的第二标签。
78.训练模块540,用于将训练样本集输入至第三模型中,并基于第三模型的输出结果、第一标签和第二标签对第三模型进行训练,以获取训练完成的第三模型。
79.通过对模型进行稀疏化和量化,基于稀疏化的模型获取训练样本集的第二标签,并基于训练样本集的第一标签和第二标签对量化的模型进行训练,以此可以通过第二标签能更好地接近量化模型的表达能力的特性,保证最终训练完成的模型的精度,同时可以保证最终生成的模型在硬件设备上的推理速度。
80.为了实现上述实施例,本公开实施例还提出一种电子设备600,如图6所示,该电子设备600包括:处理器601和处理器通信连接的存储器602,存储器602存储有可被至少一个处理器执行的指令,指令被至少一个处理器601执行,以实现如本公开第一方面实施例的模型稀疏化方法。
81.为了实现上述实施例,本公开实施例还提出一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机实现如本公开第一方面实施例的模型稀疏化方法。
82.为了实现上述实施例,本公开实施例还提出一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如本公开第一方面实施例的模型稀疏化方法。
83.在本公开的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必
须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。
84.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
85.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
86.尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
技术特征:
1.一种模型稀疏化方法,其特征在于,包括:获取第一模型和训练样本集,以及所述训练样本集的第一标签;对所述第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型;将所述训练样本集输入至所述第二模型中,并将输出结果作为所述训练样本集的第二标签;将所述训练样本集输入至所述第三模型中,并基于所述第三模型的输出结果、所述第一标签和所述第二标签对所述第三模型进行训练,以获取训练完成的第三模型。2.根据权利要求1所述的方法,其特征在于,所述基于所述第三模型的输出结果、所述第一标签和所述第二标签对所述第三模型进行训练,包括:获取损失函数;基于所述第三模型的输出结果和所述第一标签,通过所述损失函数计算第一损失值;以及基于所述第三模型的输出结果和所述第二标签,通过所述损失函数计算第二损失值;基于所述第一损失值和所述第二损失值确定目标损失值,并基于所述目标损失值对所述第三模型进行训练。3.根据权利要求2所述的方法,其特征在于,所述基于所述第一损失值和所述第二损失值确定目标损失值,包括:获取第一损失值的第一权重,以及所述第二损失值的第二权重;将所述第一损失值与所述第一权重相乘确定第一参数,以及将所述第二损失值与所述第二权重相乘确定第二参数;将所述第一参数与所述第二参数的和作为所述目标损失值。4.根据权利要求3所述的方法,其特征在于,所述基于所述目标损失值对所述第三模型进行训练,包括:将所述目标损失值与损失阈值进行比较;所述目标损失值大于所述损失阈值,则对所述第三模型的模型参数进行调整,直至所述第三模型的损失值不大于所述损失阈值。5.根据权利要求4所述的方法,其特征在于,所述第一模型包括多个权重单元,对所述第一模型进行稀疏化,生成所述第二模型,包括:获取目标压缩率和所有所述权重单元的冗余度;基于所述冗余度,对所有所述权重单元进行从大至小的排序;基于所述目标压缩率,从所有所述权重单元中选取排序靠前的目标权重单元,并基于所述目标权重单元生成所述第二模型。6.根据权利要求5所述的方法,其特征在于,所述权重单元的冗余度为所述权重单元的权重值的绝对值。7.根据权利要求5所述的方法,其特征在于,所述将所述训练样本集输入至所述第二模型前,还包括:获取所述训练样本集输入至所述第一模型的损失值;获取所述训练样本集输入至所述第二模型的损失值;基于所述第二模型的损失值对所述第二模型的参数进行调整,直至所述第二模型的损
失值与所述第一模型的损失值相同。8.根据权利要求1-7任一项所述的方法,其特征在于,对所述第一模型进行低比特量化,生成所述第三模型,包括:获取目标压缩率;基于低比特在线量化训练方法对所述第一模型进行低比特量化,直至模型的压缩率为所述目标压缩率,输出所述第三模型。9.一种模型稀疏化装置,其特征在于,包括:获取模块,用于获取第一模型和训练样本集,以及所述训练样本集的第一标签;生成模块,用于对所述第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型;处理模块,用于将所述训练样本集输入至所述第二模型中,并将输出结果作为所述训练样本集的第二标签;训练模块,用于将所述训练样本集输入至所述第三模型中,并基于所述第三模型的输出结果、所述第一标签和所述第二标签对所述第三模型进行训练,以获取训练完成的第三模型。10.一种电子设备,其特征在于,包括存储器、处理器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-8中任一项所述的方法。11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
技术总结
本公开提出了一种模型稀疏化方法、装置及电子设备,涉及计算机技术领域,该方法包括:获取第一模型和训练样本集,以及第一标签;对第一模型分别进行稀疏化和低比特量化,以分别生成第二模型和第三模型;将训练样本集输入至第二模型中,获取第二标签;将训练样本集输入至第三模型中,并基于输出结果、第一标签和第二标签对第三模型进行训练,以获取第三模型。通过对模型进行稀疏化和量化,基于稀疏化的模型获取第二标签,并基于训练样本集的第一标签和第二标签对量化的模型进行训练,以此可以通过第二标签能更好地接近量化模型的表达能力的特性,保证最终训练完成的模型的精度,同时可以保证最终生成的模型在硬件设备上的推理速度。度。度。
技术研发人员:刘建伟
受保护的技术使用者:杭州爱芯元智科技有限公司
技术研发日:2023.03.27
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
