模型量化方法、装置、设备、计算机程序及存储介质制造方法及图纸

技术编号:33708071 阅读:14 留言:0更新日期:2022-06-06 08:34
本公开实施例公开了一种模型量化方法、装置、设备、计算机程序及存储介质,能够提高模型量化的精度与量化模型部署的广泛性。方法包括:利用待量化的初始模型进行模型推理,得到初始数据集合;基于目标部署平台的量化模式,对初始模型进行模拟量化,得到量化数据集合;模拟量化用于对初始模型中每个网络层输出的激活值进行量化与还原后进入下一层网络层进行推理;基于初始数据集合与量化数据集合,计算量化误差集合;并基于量化误差集合对初始模型进行调整,得到量化模型;基于每个网络层模拟量化后的激活值的截断值,生成量化参数;量化参数用于将量化模型部署至目标部署平台。化参数用于将量化模型部署至目标部署平台。化参数用于将量化模型部署至目标部署平台。

【技术实现步骤摘要】
模型量化方法、装置、设备、计算机程序及存储介质


[0001]本公开涉及人工智能领域,尤其涉及一种模型量化方法、装置、设备、计算机程序及存储介质。

技术介绍

[0002]目前,在神经网络模型如深度学习模型的部署应用过程中,通常会通过模型量化,来显著减小模型的体积大小,缩短模型的运行时间,提高算法效率。然而,模型在量化过程中会遇到许多挑战,首先,模型量化,如从浮点量化到8bit整型往往会带来精度上的损失,相关技术通常会通过混合精度的方法来减少精度的损失或降低,对精度的提升非常有限。其次,目前的模型量化工具是面向目标部署平台的软/硬件配置来进行模型量化的,从而降低了量化模型在其他平台上应用的广泛性。

技术实现思路

[0003]本公开实施例期望提供一种模型量化方法、装置、设备、计算机程序及存储介质,能够提高模型量化的精度与量化模型部署的广泛性。
[0004]本公开的技术方案是这样实现的:
[0005]本公开实施例提供了一种模型量化方法,包括:
[0006]利用待量化的初始模型进行模型推理,得到初始数据集合;所述初始数据集合包含所述初始模型中每个网络层输出的激活值的截断值;
[0007]基于目标部署平台的量化模式,对所述初始模型进行模拟量化,得到量化数据集合;所述模拟量化用于对所述初始模型中每个网络层输出的激活值进行量化与还原后进入下一层网络层进行推理,所述量化数据集合包含所述每个网络层模拟量化后的激活值的截断值;
[0008]基于所述初始数据集合与所述量化数据集合,计算量化误差集合;并基于所述量化误差集合对所述初始模型进行调整,得到量化模型;
[0009]基于所述每个网络层模拟量化后的激活值的截断值,生成量化参数;所述量化参数用于将所述量化模型部署至所述目标部署平台。
[0010]本公开实施例提供了一种模型量化装置,包括:
[0011]推理模块,用于利用待量化的初始模型进行模型推理,得到初始数据集合;所述初始数据集合包含所述初始模型中每个网络层输出的激活值的截断值;
[0012]模拟量化模块,用于基于目标部署平台的量化模式,对所述初始模型进行模拟量化,得到量化数据集合;所述模拟量化用于对所述初始模型中每个网络层输出的激活值进行量化与还原后进入下一层网络层进行推理,所述量化数据集合包含所述每个网络层模拟量化后的激活值的截断值;
[0013]误差调整模块,用于基于所述初始数据集合与所述量化数据集合,计算量化误差集合;并基于所述量化误差集合对所述初始模型进行调整,得到量化模型;
[0014]参数生成模块,用于基于所述每个网络层模拟量化后的激活值的截断值,生成量化参数;所述量化参数用于将所述量化模型部署至所述目标部署平台。
[0015]上述装置中,所述推理模块,还用于获取量化校准数据;通过所述初始模型中的每个网络层,对所述量化校准数据进行模型推理,得到所述每个网络层输出的至少一个激活值;对于所述每个网络层的至少一个激活值,利用至少一种预设统计算法进行统计截断处理,得到所述每个网络层对应的激活值的截断值,作为所述初始数据集合。
[0016]上述装置中,所述每个网络层对应的激活值的截断值,包括以下任意一种:
[0017]所述至少一个激活值中的最大值、所述至少一个激活值中的最小值、或所述至少一个激活值的中位数的方差值。
[0018]上述装置中,所述模拟量化模块,还用于对于所述初始模型中的每个网络层,根据所述每个网络层对应的激活值的截断值,得到所述每个网络层对应的量化尺度;利用所述初始模型中的第i层网络,对第i

1层输出的第i

1个量化数据进行推理,得到第i个初始激活值;其中,i为大于或等于2的正整数;第1个量化数据为所述初始模型中的第一层网络对量化校准数据进行推理,并对推理得到的第一个初始激活值进行量化处理与尺度还原得到的;根据所述第i层网络对应的量化尺度,结合所述量化模式与预设量化精度,对所述第i个初始激活值进行量化处理与尺度还原,得到第i个量化数据,实现对所述第i层网络层的模拟量化,直至对所述初始模型中的各个网络层实现模拟量化,得到所述量化数据集合。
[0019]上述装置中,所述量化模式包括:零点系数,所述模拟量化模块,还用于对所述第i个初始激活值与所述量化尺度的比值进行取整,得到第i个初始量化值;利用零点系数,对所述第i个初始量化值进行调整,得到第i个中间量化值;利用所述预设量化精度,对所述第i个中间量化值进行截断,得到第i个量化值,完成量化处理过程;将所述第i个量化值与所述量化尺度的乘积,作为所述第i个量化数据,完成尺度还原过程。
[0020]上述装置中,所述误差调整模块,还用于计算所述初始数据集合中每个初始数据,与所述量化数据集合中每个量化数据之间的余弦距离,作为所述每个网络层对应的量化误差,从而得到所述量化误差集合。
[0021]上述装置中,所述误差调整模块,还用于在通过对所述量化误差集合进行误差数值分析和/或误差分布分析,确定达到预设调整条件的情况下,根据所述目标部署平台的平台类型,确定误差调整方式;采用所述误差调整方式,对所述初始模型的网络参数进行调整,得到所述量化模型。
[0022]上述装置中,所述误差调整模块,还用于在通过对所述量化误差集合进行误差数值分析和/或误差分布分析,确定达到预设调整条件的情况下,基于误差数值分析和/或误差分布的分析结果,对所述初始模型的网络参数进行调整,得到所述量化模型。
[0023]上述装置中,所述误差调整模块,还用于在通过对所述量化误差集合进行误差数值分析和/或误差分布分析,确定达到预设调整条件的情况下,通过对所述初始数据集合与所述量化数据集合进行张量对比,对所述初始模型的网络参数进行调整,得到所述量化模型。
[0024]上述装置中,所述误差调整模块,还用于通过对比所述初始数据集合与所述量化数据集合的张量数值分布,得到张量分布信息;以及/或者,通过对比所述初始数据集合与所述量化数据集合的张量尺度信息,得到量化分组信息;所述张量尺度表征用于进行量化
的分组形式;将所述张量分布信息和/或所述量化分组信息作为误差表现信息,并基于所述误差表现信息,或者基于所述误差表现信息与目标部署平台的平台类型的组合,确定误差调整方式;采用所述误差调整方式,对所述初始模型的网络参数进行调整,得到所述量化模型。
[0025]上述装置中,所述误差调整模块,还用于根据所述误差表现信息中的张量分布信息,得到所述初始数据集合与所述量化数据集合在各通道的张量数值的分布特征差异;在所述分布特征差异满足预设张量分布调整条件的情况下,确定模型跨层平均化算法作为所述误差调整方式;以及/或者,在所述误差表现信息中的量化分组信息表征存在至少两个量化分组的情况下,确定偏置修正算法作为所述误差调整方式;以及/或者,在所述分布特征差异满足预设张量分布调整条件,或者,量化分组信息表征存在至少两个量化分组的情况下,确定所述平台类型对应的预设量本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型量化方法,其特征在于,包括:利用待量化的初始模型进行模型推理,得到初始数据集合;所述初始数据集合包含所述初始模型中每个网络层输出的激活值的截断值;基于目标部署平台的量化模式,对所述初始模型进行模拟量化,得到量化数据集合;所述模拟量化用于对所述初始模型中每个网络层输出的激活值进行量化与还原后进入下一层网络层进行推理,所述量化数据集合包含所述每个网络层模拟量化后的激活值的截断值;基于所述初始数据集合与所述量化数据集合,计算量化误差集合;并基于所述量化误差集合对所述初始模型进行调整,得到量化模型;基于所述每个网络层模拟量化后的激活值的截断值,生成量化参数;所述量化参数用于将所述量化模型部署至所述目标部署平台。2.根据权利要求1所述的方法,其特征在于,所述利用待量化的初始模型进行模型推理,得到初始数据集合,包括:获取量化校准数据;通过所述初始模型中的每个网络层,对所述量化校准数据进行模型推理,得到所述每个网络层输出的至少一个激活值;对于所述每个网络层的至少一个激活值,利用至少一种预设统计算法进行统计截断处理,得到所述每个网络层对应的激活值的截断值,作为所述初始数据集合。3.根据权利要求2所述的方法,其特征在于,所述每个网络层对应的激活值的截断值,包括以下任意一种:所述至少一个激活值中的最大值、所述至少一个激活值中的最小值、或所述至少一个激活值的中位数的方差值。4.根据权利要求1

3任一项所述的方法,其特征在于,所述基于目标部署平台的量化模式,对所述初始模型进行模拟量化,得到量化数据集合,包括:对于所述初始模型中的每个网络层,根据所述每个网络层对应的激活值的截断值,得到所述每个网络层对应的量化尺度;利用所述初始模型中的第i层网络,对第i

1层输出的第i

1个量化数据进行推理,得到第i个初始激活值;其中,i为大于或等于2的正整数;第1个量化数据为所述初始模型中的第一层网络对量化校准数据进行推理,并对推理得到的第一个初始激活值进行量化处理与尺度还原得到的;根据所述第i层网络对应的量化尺度,结合所述量化模式与预设量化精度,对所述第i个初始激活值进行量化处理与尺度还原,得到第i个量化数据,实现对所述第i层网络层的模拟量化,直至对所述初始模型中的各个网络层实现模拟量化,得到所述量化数据集合。5.根据权利要求4所述的方法,其特征在于,所述量化模式包括:零点系数,所述根据所述第i层网络对应的量化尺度,结合所述量化模式与预设量化精度,对所述第i个初始激活值进行量化处理与尺度还原,得到第i个量化数据,包括:对所述第i个初始激活值与所述量化尺度的比值进行取整,得到第i个初始量化值;利用零点系数,对所述第i个初始量化值进行调整,得到第i个中间量化值;利用所述预设量化精度,对所述第i个中间量化值进行截断,得到第i个量化值,完成量
化处理过程;将所述第i个量化值与所述量化尺度的乘积,作为所述第i个量化数据,完成尺度还原过程。6.根据权利要求1或5所述的方法,其特征在于,所述基于所述初始数据集合与所述量化数据集合,计算量化误差集合,包括:计算所述初始数据集合中每个初始数据,与所述量化数据集合中每个量化数据之间的余弦距离,作为所述每个网络层对应的量化误差,从而得到所述量化误差集合。7.根据权利要求1或5所述的方法,其特征在于,所述基于所述量化误差集合对所述初始模型进行调整,得到量化模型,包括:在通过对所述量化误差集合进行误差数值分析和/或误差分布分析,确定达到预设调整条件的情况下,根据所述目标部署平台的平台类型,确定误差调整方式;采用所述误差调整方式,对所述初始模型的网络参数进行调整,得到所述量化模型。8.根据权利要求1或5所述的方法,其特征在于,所述基于所述量化误差集合对所述初始模型进行调整,得到量化模型,包括:在通过对所述量化误差集合进行误差数值分析和/或误差分布分析,确定达到预设调整条件的情况下,基于误差数值分析和/或误差分布的分析结果,对所述初始模型的网络参数进行调整,得到所述量化模型...

【专利技术属性】
技术研发人员:张琦
申请(专利权)人:北京市商汤科技开发有限公司
类型:发明
国别省市:

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

1