CN116362287A - 一种支持多种硬件平台的神经网络模型量化部署方法 - Google Patents
一种支持多种硬件平台的神经网络模型量化部署方法 Download PDFInfo
- Publication number
- CN116362287A CN116362287A CN202310102989.6A CN202310102989A CN116362287A CN 116362287 A CN116362287 A CN 116362287A CN 202310102989 A CN202310102989 A CN 202310102989A CN 116362287 A CN116362287 A CN 116362287A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- quantization
- quantized
- deployed
- 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 162
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013139 quantization Methods 0.000 claims abstract description 241
- 230000003044 adaptive effect Effects 0.000 claims abstract description 15
- 238000010521 absorption reaction Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 29
- 238000005457 optimization Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001133 acceleration Effects 0.000 claims description 11
- 230000008447 perception Effects 0.000 claims description 11
- 230000004927 fusion Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000011002 quantification Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种支持多种硬件平台的神经网络模型量化部署方法,包括,获取待量化神经网络模型;针对待部署硬件平台配置网络量化参数;根据待部署硬件平台使用基准量化方法对待量化神经网络模型进行预量化;使用跨层权重均衡与偏差吸收相结合的思想对预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;根据待部署硬件平台使用自适应图调度策略找到调整后神经网络模型精度和速度间的最佳平衡点,根据最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;将量化后神经网络模型参数写入到待部署硬件平台。通过本发明提出的方法,用于提升模型在端侧的推理速度,使模型可以部署在计算资源受限设备或时延敏感的应用中。
Description
技术领域
本发明属于模型部署领域。
背景技术
近年来,随着人工智能在工业、城市、医疗等领域的应用,智能电网、智慧城市等典型开放环境对深度学习理论和技术提出了更高要求,开放环境场景多、任务难、数据获取成本高、跨场景适应能力弱带来诸多挑战。因此,如何降低算力成本,提高模型在线推理能力,促进开放环境下深度学习技术在多个行业场景的落地应用至关重要。
量化作为神经网络模型压缩的常见手段,采用低比特(较少的比特位数)表示权重和激活减少内存占用并加速推理过程,但它引起的附加噪声会导致模型精度下降。为解决该问题,当前提出了多种方法来减轻模型量化后精度的下降,但这些方法通常只利用通用的模拟量化流程来实现,并未考虑模型实际部署的硬件平台和对应推理框架的底层实现原理,导致部署后模型精度损失严重,无法真正落地。因此,如何将实际部署的硬件推理框架和量化算法有机地结合起来,提供便捷高效的神经网络模型低比特量化方法,实现软硬件结合的优化加速具有很大的研究意义和实用价值。
目前主要的量化方法包括后训练量化(Post-Training Quantization,PTQ)和量化感知训练(Quantization-Aware Training,QAT)。后训练量化与训练过程解耦,操作简单、耗时短、所需校准数据少,但是量化后模型精度往往损失严重。量化感知训练需在量化过程中对网络进行训练,从而让网络参数更好地适应量化带来的信息损失,因此能更好地解决模型量化的精度损失问题,但其需要大规模的训练数据,耗时长、操作复杂。目前主流硬件平台只针对各自的推理框架在内部集成了基础的量化算法,不能保证量化后的模型精度。此外,现有的量化方案通常只在后训练量化和量化感知训练中选一种进行量化,并没有实现自动化的量化流程,当后训练量化无法满足精度要求时,还需重新构建量化感知训练,导致量化流程复杂,效率低下。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的目的在于提出一种支持多种硬件平台的神经网络模型量化部署方法,用于提升模型在端侧的推理速度,使模型可以部署在计算资源受限设备或时延敏感的应用中。
为达上述目的,本发明第一方面实施例提出了一种支持多种硬件平台的神经网络模型量化部署方法,包括:
获取待量化神经网络模型;
针对待部署硬件平台配置网络量化参数,所述待部署硬件平台包括电力开放环境下的硬件平台;
根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化;
使用跨层权重均衡与偏差吸收相结合的思想对所述预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;
根据所述待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据所述最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;
将所述量化后神经网络模型参数写入到待部署硬件平台。
另外,根据本发明上述实施例的一种支持多种硬件平台的神经网络模型量化部署方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述针对待部署硬件平台配置网络量化参数,包括:
将所述待量化神经网络模型转成待部署硬件平台支持的中间格式进行读取;
其中,所述网络量化参数包括步长scale、零点zero_point,用于描述底层硬件的图融合逻辑、调度方案、量化细节策略和高阶量化算法。
进一步地,在本发明的一个实施例中,所述根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化,包括:
根据所述待部署硬件平台推理框架自身集成的量化策略对所述待量化神经网络模型进行低比特量化;
确定低比特量化后的待量化神经网络模型精度损失在可接受误差范围内;
若所述低比特量化后的待量化神经网络模型加速比符合预设值,导出预量化神经网络模型和预量化神经网络模型参数;
反之调整对照组的基准线baseline大小,让GPU利用率达到最大,再继续判断调整所述baseline大小后的待量化神经网络模型加速比是符合预设值。
进一步地,在本发明的一个实施例中,所述使用跨层权重均衡与偏差吸收相结合的思想对所述预量化神经网络模型参数进行均匀分布调整,包括:
根据公式(1)进行上下层之间不同通道缩放系数的调整,
根据公式(2)减少量化误差,
进一步地,在本发明的一个实施例中,所述根据所述待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据所述最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数,包括:
将所述调整后神经网络模型解析成量化计算图;
根据所述待部署硬件平台支持的量化算子类型,从所述量化计算图中切分出需要量化的算子、以及不需要量化的算子;
读取量化参数配置模块的配置信息,为所述需要量化的算子初始化量化信息;
对经过初始化算子后的神经网络模型进行后训练量化,若所述初始化算子后的神经网络模型的量化误差符合预设值,则量化成功。
进一步地,在本发明的一个实施例中,若所述初始化算子后的神经网络模型的量化误差不符合预设值,通过自适应的图调度算法进行优化,包括:
通过逐层误差分析方法得到所述初始化算子后的神经网络模型单独每一层的量化误差,获取所述量化误差大于所述预设值的层组成调度集S;
遍历所述调度集S,进行图调度优化,将所述调度集S中每一层都调度到高精度平台进行量化;
若经过图调度优化的神经网络模型的量化误差符合所述预设值,则量化成功。
进一步地,在本发明的一个实施例中,若经过图调度优化的神经网络模型的量化误差不符合所述预设值,对所述经过图调度优化的神经网络模型进行量化感知训练,包括:
在所述经过图调度优化的神经网络模型插入伪量化节点,并在所述经过图调度优化的神经网络模型的神经网络中逐层进行权重和激活值量化步长的学习;
若经过量化感知训练的神经网络模型的量化误差符合所述预设值,则量化成功。
为达上述目的,本发明第二方面实施例提出了一种支持多种硬件平台的神经网络模型量化部署装置,包括以下模块:
获取模块,用于获取待量化神经网络模型;
量化参数配置模块,用于针对待部署硬件平台配置网络量化参数,所述待部署硬件平台包括电力开放环境下的硬件平台;
预量化模块,用于根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化,导出预量化神经网络模型和预量化神经网络模型参数;
模型分布调整模块,用于使用跨层权重均衡与偏差吸收相结合的思想对所述预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;
量化引擎模块,用于根据所述待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据所述最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;
模型部署模块,用于将所述量化后神经网络模型参数写入到待部署硬件平台。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的一种支持多种硬件平台的神经网络模型量化部署方法。
为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的一种支持多种硬件平台的神经网络模型量化部署方法。
本发明实施例提出的支持多种硬件平台的神经网络模型量化部署方法,结合不同硬件平台内部的量化策略和图融合策略,使用AdaRound和CLE(Cross-LayerEqualization)等高阶量化算法,在量化前调整模型参数分布,使其变得更适合量化,量化中结合推理框架实际的优化加速过程,选择合适的量化计算规则和网络量化规则,量化后逐层分析量化误差,使用自适应图调度策略找到量化后模型精度和速度间的最佳平衡点,实现软硬件结合的量化优化加速,从而为算力受限的端侧平台提供高可用的端到端神经网络模型量化压缩服务。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种支持多种硬件平台的神经网络模型量化部署方法的流程示意图。
图2为本发明实施例所提供的一种模型预量化模块流程图。
图3为本发明实施例所提供的一种量化引擎模块处理流程图。
图4为本发明实施例所提供的一种支持多种硬件平台的神经网络模型量化部署装置的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的支持多种硬件平台的神经网络模型量化部署方法。
图1为本发明实施例所提供的一种支持多种硬件平台的神经网络模型量化部署方法的流程示意图。
如图1所示,该支持多种硬件平台的神经网络模型量化部署方法包括以下步骤:
S101:获取待量化神经网络模型;
具体的,从外部获取已训练好的待量化神经网络模型,并统一转成主流硬件平台都支持的中间格式(如ONNX文件)进行读取,便于后续向不同硬件平台推理框架的目标格式进行转化;获取能有效表征模型实际输入情况的校准数据集;获取模型预训练阶段使用的训练数据集,用于之后的量化感知训练,训练数据集若未提供,则使用校准数据集进行量化感知训练;获取模型验证数据集,用于量化前后模型精度的计算与比对。
S102:针对待部署硬件平台配置网络量化参数,待部署硬件平台包括电力开放环境下的硬件平台;
进一步地,在本发明的一个实施例中,针对待部署硬件平台配置网络量化参数,包括:
将待量化神经网络模型转成待部署硬件平台支持的中间格式进行读取;
其中,网络量化参数包括步长scale、零点zero_point,用于描述底层硬件的图融合逻辑、调度方案、量化细节策略和高阶量化算法。
具体的,确定所要部署的硬件平台,并针对其提供的推理框架来配置网络量化参数,用于控制量化引擎模块的量化逻辑,主要描述底层硬件的图融合逻辑、调度方案、量化细节策略和高阶量化算法使用等,保证量化模拟器与真实硬件间的误差较小。
S103:根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化;
进一步地,在本发明的一个实施例中,根据待部署硬件平台使用基准量化方法对待量化神经网络模型进行预量化,包括:
根据待部署硬件平台推理框架自身集成的量化策略对待量化神经网络模型进行低比特量化;
确定低比特量化后的待量化神经网络模型精度损失在可接受误差范围内;
若低比特量化后的待量化神经网络模型加速比符合预设值,导出预量化神经网络模型和预量化神经网络模型参数;
反之调整对照组的基准线baseline大小,让GPU利用率达到最大,再继续判断调整所述baseline大小后的待量化神经网络模型加速比是符合预设值。
具体的,如图2所示,使用基准量化方法进行模型预量化,步骤如下:
1)根据所选硬件平台推理框架自身集成的量化策略进行低比特量化;
2)判断量化后模型精度损失是否控制在可接受误差范围内,若是则转步骤3),否则说明基准量化失败,硬件自带的基本量化操作不满足精度要求,需执行本方案量化后续模块。
3)评估模型加速比是否符合预期,若是则转步骤5),否则转步骤4)。
4)调整batchsize大小,让GPU利用率达到最大,再转步骤3)进行判断。
5)导出量化后模型文件和量化参数文件,整个量化流程结束;
6)执行最后模型部署模块。
S104:使用跨层权重均衡与偏差吸收相结合的思想对所述预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;
进一步地,在本发明的一个实施例中,使用跨层权重均衡与偏差吸收相结合的思想对预量化神经网络模型参数进行均匀分布调整,包括:
根据公式(1)进行上下层之间不同通道缩放系数的调整,
根据公式(2)减少量化误差,
具体的,本发明通过使用跨层权重均衡(Cross-Layer Equalization,CLE)与偏差吸收(Bias absorption)相结合的思想让模型参数更接近均匀分布。相较于正态分布,均匀分布对量化参数的变化更加鲁棒。计算公式如(1)所示:
同时,考虑到当某一层权重的某通道缩放系数大于1时,激活值的该通道数据范围会增大,可能会导致激活值在各通道之间的数据范围差异变大,从而产生较大的量化误差。因此需要将该层的激活值直接减掉某一个常数c,使得整个数据范围变小,从而最大限度减少量化误差,下一层的偏移值(bias)会吸收这个减掉的常数c。计算公式如(2)所示:
S105:根据待部署硬件平台使用自适应图调度策略找到调整后神经网络模型精度和速度间的最佳平衡点,根据最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;
进一步地,在本发明的一个实施例中,根据待部署硬件平台使用自适应图调度策略找到调整后神经网络模型精度和速度间的最佳平衡点,根据最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数,包括:
将调整后神经网络模型解析成量化计算图;
根据待部署硬件平台支持的量化算子类型,从量化计算图中切分出需要量化的算子、以及不需要量化的算子;
读取量化参数配置模块的配置信息,为需要量化的算子初始化量化信息;
对经过初始化算子后的神经网络模型进行后训练量化,若初始化算子后的神经网络模型的量化误差符合预设值,则量化成功。
进一步地,在本发明的一个实施例中,若初始化算子后的神经网络模型的量化误差不符合预设值,通过自适应的图调度算法进行优化,包括:
通过逐层误差分析方法得到初始化算子后的神经网络模型单独每一层的量化误差,获取量化误差大于所述预设值的层组成调度集S;
遍历调度集S,进行图调度优化,将调度集S中每一层都调度到高精度平台进行量化;
若经过图调度优化的神经网络模型的量化误差符合预设值,则量化成功。
进一步地,在本发明的一个实施例中,若经过图调度优化的神经网络模型的量化误差不符合预设值,对经过图调度优化的神经网络模型进行量化感知训练,包括:
在经过图调度优化的神经网络模型插入伪量化节点,并在经过图调度优化的神经网络模型的神经网络中逐层进行权重和激活值量化步长的学习;
若经过量化感知训练的神经网络模型的量化误差符合预设值,则量化成功。
具体的,本发明提出一种自适应的图调度算法,通过逐层误差分析方法得到单独每一层的量化误差后,对靠近网络输入层的节点和网络图中局部累积误差严重的节点赋予更大的权重,使其可以优先调度到更高精度的硬件平台上执行,从而实现量化后模型精度与性能的平衡。以下详细介绍其实现细节。
在网络完成量化操作后,先解除网络中所有算子的量化,而后单独地量化每一个计算型算子,并使用量化信噪比(Signal-to-noise ratio,SNR)的误差计算方式来衡量单独一个算子对网络输出的影响情况。量化误差的计算方法如下方公式所示。
其中,X表示量化前的原始浮点值,Q(X)为量化后输出值,N为张量长度。
得到每一层节点的输出误差后,将其调度权重按误差值的升序排序值进行初始化。对于量化误差相同的层,计算该节点到网络输出层的路径距离di,其与距离缩放因子σ的乘积作为加权值累加到初始调度权重上。对于网络图中局部累积误差严重的连续节点,计算节点数与累积缩放因子τ的乘积,与调度权重加权。同时结合硬件底层的算子融合策略,将符合算子融合模式的内部算子调度权重进行一致化处理,保证算子融合不受图调度影响,从而充分利用寄存器和缓存,减少数据在GPU和显存之间存储和读取的耗时,提升推理性能。最后根据每层的调度权重进行降序排序,得到算子的优先调度序列,用户可根据实际应用需求从优先调度队列按序选择算子调度至FP32位平台。从而可以在提升模型量化后精度的同时最大限度保证其推理速度,实现软硬件结合的量化优化加速。完整的算法细节如表1算法所示。
表1
本发明中具体的处理流程如图3所示,步骤如下:
1)先将Onnx、Pytorch、Tensorflow、Caffe等格式的神经网络模型解析成量化计算图;
2)根据所选硬件平台支持的量化算子类型,从计算图中切分出需要量化的算子、以及不需要量化的算子;
3)读取量化参数配置模块的配置信息,为所有需要量化的算子初始化量化信息,并建立量化管线;
4)进行后训练量化,使用自适应任务损失的量化策略进行取整,并将权重的优化转换为对卷积计算后结果的优化。计算公式如(3)所示:
5)判断量化误差是否符合要求,若是则量化成功,流程结束,否则转步骤6);
6)进行逐层量化误差分析,若该层误差大于Et,则认为该层量化敏感度大,将其组成一个调度集S;
7)遍历调度集S,进行图调度优化,将集合S中每一层都调度到高精度平台进行量化;
8)判断图调度后性能是否符合要求,若是则转步骤5),否则转步骤9);
9)进行量化感知训练,插入伪量化节点,并在神经网络中逐层进行权重和激活值量化步长的学习,提升量化精度。主要公式如(4)和(5)所示:
其中,clip(z,r1,r2)返回z值,如果小于r1则设为r1,小于r2则设为r2。round()函数负责将z取整到最接近的整数。
步长梯度计算如公式(6)所示:
步长梯度的缩放如公式(7)所示:
10)判断量化误差是否符合要求,若是则转步骤11),否则还需进行更高精度的量化;
11)导出量化后模型文件和量化参数文件,量化成功,流程结束。
S106:将所述量化后神经网络模型参数写入到待部署硬件平台。
将量化完成后得到的量化参数利用推理库的工具写入到运行时的模型中,从而可以在硬件上执行量化后的模型。最后比较量化模拟器输出结果和硬件实际执行结果,进行误差验证。
本发明实施例提出的支持多种硬件平台的神经网络模型量化部署方法,结合不同硬件平台内部的量化策略和图融合策略,使用AdaRound和CLE(Cross-LayerEqualization)等高阶量化算法,在量化前调整模型参数分布,使其变得更适合量化,量化中结合推理框架实际的优化加速过程,选择合适的量化计算规则和网络量化规则,量化后逐层分析量化误差,使用自适应图调度策略找到量化后模型精度和速度间的最佳平衡点,实现软硬件结合的量化优化加速,从而为算力受限的端侧平台提供高可用的端到端神经网络模型量化压缩服务。
与现有技术相比,首先现有最接近技术在量化过程中未考虑不同硬件平台推理框架的优化策略,模拟量化与真实硬件输出差异较大,导致精度下降严重。二本发明在量化过程中针对不同硬件平台进行量化参数配置和量化节点插入,使量化模拟器能正确模拟硬件推理过程,实现了软硬件结合的量化优化加速。其次现有最接近技术大多使用硬件平台推理库中自带的量化方案,步骤简单但量化后精度损失严重。而本发明构建了一套自动化的量化管线,在量化前优化模型分布,量化中实现后训练量化与量化感知训练的动态结合,量化后使用误差分析与图调度方式,有效提升了模型量化后的精度和量化部署效率。
为了实现上述实施例,本发明还提出支持多种硬件平台的神经网络模型量化部署装置。
图4为本发明实施例提供的一种支持多种硬件平台的神经网络模型量化部署装置的结构示意图。
如图4所示,该支持多种硬件平台的神经网络模型量化部署装置包括:获取模块,量化参数配置模块,预量化模块,模型分布调整模块,量化引擎模块,模型部署模块,其中,
获取模块,用于获取待量化神经网络模型;
量化参数配置模块,用于针对待部署硬件平台配置网络量化参数,待部署硬件平台包括电力开放环境下的硬件平台;
预量化模块,用于根据待部署硬件平台使用基准量化方法对待量化神经网络模型进行预量化,导出预量化神经网络模型和预量化神经网络模型参数;
模型分布调整模块,用于使用跨层权重均衡与偏差吸收相结合的思想对预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;
量化引擎模块,用于根据待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;
模型部署模块,用于将量化后神经网络模型参数写入到待部署硬件平台。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的支持多种硬件平台的神经网络模型量化部署方法。
为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的支持多种硬件平台的神经网络模型量化部署方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种支持多种硬件平台的神经网络模型量化部署方法,其特征在于,包括以下步骤:
获取待量化神经网络模型;
针对待部署硬件平台配置网络量化参数,所述待部署硬件平台包括电力开放环境下的硬件平台;
根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化;
使用跨层权重均衡与偏差吸收相结合的思想对所述预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;
根据所述待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据所述最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;
将所述量化后神经网络模型参数写入到待部署硬件平台。
2.根据权利要求1所述的方法,其特征在于,所述针对待部署硬件平台配置网络量化参数,包括:
将所述待量化神经网络模型转成待部署硬件平台支持的中间格式进行读取;
其中,所述网络量化参数包括步长scale、零点zero_point,用于描述底层硬件的图融合逻辑、调度方案、量化细节策略和高阶量化算法。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化,包括:
根据所述待部署硬件平台推理框架自身集成的量化策略对所述待量化神经网络模型进行低比特量化;
确定低比特量化后的待量化神经网络模型精度损失在可接受误差范围内;
若所述低比特量化后的待量化神经网络模型加速比符合预设值,导出预量化神经网络模型和预量化神经网络模型参数;
反之调整对照组的基准线baseline大小,让GPU利用率达到最大,再继续判断调整所述baseline大小后的待量化神经网络模型加速比是符合预设值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据所述最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数,包括:
将所述调整后神经网络模型解析成量化计算图;
根据所述待部署硬件平台支持的量化算子类型,从所述量化计算图中切分出需要量化的算子、以及不需要量化的算子;
读取量化参数配置模块的配置信息,为所述需要量化的算子初始化量化信息;
对经过初始化算子后的神经网络模型进行后训练量化,若所述初始化算子后的神经网络模型的量化误差符合预设值,则量化成功。
6.根据权利要求5所述的方法,其特征在于,若所述初始化算子后的神经网络模型的量化误差不符合预设值,通过自适应的图调度算法进行优化,包括:
通过逐层误差分析方法得到所述初始化算子后的神经网络模型单独每一层的量化误差,获取所述量化误差大于所述预设值的层组成调度集S;
遍历所述调度集S,进行图调度优化,将所述调度集S中每一层都调度到高精度平台进行量化;
若经过图调度优化的神经网络模型的量化误差符合所述预设值,则量化成功。
7.根据权利要求6所述的方法,其特征在于,若经过图调度优化的神经网络模型的量化误差不符合所述预设值,对所述经过图调度优化的神经网络模型进行量化感知训练,包括:
在所述经过图调度优化的神经网络模型插入伪量化节点,并在所述经过图调度优化的神经网络模型的神经网络中逐层进行权重和激活值量化步长的学习;
若经过量化感知训练的神经网络模型的量化误差符合所述预设值,则量化成功。
8.一种支持多种硬件平台的神经网络模型量化部署装置,其特征在于,包括以下模块:
获取模块,用于获取待量化神经网络模型;
量化参数配置模块,用于针对待部署硬件平台配置网络量化参数,所述待部署硬件平台包括电力开放环境下的硬件平台;
预量化模块,用于根据所述待部署硬件平台使用基准量化方法对所述待量化神经网络模型进行预量化,导出预量化神经网络模型和预量化神经网络模型参数;
模型分布调整模块,用于使用跨层权重均衡与偏差吸收相结合的思想对所述预量化神经网络模型参数进行均匀分布调整,获取调整后神经网络模型;
量化引擎模块,用于根据所述待部署硬件平台使用自适应图调度策略找到所述调整后神经网络模型精度和速度间的最佳平衡点,根据所述最佳平衡点计算并导出量化后神经网络模型和量化后神经网络模型参数;
模型部署模块,用于将所述量化后神经网络模型参数写入到待部署硬件平台。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一所述的支持多种硬件平台的神经网络模型量化部署方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的支持多种硬件平台的神经网络模型量化部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310102989.6A CN116362287A (zh) | 2023-01-29 | 2023-01-29 | 一种支持多种硬件平台的神经网络模型量化部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310102989.6A CN116362287A (zh) | 2023-01-29 | 2023-01-29 | 一种支持多种硬件平台的神经网络模型量化部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116362287A true CN116362287A (zh) | 2023-06-30 |
Family
ID=86929564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310102989.6A Pending CN116362287A (zh) | 2023-01-29 | 2023-01-29 | 一种支持多种硬件平台的神经网络模型量化部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362287A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114075A (zh) * | 2023-10-19 | 2023-11-24 | 湖南苏科智能科技有限公司 | 神经网络模型量化方法、装置、设备及介质 |
-
2023
- 2023-01-29 CN CN202310102989.6A patent/CN116362287A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114075A (zh) * | 2023-10-19 | 2023-11-24 | 湖南苏科智能科技有限公司 | 神经网络模型量化方法、装置、设备及介质 |
CN117114075B (zh) * | 2023-10-19 | 2024-01-26 | 湖南苏科智能科技有限公司 | 神经网络模型量化方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550323B (zh) | 一种分布式数据库负载均衡预测方法和预测分析器 | |
CN106485316A (zh) | 神经网络模型压缩方法以及装置 | |
CN112906294A (zh) | 用于深度学习模型的量化方法和量化装置 | |
CN110969251A (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
CN114218875A (zh) | 一种用于流场预测的加速方法及装置 | |
CN116362287A (zh) | 一种支持多种硬件平台的神经网络模型量化部署方法 | |
CN110413657B (zh) | 面向季节型非平稳并发量的平均响应时间评估方法 | |
CN111553510A (zh) | 一种短期风速预测方法 | |
CN111160516B (zh) | 一种深度神经网络的卷积层稀疏化方法及装置 | |
CN112101524A (zh) | 可在线切换比特位宽的量化神经网络的方法及系统 | |
CN116432543B (zh) | 功率半导体模块剩余寿命预测方法、终端设备及存储介质 | |
CN114936085A (zh) | 基于深度学习算法的etl调度方法及装置 | |
CN113902108A (zh) | 一种量化位宽动态选择的神经网络加速硬件架构及方法 | |
CN111985845A (zh) | 一种异构Spark集群的节点优先级调优方法 | |
CN113190345B (zh) | 一种面向软件定义卫星的神经网络模型部署的方法以及装置 | |
CN112200208B (zh) | 基于多维度特征融合的云工作流任务执行时间预测方法 | |
CN111158918B (zh) | 支撑点并行枚举负载均衡方法、装置、设备及介质 | |
CN117196000A (zh) | 一种容器化部署的边缘侧模型推理加速方法 | |
CN113779861B (zh) | 光伏功率的预测方法及终端设备 | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
CN114970856A (zh) | 基于硬件特性的模型剪枝方法、装置、设备及存储介质 | |
Chaudhuri et al. | DSLEUTH: A distributed version of SLEUTH urban growth model | |
CN113297540A (zh) | 在边缘物联代理服务下的app资源需求预测方法、装置及系统 | |
CN117912484B (zh) | 一种剪枝可调的音频分离模型优化方法和装置 | |
CN114879769B (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 |