CN116189667A - 语音处理模型的量化压缩方法、装置、设备和存储介质 - Google Patents
语音处理模型的量化压缩方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116189667A CN116189667A CN202310473516.7A CN202310473516A CN116189667A CN 116189667 A CN116189667 A CN 116189667A CN 202310473516 A CN202310473516 A CN 202310473516A CN 116189667 A CN116189667 A CN 116189667A
- Authority
- CN
- China
- Prior art keywords
- processing model
- output data
- parameter
- sensitivity
- speech
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 777
- 238000000034 method Methods 0.000 title claims abstract description 223
- 230000006835 compression Effects 0.000 title claims abstract description 156
- 238000007906 compression Methods 0.000 title claims abstract description 156
- 238000003860 storage Methods 0.000 title claims abstract description 41
- 238000013139 quantization Methods 0.000 title claims description 150
- 230000035945 sensitivity Effects 0.000 claims abstract description 439
- 238000009826 distribution Methods 0.000 claims description 315
- 238000006243 chemical reaction Methods 0.000 claims description 59
- 238000013507 mapping Methods 0.000 claims description 55
- 238000012549 training Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 18
- 239000000758 substrate Substances 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 107
- 230000006870 function Effects 0.000 description 43
- 230000000694 effects Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 238000013473 artificial intelligence Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 6
- 230000002596 correlated effect Effects 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开涉及基于特定计算模型的计算机系统技术领域,尤其涉及一种语音处理模型的量化压缩方法、装置、设备和存储介质。所述方法包括:对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,第二精度小于第一精度;至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度;根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。本公开针对语音处理模型中的不同参数,可以确定出不同的目标精度,从而能够实现更低精度的无损压缩。
Description
技术领域
本公开涉及基于特定计算模型的计算机系统技术领域,尤其涉及一种语音处理模型的量化压缩方法、装置、设备和存储介质。
背景技术
在人工智能领域,对于有深度神经网络应用的模型和任务,例如语音识别、语音合成等,随着模型的增大,参数量的增多,带来的计算资源损耗和存储空间的要求会逐步提升,模型部署在应用端侧(例如手机等)的难度也越来越大。在这个前提要求下,模型压缩的应用就显得异常重要。
量化压缩是神经网络模型压缩很有效的一个方法。例如,通过将32bit的全精度浮点参数映射为低精度,例如8bit的整数类参数,可以有效地降低模型的存储空间,提高矩阵计算的效率,从而减少计算资源损耗。
发明内容
本公开提供了一种语音处理模型的量化压缩技术方案。
根据本公开的一方面,提供了一种语音处理模型的量化压缩方法,包括:
对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度;
至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度;
根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第一敏感度;
所述至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度,包括:
根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:
对所述第一语音输出数据映射得到第一概率分布;
对所述第二语音输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述对所述第一语音输出数据映射得到第一概率分布,包括:对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布;
所述对所述第二语音输出数据映射得到第二概率分布,包括:对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
在一种可能的实现方式中,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度,包括:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述语音输入数据的至少两项第二语音输出数据,其中,所述至少两项第二语音输出数据与所述至少两种第二精度一一对应;
所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:根据第一语音输出数据和所述至少两项第二语音输出数据,确定所述语音处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第二敏感度;
所述方法还包括:
获取所述网络层在所述语音处理模型中的层数以及所述语音处理模型的总层数;
根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度,包括:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述语音处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:
获取所述语音处理模型的量化压缩目标;
根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述语音处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据之前,所述方法还包括:
对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据之前,所述方法还包括:
从经过正则化处理的语音输入数据集中,随机选择语音输入数据。
在一种可能的实现方式中,在所述根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:
根据所述语音处理模型的各网络层的参数的目标精度,设置所述语音处理模型的各网络层的参数的精度;
采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型。
在一种可能的实现方式中,在所述采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型之后,所述方法还包括:
将所述训练完成的语音处理模型部署在用户终端。
根据本公开的一方面,提供了一种语音处理模型的量化压缩装置,包括:
第一获得模块,用于对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度;
第一确定模块,用于至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度;
第二确定模块,用于根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第一敏感度;
所述第一确定模块用于:
根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第一确定模块用于:
对所述第一语音输出数据映射得到第一概率分布;
对所述第二语音输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第一确定模块用于:
对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布;
对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
在一种可能的实现方式中,所述第一确定模块用于:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述第一获得模块用于:基于至少两种第二精度的所述参数,得到所述网络层针对所述语音输入数据的至少两项第二语音输出数据,其中,所述至少两项第二语音输出数据与所述至少两种第二精度一一对应;
所述第一确定模块用于:根据第一语音输出数据和所述至少两项第二语音输出数据,确定所述语音处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第二敏感度;
所述装置还包括:
第一获取模块,用于获取所述网络层在所述语音处理模型中的层数以及所述语音处理模型的总层数;
第三确定模块,用于根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第三确定模块用于:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述语音处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第二确定模块用于:
获取所述语音处理模型的量化压缩目标;
根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述语音处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,所述装置还包括:
第一初始化模块,用于对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,所述装置还包括:
第一随机选择模块,用于从经过正则化处理的语音输入数据集中,随机选择语音输入数据。
在一种可能的实现方式中,所述装置还包括:
第一设置模块,用于根据所述语音处理模型的各网络层的参数的目标精度,设置所述语音处理模型的各网络层的参数的精度;
第一训练模块,用于采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型。
在一种可能的实现方式中,所述装置还包括:
第一部署模块,用于将所述训练完成的语音处理模型部署在用户终端。
根据本公开的一方面,提供了一种图像处理模型的量化压缩方法,包括:
对于图像处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据,并基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,其中,所述第二精度小于所述第一精度;
至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度;
根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第一敏感度;
所述至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度,包括:
根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:
对所述第一图像输出数据映射得到第一概率分布;
对所述第二图像输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述对所述第一图像输出数据映射得到第一概率分布,包括:对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布;
所述对所述第二图像输出数据映射得到第二概率分布,包括:对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布。
在一种可能的实现方式中,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度,包括:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述图像输入数据的至少两项第二图像输出数据,其中,所述至少两项第二图像输出数据与所述至少两种第二精度一一对应;
所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:根据第一图像输出数据和所述至少两项第二图像输出数据,确定所述图像处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第二敏感度;
所述方法还包括:
获取所述网络层在所述图像处理模型中的层数以及所述图像处理模型的总层数;
根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度,包括:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述图像处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:
获取所述图像处理模型的量化压缩目标;
根据所述图像处理模型对所述图像处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述图像处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据之前,所述方法还包括:
对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据之前,所述方法还包括:
从经过正则化处理的图像输入数据集中,随机选择图像输入数据。
在一种可能的实现方式中,在所述根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:
根据所述图像处理模型的各网络层的参数的目标精度,设置所述图像处理模型的各网络层的参数的精度;
采用图像样本集对设置参数精度后的所述图像处理模型进行训练,得到训练完成的图像处理模型。
在一种可能的实现方式中,在所述采用图像样本集对设置参数精度后的所述图像处理模型进行训练,得到训练完成的图像处理模型之后,所述方法还包括:
将所述训练完成的图像处理模型部署在用户终端。
根据本公开的一方面,提供了一种图像处理模型的量化压缩装置,包括:
第二获得模块,用于对于图像处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据,并基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,其中,所述第二精度小于所述第一精度;
第四确定模块,用于至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度;
第五确定模块,用于根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第一敏感度;
所述第四确定模块用于:
根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第四确定模块用于:
对所述第一图像输出数据映射得到第一概率分布;
对所述第二图像输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第四确定模块用于:
对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布;
对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布。
在一种可能的实现方式中,所述第四确定模块用于:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述第二获得模块用于:基于至少两种第二精度的所述参数,得到所述网络层针对所述图像输入数据的至少两项第二图像输出数据,其中,所述至少两项第二图像输出数据与所述至少两种第二精度一一对应;
所述第四确定模块用于:根据第一图像输出数据和所述至少两项第二图像输出数据,确定所述图像处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第二敏感度;
所述装置还包括:
第二获取模块,用于获取所述网络层在所述图像处理模型中的层数以及所述图像处理模型的总层数;
第六确定模块,用于根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第六确定模块用于:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述图像处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第五确定模块用于:
获取所述图像处理模型的量化压缩目标;
根据所述图像处理模型对所述图像处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述图像处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,所述装置还包括:
第二初始化模块,用于对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,所述装置还包括:
第二随机选择模块,用于从经过正则化处理的图像输入数据集中,随机选择图像输入数据。
在一种可能的实现方式中,所述装置还包括:
第二设置模块,用于根据所述图像处理模型的各网络层的参数的目标精度,设置所述图像处理模型的各网络层的参数的精度;
第二训练模块,用于采用图像样本集对设置参数精度后的所述图像处理模型进行训练,得到训练完成的图像处理模型。
在一种可能的实现方式中,所述装置还包括:
第二部署模块,用于将所述训练完成的图像处理模型部署在用户终端。
根据本公开的一方面,提供了一种文本处理模型的量化压缩方法,包括:
对于文本处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据,并基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,其中,所述第二精度小于所述第一精度;
至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度;
根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第一敏感度;
所述至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度,包括:
根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:
对所述第一文本输出数据映射得到第一概率分布;
对所述第二文本输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述对所述第一文本输出数据映射得到第一概率分布,包括:对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布;
所述对所述第二文本输出数据映射得到第二概率分布,包括:对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布。
在一种可能的实现方式中,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度,包括:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述文本输入数据的至少两项第二文本输出数据,其中,所述至少两项第二文本输出数据与所述至少两种第二精度一一对应;
所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:根据第一文本输出数据和所述至少两项第二文本输出数据,确定所述文本处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第二敏感度;
所述方法还包括:
获取所述网络层在所述文本处理模型中的层数以及所述文本处理模型的总层数;
根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度,包括:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述文本处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:
获取所述文本处理模型的量化压缩目标;
根据所述文本处理模型对所述文本处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述文本处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据之前,所述方法还包括:
对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据之前,所述方法还包括:
从经过正则化处理的文本输入数据集中,随机选择文本输入数据。
在一种可能的实现方式中,在所述根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:
根据所述文本处理模型的各网络层的参数的目标精度,设置所述文本处理模型的各网络层的参数的精度;
采用文本样本集对设置参数精度后的所述文本处理模型进行训练,得到训练完成的文本处理模型。
在一种可能的实现方式中,在所述采用文本样本集对设置参数精度后的所述文本处理模型进行训练,得到训练完成的文本处理模型之后,所述方法还包括:
将所述训练完成的文本处理模型部署在用户终端。
根据本公开的一方面,提供了一种文本处理模型的量化压缩装置,包括:
第三获得模块,用于对于文本处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据,并基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,其中,所述第二精度小于所述第一精度;
第七确定模块,用于至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度;
第八确定模块,用于根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第一敏感度;
所述第七确定模块用于:
根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第七确定模块用于:
对所述第一文本输出数据映射得到第一概率分布;
对所述第二文本输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第七确定模块用于:
对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布;
对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布。
在一种可能的实现方式中,所述第七确定模块用于:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述第三获得模块用于:基于至少两种第二精度的所述参数,得到所述网络层针对所述文本输入数据的至少两项第二文本输出数据,其中,所述至少两项第二文本输出数据与所述至少两种第二精度一一对应;
所述第七确定模块用于:根据第一文本输出数据和所述至少两项第二文本输出数据,确定所述文本处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第二敏感度;
所述装置还包括:
第三获取模块,用于获取所述网络层在所述文本处理模型中的层数以及所述文本处理模型的总层数;
第九确定模块,用于根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第九确定模块用于:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述文本处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第八确定模块用于:
获取所述文本处理模型的量化压缩目标;
根据所述文本处理模型对所述文本处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述文本处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,所述装置还包括:
第三初始化模块,用于对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,所述装置还包括:
第三随机选择模块,用于从经过正则化处理的文本输入数据集中,随机选择文本输入数据。
在一种可能的实现方式中,所述装置还包括:
第三设置模块,用于根据所述文本处理模型的各网络层的参数的目标精度,设置所述文本处理模型的各网络层的参数的精度;
第三训练模块,用于采用文本样本集对设置参数精度后的所述文本处理模型进行训练,得到训练完成的文本处理模型。
在一种可能的实现方式中,所述装置还包括:
第三部署模块,用于将所述训练完成的文本处理模型部署在用户终端。
根据本公开的一方面,提供了一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出本公开实施例提供的语音处理模型的量化压缩方法的流程图。
图2示出本公开实施例提供的语音处理模型的量化压缩装置的框图。
图3示出本公开实施例提供的图像处理模型的量化压缩方法的流程图。
图4示出本公开实施例提供的图像处理模型的量化压缩装置的框图。
图5示出本公开实施例提供的文本处理模型的量化压缩方法的流程图。
图6示出本公开实施例提供的文本处理模型的量化压缩装置的框图。
图7示出本公开实施例提供的电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
深度神经网络在人工智能各个领域上的应用是非常广泛和必要的,而神经网络的性能效果依赖于模型的参数量。如何减小神经网络的规模使其能够更广泛地应用到端侧部署中,减小计算资源损耗是一个难题,而量化压缩可以有效的解决这一问题。如何有效高效地应用量化压缩的方法,在训练过程中就通过量化压缩降低资源损耗也是重要的课题。
在实际应用量化压缩的时候,如果直接将整个网络所有参数都转成低精度的表示,例如32bit到8bit,可能会有非常大的模型性能损失,所以很多现有方法在实际应用时,会保留部分参数,比如偏差(bias)、激活(activation)层参数等为原有的32bit,从而减小性能损失。同时,模型的部分参数,对整个模型的结果影响不大,甚至可以压缩到更低精度,例如1bit,2bit。这种网络中有多种参数精度的量化压缩称为混精度量化压缩。
现有的混精度量化压缩有两种方法来决定模型的精度设置,即各个参数该选择什么精度设置来达到最好的模型压缩效果和性能收益。
第一种方法是根据经验手动调参,这种方法的训练成本较大,同时随着参数量的增加,可选择的精度设置会指数级增长,通常无法通过手动调参来获取一个全局最优解。
第二种方法则是利用不同的方法来自动学习网络参数的精度设置。其中,学习方法又可以分为两类,第一种方法通过结构搜索,将每个参数可选择的精度设置都加入到网络训练中,最后选择一个选项。第二种方法给每个参数指定一个表示其对最后模型结果敏感程度的参数,利用“模型结果对这个参数越敏感,这个参数就应该给与更高精度”的原则来选取最后网络参数的精度测试。
以上提到的两种方法,都需要根据不同的模型,对不同的任务进行调节和重新训练。
本公开实施例提供了一种语音处理模型的量化压缩方法,通过对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度,至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度,并根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度,由此针对语音处理模型中的不同参数,可以确定出不同的目标精度,从而能够实现混精度的量化压缩,能够实现更低精度的无损压缩。另外,本公开实施例提供的语音处理模型的量化压缩方法能够在语音处理模型训练之前决定各网络层的参数的精度,从而能够进一步在训练过程中减少资源损耗,并且达到更低精度的无损量化压缩。再者,本公开实施例提供的语音处理模型在对参数进行敏感度评估的过程中,不依赖于语音处理模型的具体网络结构。
图1示出本公开实施例提供的语音处理模型的量化压缩方法的流程图。在一种可能的实现方式中,所述语音处理模型的量化压缩方法的执行主体可以是语音处理模型的量化压缩装置,例如,所述语音处理模型的量化压缩方法可以由终端设备或服务器或其它电子设备执行。其中,终端设备可以是用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备或者可穿戴设备等。在一些可能的实现方式中,所述语音处理模型的量化压缩方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图1所示,所述语音处理模型的量化压缩方法包括步骤S11至步骤S13。
在步骤S11中,对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度。
在步骤S12中,至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度。
在步骤S13中,根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。
本公开实施例中的语音处理模型可以表示用于语音处理的神经网络模型。例如,语音处理模型可以用于语音合成、语音识别等,在此不做限定。
在本公开实施例中,对于语音处理模型的各个网络层的参数,分别确定目标精度,其中,不同参数的目标精度可以不同。
在本公开实施例中,对于语音处理模型中的任一网络层的参数,对第一精度的所述参数进行量化,可以得到第二精度的所述参数。其中,第二精度可以包括至少一种精度。例如,第一精度为32比特,第二精度包括1比特、2比特、4比特、8比特、16比特中的至少之一。例如,第二精度包括1比特、2比特、4比特和8比特。
在一个例子中,32比特的所述参数可以记为W,1比特的所述参数可以记为Q1(W),2比特的所述参数可以记为Q2(W),4比特的所述参数可以记为Q4(W),8比特的所述参数可以记为Q8(W)。
在本公开实施例中,对于语音处理模型中的任一网络层,所述网络层的语音输入数据可以是语音相关特征或者语音。例如,语音处理模型的首个网络层的语音输入数据可以是至少一路语音或者可以是语音相关特征,语音处理模型的非首个网络层的语音输入数据可以是语音相关特征。在本公开实施例中,对于语音处理模型中的任一网络层,所述网络层的语音输出数据可以是语音相关特征。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据之前,所述方法还包括:对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一个例子中,可以在取值范围[0,1]中,对所述参数进行随机初始化,得到所述参数的第一精度的初始值。例如,第一精度为32比特,在取值范围[0,1]中,对所述参数进行随机初始化,可以得到32比特的所述参数。对32比特的所述参数进行量化,可以得到1比特的所述参数、2比特的所述参数、4比特的所述参数和8比特的所述参数。
在该实现方式中,通过对语音处理模型的各网络层的参数进行随机初始化,能够得到各参数的第一精度的随机值。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据之前,所述方法还包括:从经过正则化处理的语音输入数据集中,随机选择语音输入数据。其中,语音输入数据集可以包括多个语音输入数据。正则化处理可以包括零均值化和归一化方差处理。
在该实现方式中,通过从经过正则化处理的语音输入数据集中,随机选择语音输入数据,由此有助于提高所确定的各个参数的目标精度的准确性。
在一个例子中,语音输入数据为X,基于32比特的所述参数W,可以得到所述网络层针对语音输入数据X的第一语音输出数据W·X。基于1比特的所述参数Q1(W),可以得到所述网络层针对语音输入数据X的第二语音输出数据Q1(W)·X;基于2比特的所述参数Q2(W),可以得到所述网络层针对语音输入数据X的第二语音输出数据Q2(W)·X;基于4比特的所述参数Q4(W),可以得到所述网络层针对语音输入数据X的第二语音输出数据Q4(W)·X;基于8比特的所述参数Q1(W),可以得到所述网络层针对语音输入数据X的第二语音输出数据Q8(W)·X。
在一种可能的实现方式中,可以仅根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度。
在另一种可能的实现方式中,可以根据所述第一语音输出数据和所述第二语音输出数据,以及所述参数和/或所述网络层的其他信息(例如所述网络层在所述语音处理模型中的层数),确定所述语音处理模型对所述参数的敏感度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第一敏感度;所述至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度,包括:根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度。
在该实现方式中,第一敏感度可以体现所述第一语音输出数据与所述第二语音输出数据。所述第一语音输出数据与所述第二语音输出数据之间的差异越大,则第一敏感度越高;所述第一语音输出数据与所述第二语音输出数据之间的差异越小,则第一敏感度越低。
在该实现方式中,通过根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,由此能够至少根据第一敏感度确定所述参数的目标精度。
作为该实现方式的一个示例,所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:对所述第一语音输出数据映射得到第一概率分布;对所述第二语音输出数据映射得到第二概率分布;根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度。
在该示例中,第一概率分布可以表示第一语音输出数据对应的概率分布,第二概率分布可以表示第二语音输出数据对应的概率分布。
在该示例中,第一概率分布与第二概率分布之间的差异越大,则语音处理模型对所述参数的第一敏感度越高;第一概率分布与第二概率分布之间的差异越小,则语音处理模型对所述参数的第一敏感度越低。
例如,第一语音输出数据W·X对应的第一概率分布可以记为P32,第二语音输出数据Q1(W)·X对应的第二概率分布可以记为P1,第二语音输出数据Q2(W)·X对应的第二概率分布可以记为P2,第二语音输出数据Q4(W)·X对应的第二概率分布可以记为P4,第二语音输出数据Q8(W)·X对应的第二概率分布可以记为P8。
在该示例中,通过对所述第一语音输出数据映射得到第一概率分布;对所述第二语音输出数据映射得到第二概率分布,并根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度,由此能够提高第一敏感度的计算的稳定性,从而能够提高所确定的参数的目标精度的合理性。
在一个示例中,所述对所述第一语音输出数据映射得到第一概率分布,包括:对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布;所述对所述第二语音输出数据映射得到第二概率分布,包括:对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
例如,可以通过Softmax函数对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布,通过Softmax函数对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
例如,第一语音输出数据W·X对应的第一概率分布P32=Softmax(W·X),第二语音输出数据Q1(W)·X对应的第二概率分布P1=Softmax(Q1(W)·X),第二语音输出数据Q2(W)·X对应的第二概率分布P2=Softmax(Q2(W)·X),第二语音输出数据Q4(W)·X对应的第二概率分布P4=Softmax(Q4(W)·X),第二语音输出数据Q8(W)·X对应的第二概率分布P8=Softmax(Q8(W)·X)。
又如,可以通过LogSoftmax函数对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布,通过LogSoftmax函数对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
在该示例中,通过对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布,并对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布,由此能够准确地确定第一语音输出数据对应的第一概率分布和第二语音输出数据对应的第二概率分布。
在一个示例中,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度,包括:根据所述第一概率分布与所述第二概率分布之间的KL(Kullback-Leibler,库尔贝克-莱布勒)散度,确定所述语音处理模型对所述参数的第一敏感度。
例如,第一概率分布P32与第二概率分布P1之间的KL散度可以记为S1=KL(P32,P1),第一概率分布P32与第二概率分布P2之间的KL散度可以记为S2=KL(P32,P2),第一概率分布P32与第二概率分布P4之间的KL散度可以记为S4=KL(P32,P4),第一概率分布P32与第二概率分布P8之间的KL散度可以记为S8=KL(P32,P8),所述语音处理模型对所述参数的第一敏感度可以记为{ S1,S2,S4,S8}。
在其他示例中,还可以采用交叉熵、JS(Jensen-Shannon,詹森-香农)散度、瓦瑟斯坦距离(Wasserstein distance)等,根据第一概率分布与第二概率分布,确定所述语音处理模型对所述参数的第一敏感度,在此不做限定。
在该示例中,通过根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述语音处理模型对所述参数的第一敏感度,由此能够准确地确定所述语音处理模型对所述参数的第一敏感度。
作为该实现方式的一个示例,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第二敏感度;所述方法还包括:获取所述网络层在所述语音处理模型中的层数以及所述语音处理模型的总层数;根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度。
语音处理模型中的参数对语音处理模型的结果的影响,还与参数在语音处理模型中的位置有关,通常参数越靠近输入和输出,则对语音处理模型最后结果的影响越大。
在该示例中,通过获取所述网络层在所述语音处理模型中的层数以及所述语音处理模型的总层数,根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度,并根据所述语音处理模型对所述参数的第一敏感度和第二敏感度,确定所述参数的目标精度,基于由此确定出的各个参数的目标精度,有助于得到性能更好的语音处理模型。
在一个示例中,所述根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度,包括:确定所述总层数与所述层数的差值;取所述层数与所述差值中的最小值;将所述总层数与所述最小值的比值,确定为所述语音处理模型对所述参数的第二敏感度。
例如,对于语音处理模型中的任一网络层的参数,可以根据S’=L/min{l,L-l},确定所述语音处理模型对所述参数的第二敏感度,其中,L表示所述语音处理模型的总层数,l表示所述网络层在所述语音处理模型中的层数。
在该示例中,通过确定所述总层数与所述层数的差值,取所述层数与所述差值中的最小值,将所述总层数与所述最小值的比值,确定为所述语音处理模型对所述参数的第二敏感度,由此确定出的第二敏感度能够较准确地体现所述参数所在的网络层对所述语音处理模型的最后结果的影响程度。
作为该实现方式的另一个示例,所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:根据所述第一语音输出数据与所述第二语音输出数据之间的相似度,确定所述语音处理模型对所述参数的第一敏感度。在该示例中,可以将所述第一语音输出数据与所述第二语音输出数据之间的余弦距离,作为所述第一语音输出数据与所述第二语音输出数据之间的相似度。在该示例中,所述语音处理模型对所述参数的第一敏感度,与所述相似度负相关。即,所述第一语音输出数据与所述第二语音输出数据之间的相似度越大,则所述语音处理模型对所述参数的第一敏感度越低;所述第一语音输出数据与所述第二语音输出数据之间的相似度越小,则所述语音处理模型对所述参数的第一敏感度越高。
作为该实现方式的另一个示例,所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:对所述第一语音输出数据映射得到第一概率分布;根据所述第一概率分布与所述第二语音输出数据之间的第一马氏距离,确定所述语音处理模型对所述参数的第一敏感度。其中,第一马氏距离表示所述第一概率分布与所述第二语音输出数据之间的马氏距离。在该示例中,所述语音处理模型对所述参数的第一敏感度,与第一马氏距离正相关。即,第一马氏距离越大,则所述语音处理模型对所述参数的第一敏感度越高;第一马氏距离越小,则所述语音处理模型对所述参数的第一敏感度越低。
作为该实现方式的另一个示例,所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:对所述第二语音输出数据映射得到第二概率分布;根据所述第一语音输出数据与所述第二概率分布之间的第二马氏距离,确定所述语音处理模型对所述参数的第一敏感度。其中,第二马氏距离表示所述第一语音输出数据与所述第二概率分布之间的马氏距离。在该示例中,所述语音处理模型对所述参数的第一敏感度,与第二马氏距离正相关。即,第二马氏距离越大,则所述语音处理模型对所述参数的第一敏感度越高;第二马氏距离越小,则所述语音处理模型对所述参数的第一敏感度越低。
作为该实现方式的一个示例,所述基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述语音输入数据的至少两项第二语音输出数据,其中,所述至少两项第二语音输出数据与所述至少两种第二精度一一对应;所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:根据第一语音输出数据和所述至少两项第二语音输出数据,确定所述语音处理模型对所述参数的至少两项第一敏感度。
在该示例中,所述语音处理模型对所述参数的至少两项第一敏感度,与所述至少两项第二语音输出数据一一对应。
例如,第二精度包括4种精度,分别为1比特、2比特、4比特和8比特;基于4种第二精度的所述参数,得到所述网络层针对所述语音输入数据的4项第二语音输出数据;根据第一语音输出数据和4项第二语音输出数据,确定所述语音处理模型对所述参数的4项第一敏感度。
在该示例中,通过基于至少两种第二精度的所述参数,得到所述网络层针对所述语音输入数据的至少两项第二语音输出数据,其中,所述至少两项第二语音输出数据与所述至少两种第二精度一一对应,并根据第一语音输出数据和所述至少两项第二语音输出数据,确定所述语音处理模型对所述参数的至少两项第一敏感度,由此有助于得到更小且性能更好的语音处理模型。
在一个示例中,所述根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:获取所述语音处理模型的量化压缩目标;根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述语音处理器模型对所述各参数的敏感度之和;根据所述最小的敏感度和,确定所述各参数的目标精度。
例如,量化压缩目标为各参数的平均精度为4比特;又如,量化压缩目标可以设置各参数的总的比特数;等等。
例如,根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和SUMi{Si_ni+Si’},以得到各个参数的目标精度ni。其中,i表示语音处理模型的第i个参数。
在该示例中,通过获取所述语音处理模型的量化压缩目标,根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述语音处理器模型对所述各参数的敏感度之和,根据所述最小的敏感度和,确定所述各参数的目标精度,由此能够在使语音处理模型满足量化压缩目标的前提下,提高语音处理模型的性能。
在一种可能的实现方式中,在所述根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:根据所述语音处理模型的各网络层的参数的目标精度,设置所述语音处理模型的各网络层的参数的精度;采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型。
在该实现方式中,在根据所述语音处理模型的各网络层的参数的目标精度,设置所述语音处理模型的各网络层的参数的精度之后,可以采用语音样本集以及量化相关训练方法,对设置参数精度后的所述语音处理模型进行训练。
在该实现方式中,通过在语音处理模型开始训练之前,确定语音处理模型中的各网络层的参数的精度,即,在语音处理模型训练之前根据语音处理模型的量化压缩需求确定混精度量化压缩的精度设置,而无需在语音处理模型训练好之后再学习网络的精度设置,从而能够进一步降低语音处理模型训练的资源损耗,同时能够提高语音处理模型的量化压缩效果,提高语音处理模型的性能表现。
作为该实现方式的一个示例,在所述采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型之后,所述方法还包括:将所述训练完成的语音处理模型部署在用户终端。
在该示例中,经过量化压缩后的语音处理模型有利于在用户终端进行部署,能够节省用户终端的存储空间,提高语音处理模型的语音处理效率,减少用户终端的计算资源损耗。
当然,在其他示例中,所述训练完成的语音处理模型还可以部署在服务器端。
本公开实施例提供的语音处理模型的量化压缩方法可以应用于人工智能领域、模型压缩、量化压缩、语音识别、语音合成等技术领域,在此不做限定。
下面通过一个具体的应用场景说明本公开实施例提供的语音处理模型的量化压缩方法。在该应用场景中,语音处理模型包括4个全连接层,4个全连接层的权重参数分别记为W1、W2、W3和W4。
在取值范围[0,1]中,对4个权重参数分别进行随机初始化,可以得到32比特的权重参数W1、32比特的权重参数W2、32比特的权重参数W3和32比特的权重参数W4。
对32比特的权重参数W1进行量化,可以得到1比特的权重参数W1、2比特的权重参数W1、4比特的权重参数W1和8比特的权重参数W1。其中,1比特的权重参数W1可以记为Q1(W1),2比特的权重参数W1可以记为Q2(W1),4比特的权重参数W1可以记为Q4(W1),8比特的权重参数W1可以记为Q8(W1)。
对32比特的权重参数W2进行量化,可以得到1比特的权重参数W2、2比特的权重参数W2、4比特的权重参数W2和8比特的权重参数W2。其中,1比特的权重参数W2可以记为Q1(W2),2比特的权重参数W2可以记为Q2(W2),4比特的权重参数W2可以记为Q4(W2),8比特的权重参数W2可以记为Q8(W2)。
对32比特的权重参数W3进行量化,可以得到1比特的权重参数W3、2比特的权重参数W3、4比特的权重参数W3和8比特的权重参数W3。其中,1比特的权重参数W3可以记为Q1(W3),2比特的权重参数W3可以记为Q2(W3),4比特的权重参数W3可以记为Q4(W3),8比特的权重参数W3可以记为Q8(W3)。
对32比特的权重参数W4进行量化,可以得到1比特的权重参数W4、2比特的权重参数W4、4比特的权重参数W4和8比特的权重参数W4。其中,1比特的权重参数W4可以记为Q1(W4),2比特的权重参数W4可以记为Q2(W4),4比特的权重参数W4可以记为Q4(W4),8比特的权重参数W4可以记为Q8(W4)。
基于32比特的权重参数W1,可以得到语音处理模型的第一个全连接层针对语音输入数据X1的第一语音输出数据W1·X1。基于1比特的权重参数W1(即Q1(W1)),可以得到所述第一个全连接层针对语音输入数据X1的第二语音输出数据Q1(W1)·X1;基于2比特的权重参数W1(即Q2(W1)),可以得到所述第一个全连接层针对语音输入数据X1的第二语音输出数据Q2(W1)·X1;基于4比特的权重参数W1(即Q4(W1)),可以得到所述第一个全连接层针对语音输入数据X1的第二语音输出数据Q4(W1)·X1;基于8比特的权重参数W1(即Q8(W1)),可以得到所述第一个全连接层针对语音输入数据X1的第二语音输出数据Q8(W1)·X1。
基于32比特的权重参数W2,可以得到语音处理模型的第二个全连接层针对语音输入数据X2的第一语音输出数据W2·X2。基于1比特的权重参数W2(即Q1(W2)),可以得到所述第二个全连接层针对语音输入数据X2的第二语音输出数据Q1(W2)·X2;基于2比特的权重参数W2(即Q2(W2)),可以得到所述第二个全连接层针对语音输入数据X2的第二语音输出数据Q2(W2)·X2;基于4比特的权重参数W2(即Q4(W2)),可以得到所述第二个全连接层针对语音输入数据X2的第二语音输出数据Q4(W2)·X2;基于8比特的权重参数W2(即Q8(W2)),可以得到所述第二个全连接层针对语音输入数据X2的第二语音输出数据Q8(W2)·X2。
基于32比特的权重参数W3,可以得到语音处理模型的第三个全连接层针对语音输入数据X3的第一语音输出数据W3·X3。基于1比特的权重参数W3(即Q1(W3)),可以得到所述第三个全连接层针对语音输入数据X3的第二语音输出数据Q1(W3)·X3;基于2比特的权重参数W3(即Q2(W3)),可以得到所述第三个全连接层针对语音输入数据X3的第二语音输出数据Q2(W3)·X3;基于4比特的权重参数W3(即Q4(W3)),可以得到所述第三个全连接层针对语音输入数据X3的第二语音输出数据Q4(W3)·X3;基于8比特的权重参数W3(即Q8(W3)),可以得到所述第三个全连接层针对语音输入数据X3的第二语音输出数据Q8(W3)·X3。
基于32比特的权重参数W4,可以得到语音处理模型的第四个全连接层针对语音输入数据X4的第一语音输出数据W4·X4。基于1比特的权重参数W4(即Q1(W4)),可以得到所述第四个全连接层针对语音输入数据X4的第二语音输出数据Q1(W4)·X4;基于2比特的权重参数W4(即Q2(W4)),可以得到所述第四个全连接层针对语音输入数据X4的第二语音输出数据Q2(W4)·X4;基于4比特的权重参数W4(即Q4(W4)),可以得到所述第四个全连接层针对语音输入数据X4的第二语音输出数据Q4(W4)·X4;基于8比特的权重参数W4(即Q8(W4)),可以得到所述第四个全连接层针对语音输入数据X4的第二语音输出数据Q8(W4)·X4。
通过Softmax函数对第一语音输出数据W1·X1进行非线性转换,可以得到第一语音输出数据W1·X1对应的第一概率分布P1_32=Softmax(W1·X1)。通过Softmax函数对第二语音输出数据Q1(W1)·X1进行非线性转换,可以得到第二语音输出数据Q1(W1)·X1对应的第二概率分布P1_1=Softmax(Q1(W1)·X1);通过Softmax函数对第二语音输出数据Q2(W1)·X1进行非线性转换,可以得到第二语音输出数据Q2(W1)·X1对应的第二概率分布P1_2=Softmax(Q2(W1)·X1);通过Softmax函数对第二语音输出数据Q4(W1)·X1进行非线性转换,可以得到第二语音输出数据Q4(W1)·X1对应的第二概率分布P1_4=Softmax(Q4(W1)·X1);通过Softmax函数对第二语音输出数据Q8(W1)·X1进行非线性转换,可以得到第二语音输出数据Q8(W1)·X1进对应的第二概率分布P1_8=Softmax(Q8(W1)·X1)。
可以计算得到第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_1=Softmax(Q1(W1)·X1)之间的KL散度S1_1=KL(P1_32,P1_1),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_2=Softmax(Q2(W1)·X1)之间的KL散度S1_2=KL(P1_32,P1_2),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_4=Softmax(Q4(W1)·X1)之间的KL散度S1_4=KL(P1_32,P1_4),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_8=Softmax(Q8(W1)·X1)之间的KL散度S1_8=KL(P1_32,P1_8)。
可以根据S’=L/min{l,L-l},计算得到语音处理模型对第一个全连接层的权重参数W1的第二敏感度S1’=4/min{1,4-1}=4。
从而,可以得到语音处理模型对第一个全连接层的权重参数W1的敏感度S1={ S1_1+S1’,S1_2+ S1’,S1_4+ S1’,S1_8+ S1’}。
类似地,可以得到语音处理模型对第二个全连接层的权重参数W2的敏感度S2={S2_1+ S2’,S2_2+ S2’,S2_4+ S2’,S2_8+ S2’},语音处理模型对第三个全连接层的权重参数W3的敏感度S3={ S3_1+ S3’,S3_2+ S3’,S3_4+ S3’,S3_8+ S3’},语音处理模型对第四个全连接层的权重参数W4的敏感度S4={ S4_1+ S4’,S4_2+ S4’,S4_4+ S4’,S4_8+ S4’}。
可以根据平均4比特的量化压缩目标,搜索语音处理模型对各权重参数的敏感度,得到使SUM= S1_n1+ S1’+ S2_n2+ S2’+ S3_n3+ S3’+ S4_n4+ S4’最小的n1、n2、n3和n4。其中,n1表示权重参数W1的目标精度,n2表示权重参数W2的目标精度,n3表示权重参数W3的目标精度,n4表示权重参数W4的目标精度。
在确定语音处理模型的4个全连接层的权重参数的目标精度之后,可以根据各权重参数的目标精度,设置所述语音处理模型的各全连接层的权重参数的精度,并可以采用语音样本集对设置参数精度后的语音处理模型进行训练,得到训练完成的语音处理模型。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了语音处理模型的量化压缩装置、电子设备、计算机可读存储介质、计算机程序产品,上述均可用来实现本公开提供的任一种语音处理模型的量化压缩方法,相应技术方案和技术效果可参见方法部分的相应记载,不再赘述。
图2示出本公开实施例提供的语音处理模型的量化压缩装置的框图。如图2所示,所述语音处理模型的量化压缩装置包括:
第一获得模块21,用于对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度;
第一确定模块22,用于至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度;
第二确定模块23,用于根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第一敏感度;
所述第一确定模块22用于:
根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第一确定模块22用于:
对所述第一语音输出数据映射得到第一概率分布;
对所述第二语音输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第一确定模块22用于:
对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布;
对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
在一种可能的实现方式中,所述第一确定模块22用于:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述语音处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述第一获得模块21用于:基于至少两种第二精度的所述参数,得到所述网络层针对所述语音输入数据的至少两项第二语音输出数据,其中,所述至少两项第二语音输出数据与所述至少两种第二精度一一对应;
所述第一确定模块22用于:根据第一语音输出数据和所述至少两项第二语音输出数据,确定所述语音处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第二敏感度;
所述装置还包括:
第一获取模块,用于获取所述网络层在所述语音处理模型中的层数以及所述语音处理模型的总层数;
第三确定模块,用于根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第三确定模块用于:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述语音处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第二确定模块23用于:
获取所述语音处理模型的量化压缩目标;
根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述语音处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,所述装置还包括:
第一初始化模块,用于对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,所述装置还包括:
第一随机选择模块,用于从经过正则化处理的语音输入数据集中,随机选择语音输入数据。
在一种可能的实现方式中,所述装置还包括:
第一设置模块,用于根据所述语音处理模型的各网络层的参数的目标精度,设置所述语音处理模型的各网络层的参数的精度;
第一训练模块,用于采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型。
在一种可能的实现方式中,所述装置还包括:
第一部署模块,用于将所述训练完成的语音处理模型部署在用户终端。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现和技术效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
在人工智能领域,对于有深度神经网络应用的模型和任务,例如物体追踪、图像风格迁移等,随着模型的增大,参数量的增多,带来的计算资源损耗和存储空间的要求会逐步提升,模型部署在应用端侧(例如手机等)的难度也越来越大。在这个前提要求下,模型压缩的应用就显得异常重要。
量化压缩是神经网络模型压缩很有效的一个方法。例如,通过将32bit的全精度浮点参数映射为低精度,例如8bit的整数类参数,可以有效地降低模型的存储空间,提高矩阵计算的效率,从而减少计算资源损耗。
深度神经网络在人工智能各个领域上的应用是非常广泛和必要的,而神经网络的性能效果依赖于模型的参数量。如何减小神经网络的规模使其能够更广泛地应用到端侧部署中,减小计算资源损耗是一个难题,而量化压缩可以有效的解决这一问题。如何有效高效地应用量化压缩的方法,在训练过程中就通过量化压缩降低资源损耗也是重要的课题。
在实际应用量化压缩的时候,如果直接将整个网络所有参数都转成低精度的表示,例如32bit到8bit,可能会有非常大的模型性能损失,所以很多现有方法在实际应用时,会保留部分参数,比如偏差(bias)、激活(activation)层参数等为原有的32bit,从而减小性能损失。同时,模型的部分参数,对整个模型的结果影响不大,甚至可以压缩到更低精度,例如1bit,2bit。这种网络中有多种参数精度的量化压缩称为混精度量化压缩。
现有的混精度量化压缩有两种方法来决定模型的精度设置,即各个参数该选择什么精度设置来达到最好的模型压缩效果和性能收益。
第一种方法是根据经验手动调参,这种方法的训练成本较大,同时随着参数量的增加,可选择的精度设置会指数级增长,通常无法通过手动调参来获取一个全局最优解。
第二种方法则是利用不同的方法来自动学习网络参数的精度设置。其中,学习方法又可以分为两类,第一种方法通过结构搜索,将每个参数可选择的精度设置都加入到网络训练中,最后选择一个选项。第二种方法给每个参数指定一个表示其对最后模型结果敏感程度的参数,利用“模型结果对这个参数越敏感,这个参数就应该给与更高精度”的原则来选取最后网络参数的精度测试。
以上提到的两种方法,都需要根据不同的模型,对不同的任务进行调节和重新训练。
本公开实施例提供了一种图像处理模型的量化压缩方法,通过对于图像处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据,并基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,其中,所述第二精度小于所述第一精度,至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度,并根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度,由此针对图像处理模型中的不同参数,可以确定出不同的目标精度,从而能够实现混精度的量化压缩,能够实现更低精度的无损压缩。另外,本公开实施例提供的图像处理模型的量化压缩方法能够在图像处理模型训练之前决定各网络层的参数的精度,从而能够进一步在训练过程中减少资源损耗,并且达到更低精度的无损量化压缩。再者,本公开实施例提供的图像处理模型在对参数进行敏感度评估的过程中,不依赖于图像处理模型的具体网络结构。
图3示出本公开实施例提供的图像处理模型的量化压缩方法的流程图。在一种可能的实现方式中,所述图像处理模型的量化压缩方法的执行主体可以是图像处理模型的量化压缩装置,例如,所述图像处理模型的量化压缩方法可以由终端设备或服务器或其它电子设备执行。其中,终端设备可以是用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备或者可穿戴设备等。在一些可能的实现方式中,所述图像处理模型的量化压缩方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图3所示,所述图像处理模型的量化压缩方法包括步骤S31至步骤S33。
在步骤S31中,对于图像处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据,并基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,其中,所述第二精度小于所述第一精度。
在步骤S32中,至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度。
在步骤S33中,根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度。
本公开实施例中的图像处理模型可以表示用于图像处理的神经网络模型。例如,图像处理模型可以用于目标检测(例如人脸检测、活体检测)、目标识别(例如人脸识别、车牌识别)等,在此不做限定。
在本公开实施例中,对于图像处理模型的各个网络层的参数,分别确定目标精度,其中,不同参数的目标精度可以不同。
在本公开实施例中,对于图像处理模型中的任一网络层的参数,对第一精度的所述参数进行量化,可以得到第二精度的所述参数。其中,第二精度可以包括至少一种精度。例如,第一精度为32比特,第二精度包括1比特、2比特、4比特、8比特、16比特中的至少之一。例如,第二精度包括1比特、2比特、4比特和8比特。
在一个例子中,32比特的所述参数可以记为W,1比特的所述参数可以记为Q1(W),2比特的所述参数可以记为Q2(W),4比特的所述参数可以记为Q4(W),8比特的所述参数可以记为Q8(W)。
在本公开实施例中,对于图像处理模型中的任一网络层,所述网络层的图像输入数据可以是图像相关特征或者图像。例如,图像处理模型的首个网络层的图像输入数据可以是至少一个图像或者可以是图像相关特征,图像处理模型的非首个网络层的图像输入数据可以是图像相关特征。在本公开实施例中,对于图像处理模型中的任一网络层,所述网络层的图像输出数据可以是图像相关特征。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据之前,所述方法还包括:对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一个例子中,可以在取值范围[0,1]中,对所述参数进行随机初始化,得到所述参数的第一精度的初始值。例如,第一精度为32比特,在取值范围[0,1]中,对所述参数进行随机初始化,可以得到32比特的所述参数。对32比特的所述参数进行量化,可以得到1比特的所述参数、2比特的所述参数、4比特的所述参数和8比特的所述参数。
在该实现方式中,通过对图像处理模型的各网络层的参数进行随机初始化,能够得到各参数的第一精度的随机值。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据之前,所述方法还包括:从经过正则化处理的图像输入数据集中,随机选择图像输入数据。其中,图像输入数据集可以包括多个图像输入数据。正则化处理可以包括零均值化和归一化方差处理。
在该实现方式中,通过从经过正则化处理的图像输入数据集中,随机选择图像输入数据,由此有助于提高所确定的各个参数的目标精度的准确性。
在一个例子中,图像输入数据为X,基于32比特的所述参数W,可以得到所述网络层针对图像输入数据X的第一图像输出数据W·X。基于1比特的所述参数Q1(W),可以得到所述网络层针对图像输入数据X的第二图像输出数据Q1(W)·X;基于2比特的所述参数Q2(W),可以得到所述网络层针对图像输入数据X的第二图像输出数据Q2(W)·X;基于4比特的所述参数Q4(W),可以得到所述网络层针对图像输入数据X的第二图像输出数据Q4(W)·X;基于8比特的所述参数Q1(W),可以得到所述网络层针对图像输入数据X的第二图像输出数据Q8(W)·X。
在一种可能的实现方式中,可以仅根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度。
在另一种可能的实现方式中,可以根据所述第一图像输出数据和所述第二图像输出数据,以及所述参数和/或所述网络层的其他信息(例如所述网络层在所述图像处理模型中的层数),确定所述图像处理模型对所述参数的敏感度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第一敏感度;所述至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度,包括:根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度。
在该实现方式中,第一敏感度可以体现所述第一图像输出数据与所述第二图像输出数据。所述第一图像输出数据与所述第二图像输出数据之间的差异越大,则第一敏感度越高;所述第一图像输出数据与所述第二图像输出数据之间的差异越小,则第一敏感度越低。
在该实现方式中,通过根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,由此能够至少根据第一敏感度确定所述参数的目标精度。
作为该实现方式的一个示例,所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:对所述第一图像输出数据映射得到第一概率分布;对所述第二图像输出数据映射得到第二概率分布;根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度。
在该示例中,第一概率分布可以表示第一图像输出数据对应的概率分布,第二概率分布可以表示第二图像输出数据对应的概率分布。
在该示例中,第一概率分布与第二概率分布之间的差异越大,则图像处理模型对所述参数的第一敏感度越高;第一概率分布与第二概率分布之间的差异越小,则图像处理模型对所述参数的第一敏感度越低。
例如,第一图像输出数据W·X对应的第一概率分布可以记为P32,第二图像输出数据Q1(W)·X对应的第二概率分布可以记为P1,第二图像输出数据Q2(W)·X对应的第二概率分布可以记为P2,第二图像输出数据Q4(W)·X对应的第二概率分布可以记为P4,第二图像输出数据Q8(W)·X对应的第二概率分布可以记为P8。
在该示例中,通过对所述第一图像输出数据映射得到第一概率分布;对所述第二图像输出数据映射得到第二概率分布,并根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度,由此能够提高第一敏感度的计算的稳定性,从而能够提高所确定的参数的目标精度的合理性。
在一个示例中,所述对所述第一图像输出数据映射得到第一概率分布,包括:对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布;所述对所述第二图像输出数据映射得到第二概率分布,包括:对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布。
例如,可以通过Softmax函数对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布,通过Softmax函数对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布。
例如,第一图像输出数据W·X对应的第一概率分布P32=Softmax(W·X),第二图像输出数据Q1(W)·X对应的第二概率分布P1=Softmax(Q1(W)·X),第二图像输出数据Q2(W)·X对应的第二概率分布P2=Softmax(Q2(W)·X),第二图像输出数据Q4(W)·X对应的第二概率分布P4=Softmax(Q4(W)·X),第二图像输出数据Q8(W)·X对应的第二概率分布P8=Softmax(Q8(W)·X)。
又如,可以通过LogSoftmax函数对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布,通过LogSoftmax函数对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布。
在该示例中,通过对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布,并对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布,由此能够准确地确定第一图像输出数据对应的第一概率分布和第二图像输出数据对应的第二概率分布。
在一个示例中,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度,包括:根据所述第一概率分布与所述第二概率分布之间的KL(Kullback-Leibler,库尔贝克-莱布勒)散度,确定所述图像处理模型对所述参数的第一敏感度。
例如,第一概率分布P32与第二概率分布P1之间的KL散度可以记为S1=KL(P32,P1),第一概率分布P32与第二概率分布P2之间的KL散度可以记为S2=KL(P32,P2),第一概率分布P32与第二概率分布P4之间的KL散度可以记为S4=KL(P32,P4),第一概率分布P32与第二概率分布P8之间的KL散度可以记为S8=KL(P32,P8),所述图像处理模型对所述参数的第一敏感度可以记为{ S1,S2,S4,S8}。
在其他示例中,还可以采用交叉熵、JS(Jensen-Shannon,詹森-香农)散度、瓦瑟斯坦距离(Wasserstein distance)等,根据第一概率分布与第二概率分布,确定所述图像处理模型对所述参数的第一敏感度,在此不做限定。
在该示例中,通过根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述图像处理模型对所述参数的第一敏感度,由此能够准确地确定所述图像处理模型对所述参数的第一敏感度。
作为该实现方式的一个示例,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第二敏感度;所述方法还包括:获取所述网络层在所述图像处理模型中的层数以及所述图像处理模型的总层数;根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度。
图像处理模型中的参数对图像处理模型的结果的影响,还与参数在图像处理模型中的位置有关,通常参数越靠近输入和输出,则对图像处理模型最后结果的影响越大。
在该示例中,通过获取所述网络层在所述图像处理模型中的层数以及所述图像处理模型的总层数,根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度,并根据所述图像处理模型对所述参数的第一敏感度和第二敏感度,确定所述参数的目标精度,基于由此确定出的各个参数的目标精度,有助于得到性能更好的图像处理模型。
在一个示例中,所述根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度,包括:确定所述总层数与所述层数的差值;取所述层数与所述差值中的最小值;将所述总层数与所述最小值的比值,确定为所述图像处理模型对所述参数的第二敏感度。
例如,对于图像处理模型中的任一网络层的参数,可以根据S’=L/min{l,L-l},确定所述图像处理模型对所述参数的第二敏感度,其中,L表示所述图像处理模型的总层数,l表示所述网络层在所述图像处理模型中的层数。
在该示例中,通过确定所述总层数与所述层数的差值,取所述层数与所述差值中的最小值,将所述总层数与所述最小值的比值,确定为所述图像处理模型对所述参数的第二敏感度,由此确定出的第二敏感度能够较准确地体现所述参数所在的网络层对所述图像处理模型的最后结果的影响程度。
作为该实现方式的另一个示例,所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:根据所述第一图像输出数据与所述第二图像输出数据之间的相似度,确定所述图像处理模型对所述参数的第一敏感度。在该示例中,可以将所述第一图像输出数据与所述第二图像输出数据之间的余弦距离,作为所述第一图像输出数据与所述第二图像输出数据之间的相似度。在该示例中,所述图像处理模型对所述参数的第一敏感度,与所述相似度负相关。即,所述第一图像输出数据与所述第二图像输出数据之间的相似度越大,则所述图像处理模型对所述参数的第一敏感度越低;所述第一图像输出数据与所述第二图像输出数据之间的相似度越小,则所述图像处理模型对所述参数的第一敏感度越高。
作为该实现方式的另一个示例,所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:对所述第一图像输出数据映射得到第一概率分布;根据所述第一概率分布与所述第二图像输出数据之间的第一马氏距离,确定所述图像处理模型对所述参数的第一敏感度。其中,第一马氏距离表示所述第一概率分布与所述第二图像输出数据之间的马氏距离。在该示例中,所述图像处理模型对所述参数的第一敏感度,与第一马氏距离正相关。即,第一马氏距离越大,则所述图像处理模型对所述参数的第一敏感度越高;第一马氏距离越小,则所述图像处理模型对所述参数的第一敏感度越低。
作为该实现方式的另一个示例,所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:对所述第二图像输出数据映射得到第二概率分布;根据所述第一图像输出数据与所述第二概率分布之间的第二马氏距离,确定所述图像处理模型对所述参数的第一敏感度。其中,第二马氏距离表示所述第一图像输出数据与所述第二概率分布之间的马氏距离。在该示例中,所述图像处理模型对所述参数的第一敏感度,与第二马氏距离正相关。即,第二马氏距离越大,则所述图像处理模型对所述参数的第一敏感度越高;第二马氏距离越小,则所述图像处理模型对所述参数的第一敏感度越低。
作为该实现方式的一个示例,所述基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述图像输入数据的至少两项第二图像输出数据,其中,所述至少两项第二图像输出数据与所述至少两种第二精度一一对应;所述根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度,包括:根据第一图像输出数据和所述至少两项第二图像输出数据,确定所述图像处理模型对所述参数的至少两项第一敏感度。
在该示例中,所述图像处理模型对所述参数的至少两项第一敏感度,与所述至少两项第二图像输出数据一一对应。
例如,第二精度包括4种精度,分别为1比特、2比特、4比特和8比特;基于4种第二精度的所述参数,得到所述网络层针对所述图像输入数据的4项第二图像输出数据;根据第一图像输出数据和4项第二图像输出数据,确定所述图像处理模型对所述参数的4项第一敏感度。
在该示例中,通过基于至少两种第二精度的所述参数,得到所述网络层针对所述图像输入数据的至少两项第二图像输出数据,其中,所述至少两项第二图像输出数据与所述至少两种第二精度一一对应,并根据第一图像输出数据和所述至少两项第二图像输出数据,确定所述图像处理模型对所述参数的至少两项第一敏感度,由此有助于得到更小且性能更好的图像处理模型。
在一个示例中,所述根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:获取所述图像处理模型的量化压缩目标;根据所述图像处理模型对所述图像处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述图像处理器模型对所述各参数的敏感度之和;根据所述最小的敏感度和,确定所述各参数的目标精度。
例如,量化压缩目标为各参数的平均精度为4比特;又如,量化压缩目标可以设置各参数的总的比特数;等等。
例如,根据所述图像处理模型对所述图像处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和SUMi{Si_ni+Si’},以得到各个参数的目标精度ni。其中,i表示图像处理模型的第i个参数。
在该示例中,通过获取所述图像处理模型的量化压缩目标,根据所述图像处理模型对所述图像处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述图像处理器模型对所述各参数的敏感度之和,根据所述最小的敏感度和,确定所述各参数的目标精度,由此能够在使图像处理模型满足量化压缩目标的前提下,提高图像处理模型的性能。
在一种可能的实现方式中,在所述根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:根据所述图像处理模型的各网络层的参数的目标精度,设置所述图像处理模型的各网络层的参数的精度;采用图像样本集对设置参数精度后的所述图像处理模型进行训练,得到训练完成的图像处理模型。
在该实现方式中,在根据所述图像处理模型的各网络层的参数的目标精度,设置所述图像处理模型的各网络层的参数的精度之后,可以采用图像样本集以及量化相关训练方法,对设置参数精度后的所述图像处理模型进行训练。
在该实现方式中,通过在图像处理模型开始训练之前,确定图像处理模型中的各网络层的参数的精度,即,在图像处理模型训练之前根据图像处理模型的量化压缩需求确定混精度量化压缩的精度设置,而无需在图像处理模型训练好之后再学习网络的精度设置,从而能够进一步降低图像处理模型训练的资源损耗,同时能够提高图像处理模型的量化压缩效果,提高图像处理模型的性能表现。
作为该实现方式的一个示例,在所述采用图像样本集对设置参数精度后的所述图像处理模型进行训练,得到训练完成的图像处理模型之后,所述方法还包括:将所述训练完成的图像处理模型部署在用户终端。
在该示例中,经过量化压缩后的图像处理模型有利于在用户终端进行部署,能够节省用户终端的存储空间,提高图像处理模型的图像处理效率,减少用户终端的计算资源损耗。
当然,在其他示例中,所述训练完成的图像处理模型还可以部署在服务器端。
本公开实施例提供的图像处理模型的量化压缩方法可以应用于人工智能领域、模型压缩、量化压缩、计算机视觉等技术领域,在此不做限定。
下面通过一个具体的应用场景说明本公开实施例提供的图像处理模型的量化压缩方法。在该应用场景中,图像处理模型包括4个全连接层,4个全连接层的权重参数分别记为W1、W2、W3和W4。
在取值范围[0,1]中,对4个权重参数分别进行随机初始化,可以得到32比特的权重参数W1、32比特的权重参数W2、32比特的权重参数W3和32比特的权重参数W4。
对32比特的权重参数W1进行量化,可以得到1比特的权重参数W1、2比特的权重参数W1、4比特的权重参数W1和8比特的权重参数W1。其中,1比特的权重参数W1可以记为Q1(W1),2比特的权重参数W1可以记为Q2(W1),4比特的权重参数W1可以记为Q4(W1),8比特的权重参数W1可以记为Q8(W1)。
对32比特的权重参数W2进行量化,可以得到1比特的权重参数W2、2比特的权重参数W2、4比特的权重参数W2和8比特的权重参数W2。其中,1比特的权重参数W2可以记为Q1(W2),2比特的权重参数W2可以记为Q2(W2),4比特的权重参数W2可以记为Q4(W2),8比特的权重参数W2可以记为Q8(W2)。
对32比特的权重参数W3进行量化,可以得到1比特的权重参数W3、2比特的权重参数W3、4比特的权重参数W3和8比特的权重参数W3。其中,1比特的权重参数W3可以记为Q1(W3),2比特的权重参数W3可以记为Q2(W3),4比特的权重参数W3可以记为Q4(W3),8比特的权重参数W3可以记为Q8(W3)。
对32比特的权重参数W4进行量化,可以得到1比特的权重参数W4、2比特的权重参数W4、4比特的权重参数W4和8比特的权重参数W4。其中,1比特的权重参数W4可以记为Q1(W4),2比特的权重参数W4可以记为Q2(W4),4比特的权重参数W4可以记为Q4(W4),8比特的权重参数W4可以记为Q8(W4)。
基于32比特的权重参数W1,可以得到图像处理模型的第一个全连接层针对图像输入数据X1的第一图像输出数据W1·X1。基于1比特的权重参数W1(即Q1(W1)),可以得到所述第一个全连接层针对图像输入数据X1的第二图像输出数据Q1(W1)·X1;基于2比特的权重参数W1(即Q2(W1)),可以得到所述第一个全连接层针对图像输入数据X1的第二图像输出数据Q2(W1)·X1;基于4比特的权重参数W1(即Q4(W1)),可以得到所述第一个全连接层针对图像输入数据X1的第二图像输出数据Q4(W1)·X1;基于8比特的权重参数W1(即Q8(W1)),可以得到所述第一个全连接层针对图像输入数据X1的第二图像输出数据Q8(W1)·X1。
基于32比特的权重参数W2,可以得到图像处理模型的第二个全连接层针对图像输入数据X2的第一图像输出数据W2·X2。基于1比特的权重参数W2(即Q1(W2)),可以得到所述第二个全连接层针对图像输入数据X2的第二图像输出数据Q1(W2)·X2;基于2比特的权重参数W2(即Q2(W2)),可以得到所述第二个全连接层针对图像输入数据X2的第二图像输出数据Q2(W2)·X2;基于4比特的权重参数W2(即Q4(W2)),可以得到所述第二个全连接层针对图像输入数据X2的第二图像输出数据Q4(W2)·X2;基于8比特的权重参数W2(即Q8(W2)),可以得到所述第二个全连接层针对图像输入数据X2的第二图像输出数据Q8(W2)·X2。
基于32比特的权重参数W3,可以得到图像处理模型的第三个全连接层针对图像输入数据X3的第一图像输出数据W3·X3。基于1比特的权重参数W3(即Q1(W3)),可以得到所述第三个全连接层针对图像输入数据X3的第二图像输出数据Q1(W3)·X3;基于2比特的权重参数W3(即Q2(W3)),可以得到所述第三个全连接层针对图像输入数据X3的第二图像输出数据Q2(W3)·X3;基于4比特的权重参数W3(即Q4(W3)),可以得到所述第三个全连接层针对图像输入数据X3的第二图像输出数据Q4(W3)·X3;基于8比特的权重参数W3(即Q8(W3)),可以得到所述第三个全连接层针对图像输入数据X3的第二图像输出数据Q8(W3)·X3。
基于32比特的权重参数W4,可以得到图像处理模型的第四个全连接层针对图像输入数据X4的第一图像输出数据W4·X4。基于1比特的权重参数W4(即Q1(W4)),可以得到所述第四个全连接层针对图像输入数据X4的第二图像输出数据Q1(W4)·X4;基于2比特的权重参数W4(即Q2(W4)),可以得到所述第四个全连接层针对图像输入数据X4的第二图像输出数据Q2(W4)·X4;基于4比特的权重参数W4(即Q4(W4)),可以得到所述第四个全连接层针对图像输入数据X4的第二图像输出数据Q4(W4)·X4;基于8比特的权重参数W4(即Q8(W4)),可以得到所述第四个全连接层针对图像输入数据X4的第二图像输出数据Q8(W4)·X4。
通过Softmax函数对第一图像输出数据W1·X1进行非线性转换,可以得到第一图像输出数据W1·X1对应的第一概率分布P1_32=Softmax(W1·X1)。通过Softmax函数对第二图像输出数据Q1(W1)·X1进行非线性转换,可以得到第二图像输出数据Q1(W1)·X1对应的第二概率分布P1_1=Softmax(Q1(W1)·X1);通过Softmax函数对第二图像输出数据Q2(W1)·X1进行非线性转换,可以得到第二图像输出数据Q2(W1)·X1对应的第二概率分布P1_2=Softmax(Q2(W1)·X1);通过Softmax函数对第二图像输出数据Q4(W1)·X1进行非线性转换,可以得到第二图像输出数据Q4(W1)·X1对应的第二概率分布P1_4=Softmax(Q4(W1)·X1);通过Softmax函数对第二图像输出数据Q8(W1)·X1进行非线性转换,可以得到第二图像输出数据Q8(W1)·X1进对应的第二概率分布P1_8=Softmax(Q8(W1)·X1)。
可以计算得到第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_1=Softmax(Q1(W1)·X1)之间的KL散度S1_1=KL(P1_32,P1_1),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_2=Softmax(Q2(W1)·X1)之间的KL散度S1_2=KL(P1_32,P1_2),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_4=Softmax(Q4(W1)·X1)之间的KL散度S1_4=KL(P1_32,P1_4),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_8=Softmax(Q8(W1)·X1)之间的KL散度S1_8=KL(P1_32,P1_8)。
可以根据S’=L/min{l,L-l},计算得到图像处理模型对第一个全连接层的权重参数W1的第二敏感度S1’=4/min{1,4-1}=4。
从而,可以得到图像处理模型对第一个全连接层的权重参数W1的敏感度S1={ S1_1+S1’,S1_2+ S1’,S1_4+ S1’,S1_8+ S1’}。
类似地,可以得到图像处理模型对第二个全连接层的权重参数W2的敏感度S2={S2_1+ S2’,S2_2+ S2’,S2_4+ S2’,S2_8+ S2’},图像处理模型对第三个全连接层的权重参数W3的敏感度S3={ S3_1+ S3’,S3_2+ S3’,S3_4+ S3’,S3_8+ S3’},图像处理模型对第四个全连接层的权重参数W4的敏感度S4={ S4_1+ S4’,S4_2+ S4’,S4_4+ S4’,S4_8+ S4’}。
可以根据平均4比特的量化压缩目标,搜索图像处理模型对各权重参数的敏感度,得到使SUM= S1_n1+ S1’+ S2_n2+ S2’+ S3_n3+ S3’+ S4_n4+ S4’最小的n1、n2、n3和n4。其中,n1表示权重参数W1的目标精度,n2表示权重参数W2的目标精度,n3表示权重参数W3的目标精度,n4表示权重参数W4的目标精度。
在确定图像处理模型的4个全连接层的权重参数的目标精度之后,可以根据各权重参数的目标精度,设置所述图像处理模型的各全连接层的权重参数的精度,并可以采用图像样本集对设置参数精度后的图像处理模型进行训练,得到训练完成的图像处理模型。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了图像处理模型的量化压缩装置、电子设备、计算机可读存储介质、计算机程序产品,上述均可用来实现本公开提供的任一种图像处理模型的量化压缩方法,相应技术方案和技术效果可参见方法部分的相应记载,不再赘述。
图4示出本公开实施例提供的图像处理模型的量化压缩装置的框图。如图4所示,所述图像处理模型的量化压缩装置包括:
第二获得模块41,用于对于图像处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对图像输入数据的第一图像输出数据,并基于第二精度的所述参数,得到所述网络层针对所述图像输入数据的第二图像输出数据,其中,所述第二精度小于所述第一精度;
第四确定模块42,用于至少根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的敏感度;
第五确定模块43,用于根据所述图像处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第一敏感度;
所述第四确定模块42用于:
根据所述第一图像输出数据和所述第二图像输出数据,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第四确定模块42用于:
对所述第一图像输出数据映射得到第一概率分布;
对所述第二图像输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第四确定模块42用于:
对所述第一图像输出数据进行非线性转换,得到所述第一图像输出数据对应的第一概率分布;
对所述第二图像输出数据进行非线性转换,得到所述第二图像输出数据对应的第二概率分布。
在一种可能的实现方式中,所述第四确定模块42用于:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述图像处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述第二获得模块41用于:基于至少两种第二精度的所述参数,得到所述网络层针对所述图像输入数据的至少两项第二图像输出数据,其中,所述至少两项第二图像输出数据与所述至少两种第二精度一一对应;
所述第四确定模块42用于:根据第一图像输出数据和所述至少两项第二图像输出数据,确定所述图像处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述图像处理模型对所述参数的敏感度包括所述图像处理模型对所述参数的第二敏感度;
所述装置还包括:
第二获取模块,用于获取所述网络层在所述图像处理模型中的层数以及所述图像处理模型的总层数;
第六确定模块,用于根据所述网络层在所述图像处理模型中的层数,以及所述总层数,确定所述图像处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第六确定模块用于:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述图像处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第五确定模块43用于:
获取所述图像处理模型的量化压缩目标;
根据所述图像处理模型对所述图像处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述图像处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,所述装置还包括:
第二初始化模块,用于对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,所述装置还包括:
第二随机选择模块,用于从经过正则化处理的图像输入数据集中,随机选择图像输入数据。
在一种可能的实现方式中,所述装置还包括:
第二设置模块,用于根据所述图像处理模型的各网络层的参数的目标精度,设置所述图像处理模型的各网络层的参数的精度;
第二训练模块,用于采用图像样本集对设置参数精度后的所述图像处理模型进行训练,得到训练完成的图像处理模型。
在一种可能的实现方式中,所述装置还包括:
第二部署模块,用于将所述训练完成的图像处理模型部署在用户终端。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现和技术效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
在人工智能领域,对于有深度神经网络应用的模型和任务,例如语义识别等,随着模型的增大,参数量的增多,带来的计算资源损耗和存储空间的要求会逐步提升,模型部署在应用端侧(例如手机等)的难度也越来越大。在这个前提要求下,模型压缩的应用就显得异常重要。
量化压缩是神经网络模型压缩很有效的一个方法。例如,通过将32bit的全精度浮点参数映射为低精度,例如8bit的整数类参数,可以有效地降低模型的存储空间,提高矩阵计算的效率,从而减少计算资源损耗。
深度神经网络在人工智能各个领域上的应用是非常广泛和必要的,而神经网络的性能效果依赖于模型的参数量。如何减小神经网络的规模使其能够更广泛地应用到端侧部署中,减小计算资源损耗是一个难题,而量化压缩可以有效的解决这一问题。如何有效高效地应用量化压缩的方法,在训练过程中就通过量化压缩降低资源损耗也是重要的课题。
在实际应用量化压缩的时候,如果直接将整个网络所有参数都转成低精度的表示,例如32bit到8bit,可能会有非常大的模型性能损失,所以很多现有方法在实际应用时,会保留部分参数,比如偏差(bias)、激活(activation)层参数等为原有的32bit,从而减小性能损失。同时,模型的部分参数,对整个模型的结果影响不大,甚至可以压缩到更低精度,例如1bit,2bit。这种网络中有多种参数精度的量化压缩称为混精度量化压缩。
现有的混精度量化压缩有两种方法来决定模型的精度设置,即各个参数该选择什么精度设置来达到最好的模型压缩效果和性能收益。
第一种方法是根据经验手动调参,这种方法的训练成本较大,同时随着参数量的增加,可选择的精度设置会指数级增长,通常无法通过手动调参来获取一个全局最优解。
第二种方法则是利用不同的方法来自动学习网络参数的精度设置。其中,学习方法又可以分为两类,第一种方法通过结构搜索,将每个参数可选择的精度设置都加入到网络训练中,最后选择一个选项。第二种方法给每个参数指定一个表示其对最后模型结果敏感程度的参数,利用“模型结果对这个参数越敏感,这个参数就应该给与更高精度”的原则来选取最后网络参数的精度测试。
以上提到的两种方法,都需要根据不同的模型,对不同的任务进行调节和重新训练。
本公开实施例提供了一种文本处理模型的量化压缩方法,通过对于文本处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据,并基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,其中,所述第二精度小于所述第一精度,至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度,并根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度,由此针对文本处理模型中的不同参数,可以确定出不同的目标精度,从而能够实现混精度的量化压缩,能够实现更低精度的无损压缩。另外,本公开实施例提供的文本处理模型的量化压缩方法能够在文本处理模型训练之前决定各网络层的参数的精度,从而能够进一步在训练过程中减少资源损耗,并且达到更低精度的无损量化压缩。再者,本公开实施例提供的文本处理模型在对参数进行敏感度评估的过程中,不依赖于文本处理模型的具体网络结构。
图5示出本公开实施例提供的文本处理模型的量化压缩方法的流程图。在一种可能的实现方式中,所述文本处理模型的量化压缩方法的执行主体可以是文本处理模型的量化压缩装置,例如,所述文本处理模型的量化压缩方法可以由终端设备或服务器或其它电子设备执行。其中,终端设备可以是用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备或者可穿戴设备等。在一些可能的实现方式中,所述文本处理模型的量化压缩方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图5所示,所述文本处理模型的量化压缩方法包括步骤S51至步骤S53。
在步骤S51中,对于文本处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据,并基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,其中,所述第二精度小于所述第一精度。
在步骤S52中,至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度。
在步骤S53中,根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度。
本公开实施例中的文本处理模型可以表示用于文本处理的神经网络模型。例如,文本处理模型可以用于语义识别、翻译等,在此不做限定。
在本公开实施例中,对于文本处理模型的各个网络层的参数,分别确定目标精度,其中,不同参数的目标精度可以不同。
在本公开实施例中,对于文本处理模型中的任一网络层的参数,对第一精度的所述参数进行量化,可以得到第二精度的所述参数。其中,第二精度可以包括至少一种精度。例如,第一精度为32比特,第二精度包括1比特、2比特、4比特、8比特、16比特中的至少之一。例如,第二精度包括1比特、2比特、4比特和8比特。
在一个例子中,32比特的所述参数可以记为W,1比特的所述参数可以记为Q1(W),2比特的所述参数可以记为Q2(W),4比特的所述参数可以记为Q4(W),8比特的所述参数可以记为Q8(W)。
在本公开实施例中,对于文本处理模型中的任一网络层,所述网络层的文本输入数据可以是文本相关特征或者文本。例如,文本处理模型的首个网络层的文本输入数据可以是一句话、一段文本、一篇文章等,或者可以是文本相关特征;文本处理模型的非首个网络层的文本输入数据可以是文本相关特征。在本公开实施例中,对于文本处理模型中的任一网络层,所述网络层的文本输出数据可以是文本相关特征。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据之前,所述方法还包括:对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一个例子中,可以在取值范围[0,1]中,对所述参数进行随机初始化,得到所述参数的第一精度的初始值。例如,第一精度为32比特,在取值范围[0,1]中,对所述参数进行随机初始化,可以得到32比特的所述参数。对32比特的所述参数进行量化,可以得到1比特的所述参数、2比特的所述参数、4比特的所述参数和8比特的所述参数。
在该实现方式中,通过对文本处理模型的各网络层的参数进行随机初始化,能够得到各参数的第一精度的随机值。
在一种可能的实现方式中,在所述基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据之前,所述方法还包括:从经过正则化处理的文本输入数据集中,随机选择文本输入数据。其中,文本输入数据集可以包括多个文本输入数据。正则化处理可以包括零均值化和归一化方差处理。
在该实现方式中,通过从经过正则化处理的文本输入数据集中,随机选择文本输入数据,由此有助于提高所确定的各个参数的目标精度的准确性。
在一个例子中,文本输入数据为X,基于32比特的所述参数W,可以得到所述网络层针对文本输入数据X的第一文本输出数据W·X。基于1比特的所述参数Q1(W),可以得到所述网络层针对文本输入数据X的第二文本输出数据Q1(W)·X;基于2比特的所述参数Q2(W),可以得到所述网络层针对文本输入数据X的第二文本输出数据Q2(W)·X;基于4比特的所述参数Q4(W),可以得到所述网络层针对文本输入数据X的第二文本输出数据Q4(W)·X;基于8比特的所述参数Q1(W),可以得到所述网络层针对文本输入数据X的第二文本输出数据Q8(W)·X。
在一种可能的实现方式中,可以仅根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度。
在另一种可能的实现方式中,可以根据所述第一文本输出数据和所述第二文本输出数据,以及所述参数和/或所述网络层的其他信息(例如所述网络层在所述文本处理模型中的层数),确定所述文本处理模型对所述参数的敏感度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第一敏感度;所述至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度,包括:根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度。
在该实现方式中,第一敏感度可以体现所述第一文本输出数据与所述第二文本输出数据。所述第一文本输出数据与所述第二文本输出数据之间的差异越大,则第一敏感度越高;所述第一文本输出数据与所述第二文本输出数据之间的差异越小,则第一敏感度越低。
在该实现方式中,通过根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,由此能够至少根据第一敏感度确定所述参数的目标精度。
作为该实现方式的一个示例,所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:对所述第一文本输出数据映射得到第一概率分布;对所述第二文本输出数据映射得到第二概率分布;根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度。
在该示例中,第一概率分布可以表示第一文本输出数据对应的概率分布,第二概率分布可以表示第二文本输出数据对应的概率分布。
在该示例中,第一概率分布与第二概率分布之间的差异越大,则文本处理模型对所述参数的第一敏感度越高;第一概率分布与第二概率分布之间的差异越小,则文本处理模型对所述参数的第一敏感度越低。
例如,第一文本输出数据W·X对应的第一概率分布可以记为P32,第二文本输出数据Q1(W)·X对应的第二概率分布可以记为P1,第二文本输出数据Q2(W)·X对应的第二概率分布可以记为P2,第二文本输出数据Q4(W)·X对应的第二概率分布可以记为P4,第二文本输出数据Q8(W)·X对应的第二概率分布可以记为P8。
在该示例中,通过对所述第一文本输出数据映射得到第一概率分布;对所述第二文本输出数据映射得到第二概率分布,并根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度,由此能够提高第一敏感度的计算的稳定性,从而能够提高所确定的参数的目标精度的合理性。
在一个示例中,所述对所述第一文本输出数据映射得到第一概率分布,包括:对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布;所述对所述第二文本输出数据映射得到第二概率分布,包括:对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布。
例如,可以通过Softmax函数对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布,通过Softmax函数对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布。
例如,第一文本输出数据W·X对应的第一概率分布P32=Softmax(W·X),第二文本输出数据Q1(W)·X对应的第二概率分布P1=Softmax(Q1(W)·X),第二文本输出数据Q2(W)·X对应的第二概率分布P2=Softmax(Q2(W)·X),第二文本输出数据Q4(W)·X对应的第二概率分布P4=Softmax(Q4(W)·X),第二文本输出数据Q8(W)·X对应的第二概率分布P8=Softmax(Q8(W)·X)。
又如,可以通过LogSoftmax函数对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布,通过LogSoftmax函数对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布。
在该示例中,通过对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布,并对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布,由此能够准确地确定第一文本输出数据对应的第一概率分布和第二文本输出数据对应的第二概率分布。
在一个示例中,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度,包括:根据所述第一概率分布与所述第二概率分布之间的KL(Kullback-Leibler,库尔贝克-莱布勒)散度,确定所述文本处理模型对所述参数的第一敏感度。
例如,第一概率分布P32与第二概率分布P1之间的KL散度可以记为S1=KL(P32,P1),第一概率分布P32与第二概率分布P2之间的KL散度可以记为S2=KL(P32,P2),第一概率分布P32与第二概率分布P4之间的KL散度可以记为S4=KL(P32,P4),第一概率分布P32与第二概率分布P8之间的KL散度可以记为S8=KL(P32,P8),所述文本处理模型对所述参数的第一敏感度可以记为{ S1,S2,S4,S8}。
在其他示例中,还可以采用交叉熵、JS(Jensen-Shannon,詹森-香农)散度、瓦瑟斯坦距离(Wasserstein distance)等,根据第一概率分布与第二概率分布,确定所述文本处理模型对所述参数的第一敏感度,在此不做限定。
在该示例中,通过根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述文本处理模型对所述参数的第一敏感度,由此能够准确地确定所述文本处理模型对所述参数的第一敏感度。
作为该实现方式的一个示例,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第二敏感度;所述方法还包括:获取所述网络层在所述文本处理模型中的层数以及所述文本处理模型的总层数;根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度。
文本处理模型中的参数对文本处理模型的结果的影响,还与参数在文本处理模型中的位置有关,通常参数越靠近输入和输出,则对文本处理模型最后结果的影响越大。
在该示例中,通过获取所述网络层在所述文本处理模型中的层数以及所述文本处理模型的总层数,根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度,并根据所述文本处理模型对所述参数的第一敏感度和第二敏感度,确定所述参数的目标精度,基于由此确定出的各个参数的目标精度,有助于得到性能更好的文本处理模型。
在一个示例中,所述根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度,包括:确定所述总层数与所述层数的差值;取所述层数与所述差值中的最小值;将所述总层数与所述最小值的比值,确定为所述文本处理模型对所述参数的第二敏感度。
例如,对于文本处理模型中的任一网络层的参数,可以根据S’=L/min{l,L-l},确定所述文本处理模型对所述参数的第二敏感度,其中,L表示所述文本处理模型的总层数,l表示所述网络层在所述文本处理模型中的层数。
在该示例中,通过确定所述总层数与所述层数的差值,取所述层数与所述差值中的最小值,将所述总层数与所述最小值的比值,确定为所述文本处理模型对所述参数的第二敏感度,由此确定出的第二敏感度能够较准确地体现所述参数所在的网络层对所述文本处理模型的最后结果的影响程度。
作为该实现方式的另一个示例,所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:根据所述第一文本输出数据与所述第二文本输出数据之间的相似度,确定所述文本处理模型对所述参数的第一敏感度。在该示例中,可以将所述第一文本输出数据与所述第二文本输出数据之间的余弦距离,作为所述第一文本输出数据与所述第二文本输出数据之间的相似度。在该示例中,所述文本处理模型对所述参数的第一敏感度,与所述相似度负相关。即,所述第一文本输出数据与所述第二文本输出数据之间的相似度越大,则所述文本处理模型对所述参数的第一敏感度越低;所述第一文本输出数据与所述第二文本输出数据之间的相似度越小,则所述文本处理模型对所述参数的第一敏感度越高。
作为该实现方式的另一个示例,所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:对所述第一文本输出数据映射得到第一概率分布;根据所述第一概率分布与所述第二文本输出数据之间的第一马氏距离,确定所述文本处理模型对所述参数的第一敏感度。其中,第一马氏距离表示所述第一概率分布与所述第二文本输出数据之间的马氏距离。在该示例中,所述文本处理模型对所述参数的第一敏感度,与第一马氏距离正相关。即,第一马氏距离越大,则所述文本处理模型对所述参数的第一敏感度越高;第一马氏距离越小,则所述文本处理模型对所述参数的第一敏感度越低。
作为该实现方式的另一个示例,所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:对所述第二文本输出数据映射得到第二概率分布;根据所述第一文本输出数据与所述第二概率分布之间的第二马氏距离,确定所述文本处理模型对所述参数的第一敏感度。其中,第二马氏距离表示所述第一文本输出数据与所述第二概率分布之间的马氏距离。在该示例中,所述文本处理模型对所述参数的第一敏感度,与第二马氏距离正相关。即,第二马氏距离越大,则所述文本处理模型对所述参数的第一敏感度越高;第二马氏距离越小,则所述文本处理模型对所述参数的第一敏感度越低。
作为该实现方式的一个示例,所述基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述文本输入数据的至少两项第二文本输出数据,其中,所述至少两项第二文本输出数据与所述至少两种第二精度一一对应;所述根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度,包括:根据第一文本输出数据和所述至少两项第二文本输出数据,确定所述文本处理模型对所述参数的至少两项第一敏感度。
在该示例中,所述文本处理模型对所述参数的至少两项第一敏感度,与所述至少两项第二文本输出数据一一对应。
例如,第二精度包括4种精度,分别为1比特、2比特、4比特和8比特;基于4种第二精度的所述参数,得到所述网络层针对所述文本输入数据的4项第二文本输出数据;根据第一文本输出数据和4项第二文本输出数据,确定所述文本处理模型对所述参数的4项第一敏感度。
在该示例中,通过基于至少两种第二精度的所述参数,得到所述网络层针对所述文本输入数据的至少两项第二文本输出数据,其中,所述至少两项第二文本输出数据与所述至少两种第二精度一一对应,并根据第一文本输出数据和所述至少两项第二文本输出数据,确定所述文本处理模型对所述参数的至少两项第一敏感度,由此有助于得到更小且性能更好的文本处理模型。
在一个示例中,所述根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:获取所述文本处理模型的量化压缩目标;根据所述文本处理模型对所述文本处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述文本处理器模型对所述各参数的敏感度之和;根据所述最小的敏感度和,确定所述各参数的目标精度。
例如,量化压缩目标为各参数的平均精度为4比特;又如,量化压缩目标可以设置各参数的总的比特数;等等。
例如,根据所述文本处理模型对所述文本处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和SUMi{Si_ni+Si’},以得到各个参数的目标精度ni。其中,i表示文本处理模型的第i个参数。
在该示例中,通过获取所述文本处理模型的量化压缩目标,根据所述文本处理模型对所述文本处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述文本处理器模型对所述各参数的敏感度之和,根据所述最小的敏感度和,确定所述各参数的目标精度,由此能够在使文本处理模型满足量化压缩目标的前提下,提高文本处理模型的性能。
在一种可能的实现方式中,在所述根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:根据所述文本处理模型的各网络层的参数的目标精度,设置所述文本处理模型的各网络层的参数的精度;采用文本样本集对设置参数精度后的所述文本处理模型进行训练,得到训练完成的文本处理模型。
在该实现方式中,在根据所述文本处理模型的各网络层的参数的目标精度,设置所述文本处理模型的各网络层的参数的精度之后,可以采用文本样本集以及量化相关训练方法,对设置参数精度后的所述文本处理模型进行训练。
在该实现方式中,通过在文本处理模型开始训练之前,确定文本处理模型中的各网络层的参数的精度,即,在文本处理模型训练之前根据文本处理模型的量化压缩需求确定混精度量化压缩的精度设置,而无需在文本处理模型训练好之后再学习网络的精度设置,从而能够进一步降低文本处理模型训练的资源损耗,同时能够提高文本处理模型的量化压缩效果,提高文本处理模型的性能表现。
作为该实现方式的一个示例,在所述采用文本样本集对设置参数精度后的所述文本处理模型进行训练,得到训练完成的文本处理模型之后,所述方法还包括:将所述训练完成的文本处理模型部署在用户终端。
在该示例中,经过量化压缩后的文本处理模型有利于在用户终端进行部署,能够节省用户终端的存储空间,提高文本处理模型的文本处理效率,减少用户终端的计算资源损耗。
当然,在其他示例中,所述训练完成的文本处理模型还可以部署在服务器端。
本公开实施例提供的文本处理模型的量化压缩方法可以应用于人工智能领域、模型压缩、量化压缩、自然语言处理等技术领域,在此不做限定。
下面通过一个具体的应用场景说明本公开实施例提供的文本处理模型的量化压缩方法。在该应用场景中,文本处理模型包括4个全连接层,4个全连接层的权重参数分别记为W1、W2、W3和W4。
在取值范围[0,1]中,对4个权重参数分别进行随机初始化,可以得到32比特的权重参数W1、32比特的权重参数W2、32比特的权重参数W3和32比特的权重参数W4。
对32比特的权重参数W1进行量化,可以得到1比特的权重参数W1、2比特的权重参数W1、4比特的权重参数W1和8比特的权重参数W1。其中,1比特的权重参数W1可以记为Q1(W1),2比特的权重参数W1可以记为Q2(W1),4比特的权重参数W1可以记为Q4(W1),8比特的权重参数W1可以记为Q8(W1)。
对32比特的权重参数W2进行量化,可以得到1比特的权重参数W2、2比特的权重参数W2、4比特的权重参数W2和8比特的权重参数W2。其中,1比特的权重参数W2可以记为Q1(W2),2比特的权重参数W2可以记为Q2(W2),4比特的权重参数W2可以记为Q4(W2),8比特的权重参数W2可以记为Q8(W2)。
对32比特的权重参数W3进行量化,可以得到1比特的权重参数W3、2比特的权重参数W3、4比特的权重参数W3和8比特的权重参数W3。其中,1比特的权重参数W3可以记为Q1(W3),2比特的权重参数W3可以记为Q2(W3),4比特的权重参数W3可以记为Q4(W3),8比特的权重参数W3可以记为Q8(W3)。
对32比特的权重参数W4进行量化,可以得到1比特的权重参数W4、2比特的权重参数W4、4比特的权重参数W4和8比特的权重参数W4。其中,1比特的权重参数W4可以记为Q1(W4),2比特的权重参数W4可以记为Q2(W4),4比特的权重参数W4可以记为Q4(W4),8比特的权重参数W4可以记为Q8(W4)。
基于32比特的权重参数W1,可以得到文本处理模型的第一个全连接层针对文本输入数据X1的第一文本输出数据W1·X1。基于1比特的权重参数W1(即Q1(W1)),可以得到所述第一个全连接层针对文本输入数据X1的第二文本输出数据Q1(W1)·X1;基于2比特的权重参数W1(即Q2(W1)),可以得到所述第一个全连接层针对文本输入数据X1的第二文本输出数据Q2(W1)·X1;基于4比特的权重参数W1(即Q4(W1)),可以得到所述第一个全连接层针对文本输入数据X1的第二文本输出数据Q4(W1)·X1;基于8比特的权重参数W1(即Q8(W1)),可以得到所述第一个全连接层针对文本输入数据X1的第二文本输出数据Q8(W1)·X1。
基于32比特的权重参数W2,可以得到文本处理模型的第二个全连接层针对文本输入数据X2的第一文本输出数据W2·X2。基于1比特的权重参数W2(即Q1(W2)),可以得到所述第二个全连接层针对文本输入数据X2的第二文本输出数据Q1(W2)·X2;基于2比特的权重参数W2(即Q2(W2)),可以得到所述第二个全连接层针对文本输入数据X2的第二文本输出数据Q2(W2)·X2;基于4比特的权重参数W2(即Q4(W2)),可以得到所述第二个全连接层针对文本输入数据X2的第二文本输出数据Q4(W2)·X2;基于8比特的权重参数W2(即Q8(W2)),可以得到所述第二个全连接层针对文本输入数据X2的第二文本输出数据Q8(W2)·X2。
基于32比特的权重参数W3,可以得到文本处理模型的第三个全连接层针对文本输入数据X3的第一文本输出数据W3·X3。基于1比特的权重参数W3(即Q1(W3)),可以得到所述第三个全连接层针对文本输入数据X3的第二文本输出数据Q1(W3)·X3;基于2比特的权重参数W3(即Q2(W3)),可以得到所述第三个全连接层针对文本输入数据X3的第二文本输出数据Q2(W3)·X3;基于4比特的权重参数W3(即Q4(W3)),可以得到所述第三个全连接层针对文本输入数据X3的第二文本输出数据Q4(W3)·X3;基于8比特的权重参数W3(即Q8(W3)),可以得到所述第三个全连接层针对文本输入数据X3的第二文本输出数据Q8(W3)·X3。
基于32比特的权重参数W4,可以得到文本处理模型的第四个全连接层针对文本输入数据X4的第一文本输出数据W4·X4。基于1比特的权重参数W4(即Q1(W4)),可以得到所述第四个全连接层针对文本输入数据X4的第二文本输出数据Q1(W4)·X4;基于2比特的权重参数W4(即Q2(W4)),可以得到所述第四个全连接层针对文本输入数据X4的第二文本输出数据Q2(W4)·X4;基于4比特的权重参数W4(即Q4(W4)),可以得到所述第四个全连接层针对文本输入数据X4的第二文本输出数据Q4(W4)·X4;基于8比特的权重参数W4(即Q8(W4)),可以得到所述第四个全连接层针对文本输入数据X4的第二文本输出数据Q8(W4)·X4。
通过Softmax函数对第一文本输出数据W1·X1进行非线性转换,可以得到第一文本输出数据W1·X1对应的第一概率分布P1_32=Softmax(W1·X1)。通过Softmax函数对第二文本输出数据Q1(W1)·X1进行非线性转换,可以得到第二文本输出数据Q1(W1)·X1对应的第二概率分布P1_1=Softmax(Q1(W1)·X1);通过Softmax函数对第二文本输出数据Q2(W1)·X1进行非线性转换,可以得到第二文本输出数据Q2(W1)·X1对应的第二概率分布P1_2=Softmax(Q2(W1)·X1);通过Softmax函数对第二文本输出数据Q4(W1)·X1进行非线性转换,可以得到第二文本输出数据Q4(W1)·X1对应的第二概率分布P1_4=Softmax(Q4(W1)·X1);通过Softmax函数对第二文本输出数据Q8(W1)·X1进行非线性转换,可以得到第二文本输出数据Q8(W1)·X1进对应的第二概率分布P1_8=Softmax(Q8(W1)·X1)。
可以计算得到第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_1=Softmax(Q1(W1)·X1)之间的KL散度S1_1=KL(P1_32,P1_1),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_2=Softmax(Q2(W1)·X1)之间的KL散度S1_2=KL(P1_32,P1_2),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_4=Softmax(Q4(W1)·X1)之间的KL散度S1_4=KL(P1_32,P1_4),第一概率分布P1_32=Softmax(W1·X1)与第二概率分布P1_8=Softmax(Q8(W1)·X1)之间的KL散度S1_8=KL(P1_32,P1_8)。
可以根据S’=L/min{l,L-l},计算得到文本处理模型对第一个全连接层的权重参数W1的第二敏感度S1’=4/min{1,4-1}=4。
从而,可以得到文本处理模型对第一个全连接层的权重参数W1的敏感度S1={ S1_1+S1’,S1_2+ S1’,S1_4+ S1’,S1_8+ S1’}。
类似地,可以得到文本处理模型对第二个全连接层的权重参数W2的敏感度S2={S2_1+ S2’,S2_2+ S2’,S2_4+ S2’,S2_8+ S2’},文本处理模型对第三个全连接层的权重参数W3的敏感度S3={ S3_1+ S3’,S3_2+ S3’,S3_4+ S3’,S3_8+ S3’},文本处理模型对第四个全连接层的权重参数W4的敏感度S4={ S4_1+ S4’,S4_2+ S4’,S4_4+ S4’,S4_8+ S4’}。
可以根据平均4比特的量化压缩目标,搜索文本处理模型对各权重参数的敏感度,得到使SUM= S1_n1+ S1’+ S2_n2+ S2’+ S3_n3+ S3’+ S4_n4+ S4’最小的n1、n2、n3和n4。其中,n1表示权重参数W1的目标精度,n2表示权重参数W2的目标精度,n3表示权重参数W3的目标精度,n4表示权重参数W4的目标精度。
在确定文本处理模型的4个全连接层的权重参数的目标精度之后,可以根据各权重参数的目标精度,设置所述文本处理模型的各全连接层的权重参数的精度,并可以采用文本样本集对设置参数精度后的文本处理模型进行训练,得到训练完成的文本处理模型。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了文本处理模型的量化压缩装置、电子设备、计算机可读存储介质、计算机程序产品,上述均可用来实现本公开提供的任一种文本处理模型的量化压缩方法,相应技术方案和技术效果可参见方法部分的相应记载,不再赘述。
图6示出本公开实施例提供的文本处理模型的量化压缩装置的框图。如图6所示,所述文本处理模型的量化压缩装置包括:
第三获得模块61,用于对于文本处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对文本输入数据的第一文本输出数据,并基于第二精度的所述参数,得到所述网络层针对所述文本输入数据的第二文本输出数据,其中,所述第二精度小于所述第一精度;
第七确定模块62,用于至少根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的敏感度;
第八确定模块63,用于根据所述文本处理模型对所述参数的敏感度,确定所述参数的目标精度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第一敏感度;
所述第七确定模块62用于:
根据所述第一文本输出数据和所述第二文本输出数据,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第七确定模块62用于:
对所述第一文本输出数据映射得到第一概率分布;
对所述第二文本输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,所述第七确定模块62用于:
对所述第一文本输出数据进行非线性转换,得到所述第一文本输出数据对应的第一概率分布;
对所述第二文本输出数据进行非线性转换,得到所述第二文本输出数据对应的第二概率分布。
在一种可能的实现方式中,所述第七确定模块62用于:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述文本处理模型对所述参数的第一敏感度。
在一种可能的实现方式中,
所述第三获得模块61用于:基于至少两种第二精度的所述参数,得到所述网络层针对所述文本输入数据的至少两项第二文本输出数据,其中,所述至少两项第二文本输出数据与所述至少两种第二精度一一对应;
所述第七确定模块62用于:根据第一文本输出数据和所述至少两项第二文本输出数据,确定所述文本处理模型对所述参数的至少两项第一敏感度。
在一种可能的实现方式中,所述文本处理模型对所述参数的敏感度包括所述文本处理模型对所述参数的第二敏感度;
所述装置还包括:
第三获取模块,用于获取所述网络层在所述文本处理模型中的层数以及所述文本处理模型的总层数;
第九确定模块,用于根据所述网络层在所述文本处理模型中的层数,以及所述总层数,确定所述文本处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第九确定模块用于:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述文本处理模型对所述参数的第二敏感度。
在一种可能的实现方式中,所述第八确定模块63用于:
获取所述文本处理模型的量化压缩目标;
根据所述文本处理模型对所述文本处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述文本处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
在一种可能的实现方式中,所述装置还包括:
第三初始化模块,用于对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
在一种可能的实现方式中,所述装置还包括:
第三随机选择模块,用于从经过正则化处理的文本输入数据集中,随机选择文本输入数据。
在一种可能的实现方式中,所述装置还包括:
第三设置模块,用于根据所述文本处理模型的各网络层的参数的目标精度,设置所述文本处理模型的各网络层的参数的精度;
第三训练模块,用于采用文本样本集对设置参数精度后的所述文本处理模型进行训练,得到训练完成的文本处理模型。
在一种可能的实现方式中,所述装置还包括:
第三部署模块,用于将所述训练完成的文本处理模型部署在用户终端。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现和技术效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。其中,所述计算机可读存储介质可以是非易失性计算机可读存储介质,或者可以是易失性计算机可读存储介质。
本公开实施例还提出一种计算机程序,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
本公开实施例还提供一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图7示出本公开实施例提供的电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或一终端。参照图7,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入/输出接口1958(I/O接口)。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(MacOS XTM),多用户多进程的计算机操作系统(UnixTM), 自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
若本公开实施例的技术方案涉及个人信息,应用本公开实施例的技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本公开实施例的技术方案涉及敏感个人信息,应用本公开实施例的技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种语音处理模型的量化压缩方法,其特征在于,包括:
对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度;
至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度;
根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。
2.根据权利要求1所述的方法,其特征在于,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第一敏感度;
所述至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度,包括:
根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:
对所述第一语音输出数据映射得到第一概率分布;
对所述第二语音输出数据映射得到第二概率分布;
根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度。
4.根据权利要求3所述的方法,其特征在于,
所述对所述第一语音输出数据映射得到第一概率分布,包括:对所述第一语音输出数据进行非线性转换,得到所述第一语音输出数据对应的第一概率分布;
所述对所述第二语音输出数据映射得到第二概率分布,包括:对所述第二语音输出数据进行非线性转换,得到所述第二语音输出数据对应的第二概率分布。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一概率分布与所述第二概率分布之间的差异信息,确定所述语音处理模型对所述参数的第一敏感度,包括:
根据所述第一概率分布与所述第二概率分布之间的KL散度,确定所述语音处理模型对所述参数的第一敏感度。
6.根据权利要求2所述的方法,其特征在于,
所述基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,包括:基于至少两种第二精度的所述参数,得到所述网络层针对所述语音输入数据的至少两项第二语音输出数据,其中,所述至少两项第二语音输出数据与所述至少两种第二精度一一对应;
所述根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的第一敏感度,包括:根据第一语音输出数据和所述至少两项第二语音输出数据,确定所述语音处理模型对所述参数的至少两项第一敏感度。
7.根据权利要求2至6中任意一项所述的方法,其特征在于,所述语音处理模型对所述参数的敏感度包括所述语音处理模型对所述参数的第二敏感度;
所述方法还包括:
获取所述网络层在所述语音处理模型中的层数以及所述语音处理模型的总层数;
根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度。
8.根据权利要求7所述的方法,其特征在于,所述根据所述网络层在所述语音处理模型中的层数,以及所述总层数,确定所述语音处理模型对所述参数的第二敏感度,包括:
确定所述总层数与所述层数的差值;
取所述层数与所述差值中的最小值;
将所述总层数与所述最小值的比值,确定为所述语音处理模型对所述参数的第二敏感度。
9.根据权利要求6所述的方法,其特征在于,所述根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度,包括:
获取所述语音处理模型的量化压缩目标;
根据所述语音处理模型对所述语音处理模型的各网络层的各参数的敏感度,确定满足所述量化压缩目标的最小的敏感度和,其中,所述敏感度和为所述语音处理器模型对所述各参数的敏感度之和;
根据所述最小的敏感度和,确定所述各参数的目标精度。
10.根据权利要求1至6中任意一项所述的方法,其特征在于,在所述基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据之前,所述方法还包括:
对所述参数进行随机初始化,得到所述参数的第一精度的初始值。
11.根据权利要求1至6中任意一项所述的方法,其特征在于,在所述基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据之前,所述方法还包括:
从经过正则化处理的语音输入数据集中,随机选择语音输入数据。
12.根据权利要求1至6中任意一项所述的方法,其特征在于,在所述根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度之后,所述方法还包括:
根据所述语音处理模型的各网络层的参数的目标精度,设置所述语音处理模型的各网络层的参数的精度;
采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型。
13.根据权利要求12所述的方法,其特征在于,在所述采用语音样本集对设置参数精度后的所述语音处理模型进行训练,得到训练完成的语音处理模型之后,所述方法还包括:
将所述训练完成的语音处理模型部署在用户终端。
14.一种语音处理模型的量化压缩装置,其特征在于,包括:
第一获得模块,用于对于语音处理模型中的任一网络层的参数,基于第一精度的所述参数,得到所述网络层针对语音输入数据的第一语音输出数据,并基于第二精度的所述参数,得到所述网络层针对所述语音输入数据的第二语音输出数据,其中,所述第二精度小于所述第一精度;
第一确定模块,用于至少根据所述第一语音输出数据和所述第二语音输出数据,确定所述语音处理模型对所述参数的敏感度;
第二确定模块,用于根据所述语音处理模型对所述参数的敏感度,确定所述参数的目标精度。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
用于存储可执行指令的存储器;
其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行权利要求1至13中任意一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至13中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310473516.7A CN116189667B (zh) | 2023-04-27 | 2023-04-27 | 语音处理模型的量化压缩方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310473516.7A CN116189667B (zh) | 2023-04-27 | 2023-04-27 | 语音处理模型的量化压缩方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116189667A true CN116189667A (zh) | 2023-05-30 |
CN116189667B CN116189667B (zh) | 2023-08-01 |
Family
ID=86434916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310473516.7A Active CN116189667B (zh) | 2023-04-27 | 2023-04-27 | 语音处理模型的量化压缩方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116189667B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229356B1 (en) * | 2014-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Error tolerant neural network model compression |
CN110889204A (zh) * | 2019-11-06 | 2020-03-17 | 北京中科胜芯科技有限公司 | 一种神经网络模型参数压缩方法 |
CN112447190A (zh) * | 2019-08-14 | 2021-03-05 | 南京约顿海姆电子科技有限公司 | 基于混合噪声场景下的精度可控语音端点判别技术 |
CN113449854A (zh) * | 2021-08-30 | 2021-09-28 | 阿里云计算有限公司 | 网络模型的混合精度量化方法、设备及计算机存储介质 |
WO2021208151A1 (zh) * | 2020-04-13 | 2021-10-21 | 商汤集团有限公司 | 一种模型压缩方法、图像处理方法以及装置 |
WO2022057776A1 (zh) * | 2020-09-21 | 2022-03-24 | 华为技术有限公司 | 一种模型压缩方法及装置 |
US20220164671A1 (en) * | 2020-11-20 | 2022-05-26 | Montage Technology Co., Ltd. | Method and device for compressing neural network |
CN114861886A (zh) * | 2022-05-30 | 2022-08-05 | 阿波罗智能技术(北京)有限公司 | 神经网络模型的量化方法及其装置 |
CN114897062A (zh) * | 2022-04-27 | 2022-08-12 | 际络科技(上海)有限公司 | 目标检测方法、装置、电子设备、介质及产品 |
CN115249058A (zh) * | 2021-04-27 | 2022-10-28 | Oppo广东移动通信有限公司 | 神经网络模型的量化方法、装置、终端及存储介质 |
CN115456169A (zh) * | 2022-09-06 | 2022-12-09 | 云知声智能科技股份有限公司 | 模型压缩方法、系统、终端及存储介质 |
CN116013293A (zh) * | 2022-12-26 | 2023-04-25 | 中科南京智能技术研究院 | 一种基于混合精度量化神经网络的语音唤醒方法及系统 |
-
2023
- 2023-04-27 CN CN202310473516.7A patent/CN116189667B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229356B1 (en) * | 2014-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Error tolerant neural network model compression |
CN112447190A (zh) * | 2019-08-14 | 2021-03-05 | 南京约顿海姆电子科技有限公司 | 基于混合噪声场景下的精度可控语音端点判别技术 |
CN110889204A (zh) * | 2019-11-06 | 2020-03-17 | 北京中科胜芯科技有限公司 | 一种神经网络模型参数压缩方法 |
WO2021208151A1 (zh) * | 2020-04-13 | 2021-10-21 | 商汤集团有限公司 | 一种模型压缩方法、图像处理方法以及装置 |
WO2022057776A1 (zh) * | 2020-09-21 | 2022-03-24 | 华为技术有限公司 | 一种模型压缩方法及装置 |
US20220164671A1 (en) * | 2020-11-20 | 2022-05-26 | Montage Technology Co., Ltd. | Method and device for compressing neural network |
CN115249058A (zh) * | 2021-04-27 | 2022-10-28 | Oppo广东移动通信有限公司 | 神经网络模型的量化方法、装置、终端及存储介质 |
CN113449854A (zh) * | 2021-08-30 | 2021-09-28 | 阿里云计算有限公司 | 网络模型的混合精度量化方法、设备及计算机存储介质 |
CN114897062A (zh) * | 2022-04-27 | 2022-08-12 | 际络科技(上海)有限公司 | 目标检测方法、装置、电子设备、介质及产品 |
CN114861886A (zh) * | 2022-05-30 | 2022-08-05 | 阿波罗智能技术(北京)有限公司 | 神经网络模型的量化方法及其装置 |
CN115456169A (zh) * | 2022-09-06 | 2022-12-09 | 云知声智能科技股份有限公司 | 模型压缩方法、系统、终端及存储介质 |
CN116013293A (zh) * | 2022-12-26 | 2023-04-25 | 中科南京智能技术研究院 | 一种基于混合精度量化神经网络的语音唤醒方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116189667B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216729B2 (en) | Recognition system and recognition method | |
US11373087B2 (en) | Method and apparatus for generating fixed-point type neural network | |
US11080481B2 (en) | Method and device for classifying questions based on artificial intelligence | |
CN108563767B (zh) | 图像检索方法及装置 | |
EP3014612B1 (en) | Acoustic music similarity determiner | |
WO2023005386A1 (zh) | 模型训练方法和装置 | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN113963715A (zh) | 语音信号的分离方法、装置、电子设备及存储介质 | |
CN111898363B (zh) | 文本长难句的压缩方法、装置、计算机设备及存储介质 | |
CN116189667B (zh) | 语音处理模型的量化压缩方法、装置、设备和存储介质 | |
CN111797220A (zh) | 对话生成方法、装置、计算机设备和存储介质 | |
CN116386674A (zh) | 语音情感识别方法、装置、电子设备和存储介质 | |
CN111538803A (zh) | 待匹配的候选提问文本获取方法及装置、设备及介质 | |
CN113326942B (zh) | 模型推理方法及装置、电子设备和存储介质 | |
US20210073586A1 (en) | Learning device, learning method, and storage medium | |
CN112884144A (zh) | 网络量化方法及装置、电子设备和存储介质 | |
Lysechko et al. | Experimental study of optimized face recognition algorithms for resource–constrained | |
KR20210048396A (ko) | 이진 신경망 생성 방법 및 장치 | |
CN112926334A (zh) | 确定词表示向量的方法、装置及电子设备 | |
CN116758295B (zh) | 关键点检测方法及装置、电子设备和存储介质 | |
CN114896965B (zh) | 文本纠正模型训练方法及装置、文本纠正方法及装置 | |
CN118194954A (zh) | 神经网络模型的训练方法及装置、电子设备和存储介质 | |
CN117350354B (zh) | 大模型的训练方法、装置、电子设备和存储介质 | |
CN113361677B (zh) | 神经网络模型的量化方法和装置 | |
CN113112012B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |