CN115392441A - 量化神经网络模型的片内适配方法、装置、设备及介质 - Google Patents
量化神经网络模型的片内适配方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115392441A CN115392441A CN202211216053.8A CN202211216053A CN115392441A CN 115392441 A CN115392441 A CN 115392441A CN 202211216053 A CN202211216053 A CN 202211216053A CN 115392441 A CN115392441 A CN 115392441A
- Authority
- CN
- China
- Prior art keywords
- target
- neural network
- network model
- node
- shunting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006978 adaptation Effects 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims abstract description 76
- 230000001133 acceleration Effects 0.000 claims abstract description 66
- 238000013139 quantization Methods 0.000 claims description 124
- 238000013473 artificial intelligence Methods 0.000 claims description 90
- 230000006870 function Effects 0.000 claims description 89
- 238000012545 processing Methods 0.000 claims description 46
- 238000010586 diagram Methods 0.000 claims description 35
- 238000012549 training Methods 0.000 claims description 32
- 238000012360 testing method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 238000012821 model calculation Methods 0.000 claims description 7
- 238000012805 post-processing Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 8
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 6
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000010206 sensitivity analysis Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 101100446506 Mus musculus Fgf3 gene Proteins 0.000 description 1
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 description 1
- 101000767160 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) Intracellular protein transport protein USO1 Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Abstract
本发明公开了量化神经网络模型的片内适配方法、装置、介质。该方法包括:获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图;在算子图的各计算节点中,识别量化敏感节点集合并确定设定数量的目标节点;并将各目标节点使用分流网络进行替换,根据目标AI加速芯片内部的多核分布式架构,设置各分流网络的并行度;根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图进行重构得到重构算子图;将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。通过本发明的技术方案,能够在提高量化神经网络模型精度的基础上,将AI加速芯片的计算性能发挥到最优。
Description
技术领域
本发明涉及神经网络模型的片内执行领域,尤其涉及量化神经网络模型的片内适配方法、装置、设备及介质。
背景技术
由于神经网络模型的计算复杂度以及空间存储复杂度对模型的计算与存储有着较高的要求,因此,越来越多的超大模型在部署应用时会存在延时及吞吐率低的问题。
现有技术中,为了有效减少AI(人工智能,Artificial Intelligence)加速芯片的存储数据量,提升AI加速芯片的运行性能,通常采用低比特模型量化的方式进行模型压缩,如采用定点4比特、3比特、2比特甚至1比特,再部署在AI加速芯片上,以解决模型部署应用时存在的延时及吞吐率低的问题。然而,采用低比特量化的方法限制了不同输入的差异化表达,使得神经网络模型的误差增大,降低了神经网络模型的精度,同时,现有的量化部署方式一般均采用静态的量化部署方式,没有实际考虑AI加速芯片的实际的硬件特点。因此,如何有效地修复低比特量化造成的神经网络模型精度损失,以及如何在神经网络模型量化部署后,充分发挥AI加速芯片的计算性能,是目前亟待解决的问题。
发明内容
本发明实施例提供了一种量化神经网络模型的片内适配方法、装置、设备及介质,以实现在提高量化神经网络模型精度的同时,实现量化神经网络模型与所部署AI加速芯片间的精准适配。
根据本发明的一方面,提供了一种量化神经网络模型的片内适配方法,包括:
获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到;
在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点;
在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出;
根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图;
将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
根据本发明的另一方面,提供了一种量化神经网络模型的片内适配装置,该装置包括:
算子图获取模块,用于获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到;
节点确定模块,用于在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点;
后处理模块,用于在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出;
算子图重构模块,用于根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图;
模型再训练模块,用于将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的量化神经网络模型的片内适配方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的量化神经网络模型的片内适配方法。
本发明实施例的技术方案,通过对与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图中的各个节点进行敏感度分析,识别出量化敏感节点集合以及在量化敏感节点集合中确定设定数量的目标节点;进而,将算子图中的各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各分流网络的并行度,之后,根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图进行重构,得到重构算子图,进一步的,将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行,解决了低比特量化造成的神经网络模型精度损失的问题,提高了量化神经网络模型的精度,同时,还可以在提高量化神经网络模型精度的基础上,实现量化神经网络模型在硬件上的最优适配,将AI加速芯片的计算性能发挥到最优。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种量化神经网络模型的片内适配方法的流程图;
图2a是根据本发明实施例二提供的一种量化神经网络模型的片内适配方法的流程图;
图2b是根据本发明实施例二提供的一种TopK机制的分流网络机构示意图;
图2c是根据本发明实施例二提供的一种原始量化重构模型的结构示意图;
图2d是根据本发明实施例二提供的一种原始量化重构模型再训练的流程示意图;
图2e是根据本发明实施例二提供的一种可选的量化神经网络模型的片内适配方法的流程示意图;
图3是根据本发明实施例三提供的一种量化神经网络模型的片内适配装置的结构示意图;
图4是实现本发明实施例的量化神经网络模型的片内适配方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”、“初始”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种量化神经网络模型的片内适配方法的流程图,本实施例可适用于对神经网络模型进行低比特量化的情况,该方法可以由量化神经网络模型的片内适配装置来执行,该量化神经网络模型的片内适配装置可以采用硬件和/或软件的形式实现,该量化神经网络模型的片内适配装置可配置于电子设备中。如图1所示,该方法包括:
S110、获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到。
其中,目标人工智能加速芯片可以指承载量化神经网络模型的人工智能加速芯片。算子图可以指包含量化神经网络模型中的各个算子及各个算子间的连接关系。每个算子用于执行设定的运算逻辑,例如,加法、减法或者卷积等。
其中,量化可以指将原始数据近似为精度变化后的数据的过程,示例性的,某量化标准为将0.3-0.4之间的数据均量化为0.3,则若数据为0.35,对应的量化后的数据为0.3。后训练量化可以指对神经网络模型进行量化训练。目标神经网络模型可以指需要进行后训练量化的神经网络模型,例如密集型神经网络模型(Dense模型)。
S120、在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点。
其中,计算节点是指算子图中用于实现设定数据处理功能的处理单元,可以理解为算子图中包括的计算算子,例如,加法算子或者卷积算子等。其中,每个计算算子都具有设定的权重系数,该权重系数可以在模型训练过程,迭代训练得到。
其中,量化敏感节点可以指对目标神经网络模型的损失函数影响度高的计算节点,即导致目标神经网络模型的损失函数损失严重的计算节点。量化敏感节点集合可以指由量化敏感节点组成的集合。目标节点可以指选定进行后续操作的量化敏感节点,目标节点的数量可以根据实际应用进行选定,示例性的,若量化敏感节点集合中包含十个量化敏感节点,则可以首先选择三个量化敏感节点作为目标节点以避免较多目标节点引起的计算资源浪费,若后续操作中需要更多数量的目标节点,可以对目标节点的数量进行增加。
其中,在对目标神经网络模型进行后训练量化,得到量化神经网络模型的过程,就是对目标神经网络模型中各计算节点的权重系数进行量化处理,以减少数据存储量的过程,例如,目标神经网络模型的各计算节点的权重系数的数据精度为float32,通过后训练量化后,该量化神经网络模型的数据精度可以为int8、int4、int2、或int1。可以理解的是,通过上述后训练量化处理,相比于目标神经网络模型,量化神经网络模型中每个计算节点的计算精度都会存在计算损失,本发明实施例的目的就是在全部计算节点中,找到计算损失更大的计算节点作为量化敏感节点,并基于量化敏感节点,对量化神经网络模型进行优化。
S130、在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出。
其中,分流网络可以指根据不同的输入特征图分流至一个或者多个分流单元中进行不同类型的分流特异性特征量化处理,并将处理后输入特征图按照分流单元的权重系数进行匹配的计算后,将各目标分流单元的输出结果按照分流选择器的权重求和输出。
其中,不同分流单元中的输入量化计算方法可以不同。分流选择器可以根据不同的输入特征图进行分流选择。分流单元可以用于对输入特征图进行量化处理后,按照与所替换节点相同的计算逻辑,采用本单元的权重系数,对该输入特征图进行数据处理。求和单元可以用于将各目标分流单元的输出结果按照分流选择器的权重求和输出。
可以理解的是,在对目标神经网络模型对应的算子图中某一个计算节点的权重系数进行量化处理后,该计算节点可能仅会对某一特定数据范围的输入特征图具有较好的计算效果,例如,仅对在0或1上广泛取数的输入特征图具有较好的计算效果,或者,仅对在大于0.5的数值上广泛取值的输入特征图具有较好的计算效果等。
基于此,发明人创造性的提出,针对同一个计算节点A,构建多个分流单元,每个分流单元的计算逻辑与该计算节点A的计算逻辑相同,例如,均为卷积计算单元等,但是,所构建出的多个分流单元在后训练量化时,采用不同的量化方式得到(也即,不同分流单元所具有的权重系数不同),进而,不同分流单元可以对不同数值范围的输入特征图具有不同的量化效果。相应的,通过设计一个分流选择器,选择将不同数值范围的输入特征图引流至不同的一个或者多个分流单元中,并同时设置所引流的分流单元的求和权重后,由所引流的分流单元对输入特征图再进行一次匹配的量化处理,以使得输入特征图更加接近该分流单元所能优化处理的数值范围,进而,该分流单元通过自身的权重系数,按照与该计算节点A匹配的计算逻辑对该输入特征图进行处理并得到输出结果后,最终由求和单元根据分流选择器为所引流的各分流单元所分配的权重,将各分流单元的输出结果求和输出,进而可以得到更加准确的处理结果。
需要说明的是,在一种极端情况下,分流选择器仅选择一路分流单元对输入的特征图进行处理,则求和单元对该分流单元的输出结果进行直接输出即可。
其中,多核分布式架构可以指目标AI加速芯片内部的计算核分布架构。并行度可以指分流网络并行计算的个数。示例性的,若多核分布式架构中所示的计算核数量超过分流网络的个数,则可以在多个计算核中随机选取符合分流网络数量的个数,作为分流网络的并行度;若多核分布式架构中所示的计算核数量低于分流网络的个数,则可以根据计算核的数量将各个分流网络进行重新分组,设置分流网络的并行度;具体的,若计算核数量为5,分流网络的数量为8,则可以随机选择偶数个计算核,如4个计算核,并设置分流网络的并行度为4。
由此,通过将目标节点替换为分流网络,可以根据不同的输入特征图选择不同的量化方法进行计算,从而可以有效地解决低比特量化造成的神经网络模型精度损失的问题。
需要再次强调的是,本申请的实质在于:将神经网络模型对应的算子图中对量化敏感的计算节点,使用分流网络进行替换,进而,可以通过选择适用不同数值范围输入特征图的一个或者多个分流单元的输出结果进行加权计算的方式,修正单一计算节点的输出结果的计算精度,以提高量化后的神经网络模型的模型精度。
S140、根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图。
其中,存储层级特征可以包括:所述目标AI加速芯片是否为多级存储;当目标AI加速芯片为多级存储时的存储层级数量以及每个存储层级的存储器类型(例如,Flash、DRAM或者Cache)等。
在本实施例中,可以预先设定与不同存储层级特征分别对应的存储层级重构策略,例如,当存储层级为1,存储器类型为Flash时,将算子图中的量化算子-非量化算子-量化算子的组合,统一重构为一个量化算子。进而,在获取目标AI加速芯片的存储层级特征后,可以根据该存储层级特征所满足的存储层级重构策略,对算子图进行二次重构,得到重构算子图。
其中,计算单元特征可以指目标AI加速芯片中各计算单元的特征,其中,上述计算单元可以理解为目标AI加速芯片中的算术逻辑单元(Arithmetic and Logic Unit,ALU),该算术逻辑单元为目标AI加速芯片中用于实现逻辑运算的最小单位的计算单元。其中,目标AI加速芯片中可以包括一个或者多个计算核,每个计算核中包含有一个或者多个ALU。
在本实施例中,所述计算单元特征可以包括计算单元数量,每个计算单元所能计算的数据位宽(例如,float32或者是int16等),各计算单元所属的计算核、各计算单元间的并行度以及与每个计算单元分别对应的高效运行算子等。其中,高效运行算子可以理解为将一个算子配置在一个计算单元后,可以被该计算单元高效运行的算子。
指令集,是指用于指示目标AI加速芯片中的硬件执行设定运算或者处理功能的命令集合。其中,指令集可以为RISC指令集、RISC-V指令集或者ARM指令集等,本实施例对此并不进行限制。
指令集特征可以理解为在将目标AI加速芯片中加载指令集后,通过运行测试后确定得到的指令集中各指令的运算性能参数。例如,计算速度,内存占用率等参数。
可以理解的是,通过分析各指令在目标AI加速芯片中的运算性能参数,可以在全部指令集中筛选出与该目标AI加速芯片匹配的芯片友好指令集。通过在目标AI加速芯片中运行芯片友好指令集中的各指令,可以使得目标AI加速芯片发挥出更好的硬件计算性能。
重构算子图可以指根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图中的算子及连接关系进行重新构建后得到的算子图。
S150、将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
其中,量化重构模型可以指与重构算子图匹配的量化神经网络模型。再训练可以指利用目标神经网络模型对量化重构模型的损失函数进行重训练,以获得与量化神经网络模型匹配的目标量化重构模型。
本发明实施例的技术方案,通过对与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图中的各个节点进行敏感度分析,识别出量化敏感节点集合以及在量化敏感节点集合中确定设定数量的目标节点;进而,将算子图中的各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各分流网络的并行度,之后,根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图进行重构,得到重构算子图,进一步的,将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行,解决了低比特量化造成的神经网络模型精度损失的问题,提高了量化神经网络模型的精度,同时,还可以在提高量化神经网络模型精度的基础上,实现量化神经网络模型在硬件上的最优适配,将AI加速芯片的计算性能发挥到最优。
实施例二
图2a为本发明实施例二提供的一种量化神经网络模型的片内适配方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中具体是对在所述算子图的各计算节点中,识别量化敏感节点集合的操作进行细化,具体可以包括:分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度;识别损失函数影响度超过目标影响度阈值的量化敏感节点,形成量化敏感节点集合。
如图2a所示,该方法包括:
S210、识别与所述量化神经网络模型匹配的模型计算场景。
其中,模型计算场景可以指量化神经网络模型实际应用的计算场景。示例性的,可以根据计算场景的精确度要求,将模型计算场景分为对计算精度存在较高要求的高精需求计算场景;以及,对计算精度存在较低要求的低精需求计算场景。
S220、如果确定所述模型计算场景属于高精需求计算场景,则获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图。
其中,所述高精需求计算场景包括:自动驾驶过程中的机器视觉图像分类场景,或者智能问答过程中的自然语音处理场景。
S230、分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度。
其中,损失函数影响度可以指算子图中的各计算节点对目标神经网络模型的损失函数影响程度。
在一个可选的实施方式中,分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度,可以包括:将测试输入数据分别输入至所述目标神经网络模型以及所述量化神经网络模型中;获取各计算节点在所述目标神经网络模型以及所述量化神经网络模型中的原始输出特征图以及量化输出特征图;根据各所述原始输出特征图以及量化输出特征图,计算每个计算节点在量化前后的特征图差异值作为损失函数影响度。
其中,测试输入数据可以指用于对量化神经网络模型进行测试的开源标准数据。原始输出特征图可以指测试输入数据输入至目标神经网络模型时,各计算节点对应的输出特征图。量化输出特征图可以指测试输入数据输入至量化神经网络模型时,各计算节点对应的输出特征图。由此,通过对计算节点在量化前后的特征图差异值进行评估,可以将计算节点在量化前后的特征图差异值作为损失函数影响度,为后续的操作提供有效基础。
在另一个可选的实施方式中,分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度,可以包括:在各所述计算节点中,依次获取当前处理节点;将测试输入数据输入至所述目标神经网络模型中,并计算得到所述目标神经网络模型针对所述测试输入数据的第一损失函数值;将所述目标神经网络模型中,与所述当前处理节点对应的原始权重矩阵,替换为所述量化神经网络模型中,与所述当前处理节点对应的量化权重矩阵;重新将所述测试输入数据输入至所述目标神经网络模型中,并计算得到所述目标神经网络模型针对所述测试输入数据的第二损失函数值;计算所述第一损失函数值与所述第二损失函数值之间的损失差异值,并在确定所述损失差异值满足损失差异门限条件时,将所述当前处理节点确定为量化敏感节点;返回执行在各所述计算节点中,依次获取当前处理节点的操作,直至完成对全部计算节点的处理。
其中,第一损失函数值可以指目标神经网络模型针对测试输入数据输出的损失函数值。第二损失函数值可以指量化神经网络模型针对测试输入数据输出的损失函数值。损失差异门限条件可以指对损失差异值进行评估的数值,示例性的,可以为设定范围内的数值。由此,通过对当前处理节点量化处理前后的损失差异值进行评估,可以将损失差异值满足损失差异门限条件的当前处理节点作为量化敏感节点。
S240、识别损失函数影响度超过目标影响度阈值的量化敏感节点,形成量化敏感节点集合。
其中,目标影响度阈值可以指预先设定的用于对损失函数影响度进行评估的数值。
S250、在量化敏感节点集合中确定设定数量的目标节点。
S260、在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度。
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出。
可选的,所述分流选择器包括:基于设定注意力机制的全连接层;所述注意力机制包括:Softmax机制或者TopK机制;每个分流单元,用于在被分流选择器选择后,采用匹配分流的权值以及匹配的量化方式对当前输入特征进行量化后,采用与所替换节点匹配的计算逻辑得到计算结果。
其中,若注意力机制为TopK机制并且K为1时,则不进行求和,将当前分流单元的输出作为最终输出。可以根据实际需求选择Softmax机制或者TopK机制。
各分流单元的匹配分流的权值需要根据不同的注意力机制进行计算,示例性的,若注意力机制为Softmax机制,则各分流单元的匹配分流的权值若注意力机制为TopK机制,则各分流单元的匹配分流的权值该分流网络的激活函数表达式为其中,为当前L层的特征值输入,表示分流单元当前L层的特征值输出,b表示分流单元的个数,L表示分流网络所替换的目标节点所在的神经网络层;W为分流选择器的权重。
如图2b所示为TopK机制当K取值2时的分流网络结构示意图。具体的,当K取值为2时,选择的分流单元的个数即为2,被选择的两个分流单元采用分流单元自身的权重系数以及匹配的量化方式对当前输入特征进行量化后,经求和单元将各目标分流单元的输出结果按照分流选择器的权重求和输出。
如图2c所示为简化的三个节点的原始量化重构模型的结构示意图。具体的,若识别出量化神经网络模型中的第一节点为目标节点,则使用基于Softmax机制的分流网络对第一节点进行替换,由此,完成原始量化重构模型的构建。
在一个可选的实施方式中,在所述算子图中,将各目标节点使用分流网络进行替换之前,还可以包括:根据各目标节点的量化前后处理差异,确定与各所述目标节点分别对应的分流单元数量范围;根据各所述目标节点的分流单元数量范围,以及目标AI加速芯片中的计算单元总数量,确定与各所述目标节点分别对应的分流单元数量,并按照各所述分流单元数量构建与各所述目标节点分别对应的分流网络。
其中,量化前后处理差异可以指各目标节点在量化前后的特征图差异值。分流单元数量范围可以指各目标节点对应的分流单元数量的范围。示例性的,若目标节点的量化前后处理差异较小,则目标节点对应的分流单元数量范围即较小;若目标节点的量化前后处理差异较大,则目标节点对应的分流单元数量范围即较大,由此,可以保证后续构建的分支网络的计算结果可以更接近于量化前目标节点的计算结果,提高了原始量化重构模型的精确度。
其中,分流单元数量可以指分流单元数量范围内目标节点对应的分流单元的数量,分流单元数量可以根据实际应用需求进行设定,示例性的,若目标节点的分流单元数量范围为6-10,则可以将分流单元数量选定为6-10内的任意数字。计算单元总数量可以指目标AI加速芯片所包含的计算单元的个数。
在一个可选的实施方式中,根据各目标节点的量化前后处理差异,确定与各所述目标节点分别对应的分流单元数量范围,可以包括:将测试输入数据分别输入至所述目标神经网络模型以及所述量化神经网络模型中;获取各目标节点在所述目标神经网络模型以及所述量化神经网络模型中的原始输出特征图以及量化输出特征图;根据各所述原始输出特征图以及量化输出特征图,计算每个目标节点在量化前后的特征图差异值;根据各所述目标节点的特征图差异值,确定与各所述目标节点分别对应的分流单元数量范围。
由此,通过计算目标节点在目标神经网络模型以及量化神经网络模型中的原始输出特征图以及量化输出特征图之间的特征图差异值,可以为各目标节点对应的分流单元数量范围,为后续的分支网络构建提供了有效的基础。
在另一个可选的实施方式中,根据各所述目标节点的分流单元数量范围,以及目标AI加速芯片中的计算单元总数量,确定与各所述目标节点分别对应的分流单元数量,可以包括:在各所述目标节点的分流单元数量范围中,选取数值为计算单元总数量的整数倍的分流单元数量,确定为与各所述目标节点分别对应的分流单元数量。具体的,若计算单元总数量为2,分流单元数量范围为5-10,则可以在计算单元总数量的整数倍2、4、6、8及10中选取符合分流单元数量范围5-10中的任意一个数字,示例性的,可以为6或8中的任意一个作为与目标节点分别对应的分流单元数量,本实施例对此并不进行限制。
当然,除了可以选取数值为计算单元总数量的整数倍的分流单元数量,作为与各所述目标节点分别对应的分流单元数量之外,还可以选取数值为计算单元总数量的约数的分流单元数量,作为与各所述目标节点分别对应的分流单元数量等。
通过上述设置,设置计算单元与分流单元数量之间的整比例关系,可以使得各计算单元在运行该目标量化重构模型时,可以发挥最佳的计算性能。
S270、根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图。
S280、将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
值得注意的是,在本发明实施例中,将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行,具体可以为:获取所述目标神经网络模型作为教师模型,并依次获取一个当前训练样本输入至所述原始量化重构模型以及所述教师模型中;获取所述原始量化重构模型中各分流网络针对所述当前训练样本输出的量化模型输出结果,以及所述教师模型中各目标节点针对所述当前训练样本输出的教师模型输出结果;根据各所述量化模型输出结果和匹配的各所述教师模型输出结果之间的差异性,对所述原始量化重构模型进行参数调整。返回执行依次获取一个当前训练样本输入至所述原始量化重构模型以及所述教师模型中的操作,直至满足结束迭代条件,以得到所述目标量化重构模型。
其中,教师模型可以指用于对原始量化重构模型进行调整的对照模型,在本发明实施例中,将目标神经网络模型作为教师模型。结束迭代条件可以指目标量化重构模型再训练结束的条件,示例性的,可以为目标量化重构模型满足设定的精度条件,或者,迭代次数满足设定迭代阈值等。
在一个可选的实施方式中,根据各所述量化模型输出结果和匹配的各所述教师模型输出结果之间的差异性,对所述原始量化重构模型进行参数调整,可以包括:根据各所述量化模型输出结果和匹配的各所述教师模型输出结果之间的差异性,计算得到第一类损失函数;根据所述原始量化重构模型针对所述当前训练样本的最终输出结果与所述当前训练样本的标注结果之间的差异性,计算得到第二类损失函数;根据所述第一类损失函数、所述第二类损失函数,以及损失函数权重分配方式,计算得到目标损失函数,并使用所述目标损失函数,对所述原始量化重构模型进行参数调整。
其中,第一类损失函数可以指根据原始量化重构模型中各分流网络针对当前训练样本输出的量化模型输出结果,以及所述教师模型中各目标节点针对当前训练样本输出的教师模型输出结果之间的差异性计算所得的损失函数。第二类损失函数可以指根据原始量化重构模型针对当前训练样本的最终输出结果与当前训练样本的标注结果之间的差异性计算所得的损失函数。
其中,目标损失函数可以指根据第一类损失函数以及第二类损失函数以及损失函数权重分配方式获得的最终损失函数,示例性的,目标损失函数的计算公式可以为其中,l表示第一类损失函数的数量,也即原始量化重构模型中分流网络的数量。Lossorg表示第二类损失函数,表示第一类损失函数,β表示第二类损失函数的权重,γ表示第一类损失函数的权重。其中,损失函数权重分配方式可以指第一类损失函数以及第二类损失函数权重分配方式,示例性的,损失函数权重分配方式可以为第一类损失函数权重γ为0.4,第二类损失函数权重β为0.6;也可以为第一类损失函数权重γ为0.5,第二类损失函数权重β为0.5。本发明实施例对此不进行限制。
如图2d所示为原始量化重构模型再训练的流程示意图。具体的,分流网络更新所包括的分流单元的参数值(典型的,权重参数),并将前训练样本输入至更新后的分流网络以及原始量化重构模型中,根据各量化模型输出结果和匹配的各教师模型输出结果之间的差异性,计算得出目标损失函数,并利用目标损失函数对原始量化重构模型进行参数调整,若重训练后的原始量化重构模型仍不满足结束迭代条件,则返回执行更新分流网络所包括的分流单元的数量值的操作,直至满足结束迭代条件得到目标量化重构模型。
在一个可选的实施方式中,在将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行之后,还可以包括:检测训练后的目标量化重构模型是否满足预设的计算精度条件;若否,则对所述目标量化重构模型的至少一个超参数进行重新调整后,重新训练得到新的目标量化重构模型;其中,所述超参数包括下述至少一项:在量化敏感节点集合中确定的目标节点的数量值,分流网络中所包括的分流单元的数量值以及损失函数权重分配方式。
具体的,由于目标节点的数量值越多、分流单元的数量值越多最终得到的目标量化重构模型精度将会越准确,但考虑对硬件设备计算量的负担,通常在首次确定目标节点的数量值以及分流单元的数量值时,不会选择较大的数量,因此,当目标量化重构模型未满足预设的计算精度条件时,则可以再次适当的扩大目标节点的数量值以及分流单元的数量值,并进行新一轮的再训练,直至目标量化重构模型满足预设的计算精度条件。此外,损失函数权重分配方式也会对目标量化重构模型的精度造成影响,因此,当目标量化重构模型未满足预设的计算精度条件时,也可以对损失函数权重分配方式进行适应性的调整,直至目标量化重构模型满足预设的计算精度条件。
本发明实施例的技术方案,通过在量化神经网络模型匹配的模型计算场景为高精需求计算场景时,则获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图;进而,分别计算算子图中的各计算节点对目标神经网络模型的损失函数影响度,并识别损失函数影响度超过目标影响度阈值的量化敏感节点,形成量化敏感节点集合;之后,在量化敏感节点集合中确定设定数量的目标节点,在算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各分流网络的并行度;进一步的,根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图进行重构,得到重构算子图;最终,将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行,解决了低比特量化造成的神经网络模型精度损失的问题,提高了量化神经网络模型的精度,同时,还可以在提高量化神经网络模型精度的基础上,实现量化神经网络模型在硬件上的最优适配,将AI加速芯片的计算性能发挥到最优。
如图2e所示为本发明实施例提供的一种可选的量化神经网络模型的片内适配方法的流程示意图。
具体的,首先,对目标神经网络模型进行后训练量化,得到量化神经网络模型;进而,对量化神经网络模型匹配的算子图中的各计算节点进行敏感度分析,识别对目标神经网络模型的损失函数影响度高的量化敏感节点,并确定设定数量的目标节点;进一步的,通过对分流单元的数量值进行更新、对分流选择器进行更新以及插入假节点的方式实现对分流网络的构建,并将量化神经网络模型匹配的算子图中的各目标节点使用分流网络进行替换根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度,并根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图进行重构,得到重构算子图,将重构算子图对应的量化重构模型作为原始量化重构模型;进一步的,获取目标神经网络模型作为教师模型,依次获取一个当前训练样本输入至原始量化重构模型以及教师模型中,并获取原始量化重构模型中各分流网络针对当前训练样本输出的量化模型输出结果,以及教师模型中各目标节点针对当前训练样本输出的教师模型输出结果,根据量化模型输出结果和匹配的各教师模型输出结果之间的差异性,对原始量化重构模型进行参数调整得到目标量化重构模型;最后,对目标量化重构模型的计算精度进行判断,若目标量化重构模型不满足预设的计算精度条件,则重新构建分流网络,并使用重新构建的分流网络替换量化神经网络模型中的各目标节点得到原始量化重构模型,在对目标量化重构模型的至少一个超参数进行重新调整后,重新训练得到新的目标量化重构模型;若目标量化重构模型满足预设的计算精度条件则输出该目标量化重构模型并进行相应的模型优化部署。由此,可以得到满足预设的计算精度条件的目标量化重构模型。
实施例三
图3为本发明实施例三提供的一种量化神经网络模型的片内适配装置的结构示意图。如图3所示,该装置包括:算子图获取模块310、节点确定模块320、后处理模块330、算子图重构模块340及模型再训练模块350;
其中,算子图获取模块310,用于获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到;
节点确定模块320,用于在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点;
后处理模块330,用于在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出;
算子图重构模块340,用于根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图;
模型再训练模块350,用于将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
本发明实施例的技术方案,通过对与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图中的各个节点进行敏感度分析,识别出量化敏感节点集合以及在量化敏感节点集合中确定设定数量的目标节点;进而,将算子图中的各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各分流网络的并行度,之后,根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对算子图进行重构,得到重构算子图,进一步的,将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行,解决了低比特量化造成的神经网络模型精度损失的问题,提高了量化神经网络模型的精度,同时,还可以在提高量化神经网络模型精度的基础上,实现量化神经网络模型在硬件上的最优适配,将AI加速芯片的计算性能发挥到最优。
可选的,节点确定模块320,具体可以包括:损失函数影响度计算单元及量化敏感节点集合生成单元;
其中,损失函数影响度计算单元,用于分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度;
量化敏感节点集合生成单元,用于识别损失函数影响度超过目标影响度阈值的量化敏感节点,形成量化敏感节点集合。
可选的,损失函数影响度计算单元,具体可以用于:将测试输入数据分别输入至所述目标神经网络模型以及所述量化神经网络模型中;获取各计算节点在所述目标神经网络模型以及所述量化神经网络模型中的原始输出特征图以及量化输出特征图;根据各所述原始输出特征图以及量化输出特征图,计算每个计算节点在量化前后的特征图差异值作为损失函数影响度。
可选的,损失函数影响度计算单元,具体可以用于:在各所述计算节点中,依次获取当前处理节点;将测试输入数据输入至所述目标神经网络模型中,并计算得到所述目标神经网络模型针对所述测试输入数据的第一损失函数值;将所述目标神经网络模型中,与所述当前处理节点对应的原始权重矩阵,替换为所述量化神经网络模型中,与所述当前处理节点对应的量化权重矩阵;重新将所述测试输入数据输入至所述目标神经网络模型中,并计算得到所述目标神经网络模型针对所述测试输入数据的第二损失函数值;计算所述第一损失函数值与所述第二损失函数值之间的损失差异值,并在确定所述损失差异值满足损失差异门限条件时,将所述当前处理节点确定为量化敏感节点;返回执行在各所述计算节点中,依次获取当前处理节点的操作,直至完成对全部计算节点的处理。
可选的,量化神经网络模型的片内适配装置,还可以包括:分流网络构建模块,用于在所述算子图中,将各目标节点使用分流网络进行替换之前,根据各目标节点的量化前后处理差异,确定与各所述目标节点分别对应的分流单元数量范围;根据各所述目标节点的分流单元数量范围,以及目标AI加速芯片中的计算单元总数量,确定与各所述目标节点分别对应的分流单元数量,并按照各所述分流单元数量构建与各所述目标节点分别对应的分流网络。
可选的,分流网络构建模块,具体可以用于:将测试输入数据分别输入至所述目标神经网络模型以及所述量化神经网络模型中;获取各目标节点在所述目标神经网络模型以及所述量化神经网络模型中的原始输出特征图以及量化输出特征图;根据各所述原始输出特征图以及量化输出特征图,计算每个目标节点在量化前后的特征图差异值;根据各所述目标节点的特征图差异值,确定与各所述目标节点分别对应的分流单元数量范围。
可选的,分流网络构建模块,具体可以用于:在各所述目标节点的分流单元数量范围中,选取数值为计算单元总数量的整数倍的分流单元数量,确定为与各所述目标节点分别对应的分流单元数量。
可选的,算子图获取模块310,具体可以用于:识别与所述量化神经网络模型匹配的模型计算场景;如果确定所述模型计算场景属于高精需求计算场景,则获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图;其中,所述高精需求计算场景包括:自动驾驶过程中的机器视觉图像分类场景,或者智能问答过程中的自然语音处理场景。
本发明实施例所提供的量化神经网络模型的片内适配装置可执行本发明任意实施例所提供的量化神经网络模型的片内适配方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备410的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备410包括至少一个处理器420,以及与至少一个处理器420通信连接的存储器,如只读存储器(ROM)430、随机访问存储器(RAM)440等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器420可以根据存储在只读存储器(ROM)430中的计算机程序或者从存储单元490加载到随机访问存储器(RAM)440中的计算机程序,来执行各种适当的动作和处理。在RAM 440中,还可存储电子设备410操作所需的各种程序和数据。处理器420、ROM 430以及RAM440通过总线450彼此相连。输入/输出(I/O)接口460也连接至总线450。
电子设备410中的多个部件连接至I/O接口460,包括:输入单元470,例如键盘、鼠标等;输出单元480,例如各种类型的显示器、扬声器等;存储单元490,例如磁盘、光盘等;以及通信单元4100,例如网卡、调制解调器、无线通信收发机等。通信单元4100允许电子设备410通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器420可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器420的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器420执行上文所描述的各个方法和处理,例如量化神经网络模型的片内适配方法。
该方法包括:
获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到;
在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点;
在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出;
根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图;
将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
在一些实施例中,量化神经网络模型的片内适配方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元490。在一些实施例中,计算机程序的部分或者全部可以经由ROM 430和/或通信单元4100而被载入和/或安装到电子设备410上。当计算机程序加载到RAM 440并由处理器420执行时,可以执行上文描述的量化神经网络模型的片内适配方法的一个或多个步骤。备选地,在其他实施例中,处理器420可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量化神经网络模型的片内适配方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种量化神经网络模型的片内适配方法,其特征在于,包括:
获取与待加载至目标人工智能AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到;
在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点;
在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出;
根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图;
将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
2.根据权利要求1所述的方法,其特征在于,在所述算子图的各计算节点中,识别量化敏感节点集合,包括:
分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度;
识别损失函数影响度超过目标影响度阈值的量化敏感节点,形成量化敏感节点集合。
3.根据权利要求2所述的方法,其特征在于,分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度,包括:
将测试输入数据分别输入至所述目标神经网络模型以及所述量化神经网络模型中;
获取各计算节点在所述目标神经网络模型以及所述量化神经网络模型中的原始输出特征图以及量化输出特征图;
根据各所述原始输出特征图以及量化输出特征图,计算每个计算节点在量化前后的特征图差异值作为损失函数影响度。
4.根据权利要求2所述的方法,其特征在于,分别计算所述算子图中的各计算节点对目标神经网络模型的损失函数影响度,包括:
在各所述计算节点中,依次获取当前处理节点;
将测试输入数据输入至所述目标神经网络模型中,并计算得到所述目标神经网络模型针对所述测试输入数据的第一损失函数值;
将所述目标神经网络模型中,与所述当前处理节点对应的原始权重矩阵,替换为所述量化神经网络模型中,与所述当前处理节点对应的量化权重矩阵;
重新将所述测试输入数据输入至所述目标神经网络模型中,并计算得到所述目标神经网络模型针对所述测试输入数据的第二损失函数值;
计算所述第一损失函数值与所述第二损失函数值之间的损失差异值,并在确定所述损失差异值满足损失差异门限条件时,将所述当前处理节点确定为量化敏感节点;
返回执行在各所述计算节点中,依次获取当前处理节点的操作,直至完成对全部计算节点的处理。
5.根据权利要求1所述的方法,其特征在于,在所述算子图中,将各目标节点使用分流网络进行替换之前,还包括:
根据各目标节点的量化前后处理差异,确定与各所述目标节点分别对应的分流单元数量范围;
根据各所述目标节点的分流单元数量范围,以及目标AI加速芯片中的计算单元总数量,确定与各所述目标节点分别对应的分流单元数量,并按照各所述分流单元数量构建与各所述目标节点分别对应的分流网络。
6.根据权利要求5所述的方法,其特征在于,根据各目标节点的量化前后处理差异,确定与各所述目标节点分别对应的分流单元数量范围,包括:
将测试输入数据分别输入至所述目标神经网络模型以及所述量化神经网络模型中;
获取各目标节点在所述目标神经网络模型以及所述量化神经网络模型中的原始输出特征图以及量化输出特征图;
根据各所述原始输出特征图以及量化输出特征图,计算每个目标节点在量化前后的特征图差异值;
根据各所述目标节点的特征图差异值,确定与各所述目标节点分别对应的分流单元数量范围。
7.根据权利要求5所述的方法,其特征在于,根据各所述目标节点的分流单元数量范围,以及目标AI加速芯片中的计算单元总数量,确定与各所述目标节点分别对应的分流单元数量,包括:
在各所述目标节点的分流单元数量范围中,选取数值为计算单元总数量的整数倍的分流单元数量,确定为与各所述目标节点分别对应的分流单元数量。
8.根据权利要求1-7任一项所述的方法,其特征在于,获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图,包括:
识别与所述量化神经网络模型匹配的模型计算场景;
如果确定所述模型计算场景属于高精需求计算场景,则获取与待加载至目标AI加速芯片中的量化神经网络模型匹配的算子图;
其中,所述高精需求计算场景包括:自动驾驶过程中的机器视觉图像分类场景,或者智能问答过程中的自然语音处理场景。
9.一种量化神经网络模型的片内适配装置,其特征在于,包括:
算子图获取模块,用于获取与待加载至目标人工智能AI加速芯片中的量化神经网络模型匹配的算子图,其中,量化神经网络模型通过对目标神经网络模型进行后训练量化得到;
节点确定模块,用于在所述算子图的各计算节点中,识别量化敏感节点集合,并在量化敏感节点集合中确定设定数量的目标节点;
后处理模块,用于在所述算子图中,将各目标节点使用分流网络进行替换,并根据目标AI加速芯片内部的多核分布式架构,设置各所述分流网络的并行度;
其中,分流网络包括分流选择器、与分流选择器相连的多个可选的分流单元和与各分流单元分别相连的求和单元,所述分流网络用于将输入至分流选择器内的特征图引流至匹配的至少一个目标分流单元进行量化计算,并将各目标分流单元的输出结果按照分流选择器的权重求和输出;
算子图重构模块,用于根据目标AI加速芯片的存储层级特征、计算单元特征和指令集特征中的至少一项,对所述算子图进行重构,得到重构算子图;
模型再训练模块,用于将与重构算子图对应的量化重构模型加载至目标AI加速芯片内进行再训练和执行。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的量化神经网络模型的片内适配方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-8中任一项所述的量化神经网络模型的片内适配方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022104621621 | 2022-04-28 | ||
CN202210462162 | 2022-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115392441A true CN115392441A (zh) | 2022-11-25 |
Family
ID=84128842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211216053.8A Pending CN115392441A (zh) | 2022-04-28 | 2022-09-30 | 量化神经网络模型的片内适配方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115392441A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115859016A (zh) * | 2023-03-02 | 2023-03-28 | 深圳思谋信息科技有限公司 | 基于处理器的运算方法、装置、计算机设备及存储介质 |
-
2022
- 2022-09-30 CN CN202211216053.8A patent/CN115392441A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115859016A (zh) * | 2023-03-02 | 2023-03-28 | 深圳思谋信息科技有限公司 | 基于处理器的运算方法、装置、计算机设备及存储介质 |
CN115859016B (zh) * | 2023-03-02 | 2023-06-09 | 深圳思谋信息科技有限公司 | 基于处理器的运算方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860982A (zh) | 一种基于vmd-fcm-gru的风电场短期风电功率预测方法 | |
US20230196202A1 (en) | System and method for automatic building of learning machines using learning machines | |
CN112036084A (zh) | 一种相似产品寿命迁移筛选方法和系统 | |
US11650968B2 (en) | Systems and methods for predictive early stopping in neural network training | |
CN112270545A (zh) | 基于迁移样本筛选的金融风险预测方法、装置和电子设备 | |
CN113516248B (zh) | 一种量子门测试方法、装置及电子设备 | |
CN109787821B (zh) | 一种大规模移动客户流量消费智能预测方法 | |
CN115935834A (zh) | 一种基于深度自回归网络和持续学习策略的历史拟合方法 | |
CN111428866A (zh) | 一种增量学习方法、装置、存储介质及电子设备 | |
CN114781650B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
CN112257751A (zh) | 神经网络剪枝方法 | |
CN111784061A (zh) | 一种电网工程造价预测模型的训练方法、装置和设备 | |
CN114462591A (zh) | 一种动态量化神经网络的推理方法 | |
CN114169460A (zh) | 样本筛选方法、装置、计算机设备和存储介质 | |
CN113887717A (zh) | 一种基于深度学习预测神经网络训练时长的方法 | |
CN114830137A (zh) | 用于生成预测模型的方法和系统 | |
CN116384244A (zh) | 一种基于物理增强神经网络的电磁场预测方法 | |
CN115859048A (zh) | 一种局放信号的噪声处理方法及装置 | |
CN112231987B (zh) | 一种基于VMD与Elman神经网络的电离层预报方法 | |
CN115409161A (zh) | 量化神经网络模型的片内执行方法、装置、设备及介质 | |
CN110929849B (zh) | 一种基于神经网络模型压缩的视频检测方法和装置 | |
CN110322055B (zh) | 一种提高数据风险模型评分稳定性的方法和系统 | |
CN113052388A (zh) | 一种时间序列预测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Applicant after: Shanghai Suiyuan Technology Co.,Ltd. Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Applicant before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information |