CN118428482A - 数据处理方法、装置及存储介质 - Google Patents
数据处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN118428482A CN118428482A CN202410390115.XA CN202410390115A CN118428482A CN 118428482 A CN118428482 A CN 118428482A CN 202410390115 A CN202410390115 A CN 202410390115A CN 118428482 A CN118428482 A CN 118428482A
- Authority
- CN
- China
- Prior art keywords
- calibration
- parameter
- data
- quantization
- network layer
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 36
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000013139 quantization Methods 0.000 claims abstract description 325
- 238000012545 processing Methods 0.000 claims abstract description 223
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000013507 mapping Methods 0.000 claims abstract description 79
- 238000012512 characterization method Methods 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000009792 diffusion process Methods 0.000 description 47
- 230000008569 process Effects 0.000 description 29
- 238000007781 pre-processing Methods 0.000 description 14
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 12
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 102000008016 Eukaryotic Initiation Factor-3 Human genes 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 108010089790 Eukaryotic Initiation Factor-3 Proteins 0.000 description 5
- 101710092887 Integrator complex subunit 4 Proteins 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 102100037075 Proto-oncogene Wnt-3 Human genes 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100011399 Danio rerio eif3ea gene Proteins 0.000 description 1
- 101150008815 INT6 gene Proteins 0.000 description 1
- 102100039134 Integrator complex subunit 4 Human genes 0.000 description 1
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开关于一种数据处理方法、装置及存储介质。上述方法包括获取第一步长参数和第一基础数据,上述第一基础数据为文本内容或图像内容的表征数据;获取上述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,上述第一量化校准参数为基于校准数据和上述第一步长参数进行针对上述第一网络层的量化校准所得到的参数;根据上述第一基础数据和上述第一量化校准参数,计算对应于上述第一步长参数和上述第一网络层的第一量化映射系数;基于上述第一量化映射系数对上述第一基础数据进行量化,并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第一输出数据。该方法能够确保数据处理精度和兼顾数据处理速度。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及数据处理方法、装置及存储介质。
背景技术
Diffusion模型是一种深度生成模型。在Diffusion模型中,数据经历两个阶段:扩散阶段和逆扩散阶段。在扩散阶段,通过不断对原始数据添加噪声,使数据从原始分布变为期望分布,在逆扩散阶段,将数据恢复到原始数据分布。Diffusion模型依赖迭代的去噪过程,其推理的成本开销远大于普通模型。因为Diffusion模型执行的是迭代的前向推理过程,每次迭代前向推理过程的输入都是不同的,因此,相关技术中的量化方案无法满足Diffusion模型的量化需求。
发明内容
为了解决上述至少一个技术问题,本公开提供数据处理方法、装置及存储介质,本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据处理方法,包括:
获取第一步长参数和第一基础数据,所述第一基础数据为文本内容或图像内容的表征数据;
获取所述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,所述第一量化校准参数为基于校准数据和所述第一步长参数进行针对所述第一网络层的量化校准所得到的参数;
根据所述第一基础数据和所述第一量化校准参数,计算对应于所述第一步长参数和所述第一网络层的第一量化映射系数;
基于所述第一量化映射系数对所述第一基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第一输出数据。
在一个可能的实施例中,所述获取第一步长参数和第一基础数据之前,所述方法包括:
确定所述第一步长参数对应的量化校准损失,所述量化校准损失以所述校准数据和校准参数为变量,所述量化校准损失指示所述校准数据的量化精度损失;
获取校准数据;
根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数。
在一个可能的实施例中,所述量化校准损失还包括误差控制参数,所述根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数,包括:
在所述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失;
在所述误差控制参数为第二预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,所述第一预设值与所述第二预设值不同;
将最小目标量化性能损失对应的目标校准参数作为所述第一量化校准参数;
其中,所述目标校准参数为对应的量化校准损失取得最小值时的校准参数,
所述目标量化性能损失指示在所述第一步长参数约束下,使用对应的目标校准参数对所述校准数据进行量化后,将量化结果输入所述第一网络层,并在所述数据处理模型的输出数据中产生的精度损失。
在一个可能的实施例中,所述根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数之后,所述方法还包括:
将基于所述第一量化校准参数对所述校准数据进行量化后所得到的结果输入所述第一网络层,将所述第一网络层的输出结果作为第二网络层对应的校准数据,所述第二网络层为所述数据处理模型中用于对所述第一网络层输出的数据进行处理的网络层;
根据所述第二网络层对应的校准数据与对应的量化校准损失的关系,确定所述第一步长参数在所述第二网络层对应的量化校准参数。
在一个可能的实施例中,所述根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数之后,所述方法还包括:
在确定出所述第一步长参数在所述数据处理模型各个网络层分别对应的量化校准参数的情况下,根据所述第一步长参数得到第二步长参数;
根据所述第一步长参数约束下所述数据处理模型的输出数据,得到所述第二步长参数约束下所述第一网络层对应的校准数据;
根据所述第二步长参数约束下所述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,所述第二量化校准参数为所述第二步长参数在所述第一网络层对应的量化校准参数。
在一个可能的实施例中,所述根据所述第二步长参数约束下所述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,包括:
获取参考误差控制参数,所述参考误差控制参数为所述第一量化校准参数对应的误差控制参数;
在所述误差控制参数为所述参考误差控制参数的情况下,将对应的量化校准损失取得最小值时的校准参数,确定为所述第二量化校准参数。
在一个可能的实施例中,所述在所述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,包括:
基于所述对应的目标校准参数对所述校准数据进行量化,将量化结果输入所述第一网络层;
获取在所述第一步长参数约束下,所述数据处理模型输出的第一数据处理结果;
将所述校准数据直接输入所述第一网络层,得到在所述第一步长参数约束下所述数据处理模型输出的第二数据处理结果;
根据所述第一数据处理结果和所述第二数据处理结果的差异,确定所述目标量化性能损失。
在一个可能的实施例中,所述基于所述第一量化映射系数对所述第一基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第一输出数据之后,所述方法还包括:
将所述第一输出数据作为第二网络层的第二基础数据,所述第二网络层为所述数据处理模型中用于对所述第一输出数据进行处理的网络层;
获取所述第一步长参数在所述第二网络层对应的量化校准参数;
根据所述第二基础数据,和所述第一步长参数在所述第二网络层对应的量化校准参数,计算对应于所述第一步长参数和所述第二网络层的量化映射系数;
基于所述对应于所述第一步长参数和所述第二网络层的量化映射系数,对所述第二基础数据进行量化,并将量化结果输入所述第二网络层进行数据处理,得到所述第二网络层的输出数据。
在一个可能的实施例中,所述方法还包括:
在获取到所述第一步长参数约束下由所述数据处理模型输出的目标输出数据、并且所述第一步长参数不满足步长参数约束条件的情况下,根据所述第一步长参数得到第二步长参数;
获取第二量化校准参数,所述第二量化校准参数为所述第二步长参数在所述第一网络层对应的量化校准参数;
根据所述目标输出数据和所述第二量化校准参数,计算对应于所述第二步长参数和所述第一网络层的第二量化映射系数;
基于所述第二量化映射系数和所述目标基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第二输出数据。
在一个可能的实施例中,所述方法还包括:
在获取到所述第一步长参数约束下由所述数据处理模型输出的目标输出数据、并且所述第一步长参数满足步长参数约束条件的情况下,将所述目标数据作为所述数据处理模型对所述第一基础数据的最终数据处理结果。
根据本公开实施例的第二方面,提供一种数据处理装置,包括:
数据获取模块,被配置为执行获取第一步长参数和第一基础数据,所述第一基础数据为文本内容或图像内容的表征数据;
量化映射系数确定模块,被配置为执行获取所述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,所述第一量化校准参数为基于校准数据和所述第一步长参数进行针对所述第一网络层的量化校准所得到的参数;以及,根据所述第一基础数据和所述第一量化校准参数,计算对应于所述第一步长参数和所述第一网络层的第一量化映射系数;
数据处理模块,被配置为执行基于所述第一量化映射系数对所述第一基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第一输出数据。
在一个实施例中,所述装置还包括预处理模块,所述预处理模块被配置为执行:
确定所述第一步长参数对应的量化校准损失,所述量化校准损失以所述校准数据和校准参数为变量,所述量化校准损失指示所述校准数据的量化精度损失;
获取校准数据;
根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数。
在一个实施例中,所述量化校准损失还包括误差控制参数,所述预处理模块被配置为执行:
在所述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失;
在所述误差控制参数为第二预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,所述第一预设值与所述第二预设值不同;
将最小目标量化性能损失对应的目标校准参数作为所述第一量化校准参数;
其中,所述目标校准参数为对应的量化校准损失取得最小值时的校准参数,
所述目标量化性能损失指示在所述第一步长参数约束下,使用对应的目标校准参数对所述校准数据进行量化后,将量化结果输入所述第一网络层,并在所述数据处理模型的输出数据中产生的精度损失。
在一个实施例中,所述预处理模块被配置为执行:
将基于所述第一量化校准参数对所述校准数据进行量化后所得到的结果输入所述第一网络层,将所述第一网络层的输出结果作为第二网络层对应的校准数据,所述第二网络层为所述数据处理模型中用于对所述第一网络层输出的数据进行处理的网络层;
根据所述第二网络层对应的校准数据与对应的量化校准损失的关系,确定所述第一步长参数在所述第二网络层对应的量化校准参数。
在一个实施例中,所述预处理模块被配置为执行:
在确定出所述第一步长参数在所述数据处理模型各个网络层分别对应的量化校准参数的情况下,根据所述第一步长参数得到第二步长参数;
根据所述第一步长参数约束下所述数据处理模型的输出数据,得到所述第二步长参数约束下所述第一网络层对应的校准数据;
根据所述第二步长参数约束下所述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,所述第二量化校准参数为所述第二步长参数在所述第一网络层对应的量化校准参数。
在一个实施例中,所述预处理模块被配置为执行:
获取参考误差控制参数,所述参考误差控制参数为所述第一量化校准参数对应的误差控制参数;
在所述误差控制参数为所述参考误差控制参数的情况下,将对应的量化校准损失取得最小值时的校准参数,确定为所述第二量化校准参数。
在一个实施例中,所述预处理模块被配置为执行:
基于所述对应的目标校准参数对所述校准数据进行量化,将量化结果输入所述第一网络层;
获取在所述第一步长参数约束下,所述数据处理模型输出的第一数据处理结果;
将所述校准数据直接输入所述第一网络层,得到在所述第一步长参数约束下所述数据处理模型输出的第二数据处理结果;
根据所述第一数据处理结果和所述第二数据处理结果的差异,确定所述目标量化性能损失。
在一个实施例中,所述数据获取模块,被配置为执行:将所述第一输出数据作为第二网络层的第二基础数据,所述第二网络层为所述数据处理模型中用于对所述第一输出数据进行处理的网络层;
所述量化映射系数确定模块,被配置为执行:获取所述第一步长参数在所述第二网络层对应的量化校准参数;根据所述第二基础数据,和所述第一步长参数在所述第二网络层对应的量化校准参数,计算对应于所述第一步长参数和所述第二网络层的量化映射系数;
所述数据处理模块,被配置为执行:基于所述对应于所述第一步长参数和所述第二网络层的量化映射系数,对所述第二基础数据进行量化,并将量化结果输入所述第二网络层进行数据处理,得到所述第二网络层的输出数据。
在一个实施例中,所述数据获取模块,被配置为执行:在获取到所述第一步长参数约束下由所述数据处理模型输出的目标输出数据、并且所述第一步长参数不满足步长参数约束条件的情况下,根据所述第一步长参数得到第二步长参数;
所述量化映射系数确定模块,被配置为执行:获取第二量化校准参数,所述第二量化校准参数为所述第二步长参数在所述第一网络层对应的量化校准参数;根据所述目标输出数据和所述第二量化校准参数,计算对应于所述第二步长参数和所述第一网络层的第二量化映射系数;
所述数据处理模块,被配置为执行:基于所述第二量化映射系数和所述目标基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第二输出数据。
在一个实施例中,所述数据处理模块,被配置为执行:在获取到所述第一步长参数约束下由所述数据处理模型输出的目标输出数据、并且所述第一步长参数满足步长参数约束条件的情况下,将所述目标数据作为所述数据处理模型对所述第一基础数据的最终数据处理结果。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如上述第一方面中任一项的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例的第一方面中任一项的方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从可读存储介质读取并执行计算机程序,使得计算机设备执行本公开实施例的第一方面中任一项的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例提供了一种数据处理方案,该数据处理方案实质上通过动态确定Diffusion模型任意步长参数下任意一层前向推理时使用的量化映射系数,从而实现任意步长参数下任意一层前向推理的量化,该量化映射系数基于该任意步长参数下任意一层的要处理的数据(处理对象)和量化校准参数计算得到,该量化校准参数为固定值,该固定值为基于校准数据对该步长参数下该层前向推理过程进行预先的量化校准所得到的,因此该固定值在具体的量化执行之前是已知参数,不会降低量化映射系数的计算速度,也不会降低前向推理速度。但是却可以显著提升量化性能,降低数据处理时的空间开销并且控制数据精度。
本公开适用于施行迭代前向推理的数据处理模型,这类模型的典型代表就是Diffusion模型,以Diffusion模型为例,由于引入该固定值,相当于提前对Diffusion模型各步长参数下各层迭代的前向推理过程进行了预先校准,所以可以保证量化后的Diffusion模型的推理精度。因此,本公开提供的数据处理方案能够在基本不损失Diffusion模型推理效率的基础上,既降低Diffusion模型的运行占用空间又保证Diffusion模型的推理精度,并且对于INT8、INT4、INT6等量化情况来说均可以实现较好的数据处理性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据处理方法的实施环境示意图;
图2是根据一示例性实施例示出的一种数据处理方法的流程图;
图3是根据一示例性实施例示出的量化校准参数确定方法的流程图一;
图4是根据一示例性实施例示出的量化校准参数确定方法的流程图二;
图5是根据一示例性实施例示出的目标量化性能损失确定方法的流程图;
图6是根据一示例性实施例示出的本公开实施效果对比图;
图7是根据一示例性实施例示出的一种数据处理装置框图;
图8是根据一示例性实施例示出的计算机设备的结构框图一;
图9是根据一示例性实施例示出的计算机设备的结构框图二。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的第一对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本申请提供的方法实施例之前,先对本申请方法实施例中可能涉及的相关术语或者名词进行简要介绍,以便于本申请领域技术人员理解。
Diffusion模型:Diffusion模型是一种深度生成模型。在Diffusion模型中,数据经历两个阶段:扩散阶段和逆扩散阶段。在扩散阶段,通过不断对原始数据添加噪声,使数据从原始分布变为期望分布,在逆扩散阶段,将数据恢复到原始数据分布。
Diffusion模型在图像生成领域应用较多,在Diffusion模型用于图像生成时由于Diffusion模型是多步长迭代模型,需要经过多次迭代的前向推理过程才可以得到输出结果,每一次的前向推理都需要使用对应的步长参数(step),此外,在每一次的前向推理还需要使用噪声图像参数,该噪声图像参数用于作为Diffusion模型前向推理的推理基础,Diffusion模型通过对该噪声图像参数中的噪声进行逐层降噪,得到本次前向推理的图像输出结果,即更新该噪声图像参数。在下一次迭代时,更新step并使用更新后的噪声图像参数继续进行前向推理,直至得到最终的图像生成结果。
Int8是一种数据类型,表示8位有符号整数。它的数值范围是从-128到127,其中-128是最小值,127是最大值。在计算机硬件设备中,它只需要一个字节的存储空间。INT6和INT4是相似含义,分别表示6位的有符号整数和4位的有符号整数。
FP32是指32位浮点数(32-bit floating-point number),也称为单精度浮点数(single-precision floating-point)。它在图形处理、科学计算、机器学习和深度学习等领域被广泛应用。在计算机硬件设备中,它需要4个字节的存储空间。
量化:将存储空间占位较多运算速度较慢的数,比如将FP32转换为较低精度的表示形式,如Int8、Int6或Int4。
在具体阐述本公开实施例之前,对与本公开实施例有关的相关技术背景进行介绍,以便于本申请领域技术人员理解。
Diffusion模型作为一种性能优秀的深度生成模型,在相关技术中取得了广泛应用,尤其在图像生成领域,Diffusion模型充分证明了其潜力和优越性,然而,由于Diffusion模型依赖迭代的去噪过程,其推理的成本开销远大于普通模型,常见的Diffusion模型的图像生成时间已经到了秒的量级,高算力需求严重限制了Diffusion模型的广泛应用。
量化已经被证明可以对于Diffusion模型进行有效的加速,降低该Diffusion模型运行时占用的存储空间以及提升Diffusion模型的结果输出速度。以将Diffusion模型的每次前向推理时的输入数据量化为INT8为例,量化后不仅可以显著降低Diffusion模型运行占用的存储空间,同时得益于INT8乘加的硬件友好特性,还可以加速模型推理速度。在其他神经网络模型的研究中量化已经有了成熟的方案,但是Diffusion模型与其他神经网络模型有所不同,因为Diffusion模型执行的是迭代的前向推理过程,每次迭代的输入都是不同的,因此,相关技术中的量化方案无法满足Diffusion模型的量化需求。
Diffusion模型的量化可以基于基础量化公式施行,该基础量化公式 中,x表示被量化对象,[]表示取整操作,clamp表示截断操作,小于qmin的数都将被置为qmin,大于qmax的数被设置为qmax。s为量化映射系数。对INT8而言,qmin=-128,qmax=127。基础量化公式中的量化映射系数的设置对于Diffusion模型的量化结果有重要影响。
在一种相关技术中提供量化映射系数的基础动态设置方法,该基础动态设置方法使用公式s=abs(x)max()/(2n-1-1)来确定量化映射系数s,该公式为基础量化映射系数公式,该基础量化映射系数公式中abs()表示绝对值,max()表示最大值,即根据一批被量化的数中绝对值最大的被量化的数,和量化位数n来唯一确定量化映射系数。但是,这种量化方式已经被很多工作证明并非是最优的,往往也不能获得最优的性能。尤其在Diffusion模型中,如果每次前向推理都使用该基础量化映射公式对于该次前向推理的输入进行量化,那么量化引入的误差随着多次迭代进行增长的趋势会十分明显,对于Diffusion模型的输出精度会有较大影响。
在另一种相关技术中,提出了一种静态量化方法,在INT8量化中性能尚可,但在INT6或INT4中性能会急剧下降。而且,需要使用额外的优化方法来保证量化后Diffusion模型的推理精度,因此较为耗时。
在另一种相关技术中,提出了一种优化动态量化方法,通过额外设置神经网络动态为每一次前向推理计算量化映射系数,但是该方法中的神经网络需要额外训练,而且每一次的动态计算量化映射系数的时候会引入较大的计算开销,降低了Diffusion模型的推理速度。
可见,相关技术中尚没有提出能够在降低Diffusion模型的推理开销的基础上保证推理精度的量化方案,该推理开销包括了推理所需的时间资源和占用的空间资源,具体来说,第一种相关技术无法保证Diffusion模型的推理精度,第二种相关技术因为较为耗时增加了推理开销,第三种相关技术因为进入计算开销也增加了推理开销。
有鉴于此,本公开实施例提供了一种数据处理方案,该数据处理方案实质上通过动态确定Diffusion模型每一步长参数下每一层前向推理时使用的量化映射系数,从而实现每一步长参数下每一层前向推理的量化,该量化映射系数基于该每一步长参数下每一层的要处理的数据(处理对象)和量化校准参数计算得到,该量化校准参数为固定值,该固定值为基于校准数据对该步长参数下该层前向推理过程进行预先的量化校准所得到的,因此该固定值在具体的量化执行之前是已知参数,不会降低量化映射系数的计算速度,也不会降低前向推理速度。
本公开适用于施行迭代前向推理的数据处理模型,这类模型的典型代表就是Diffusion模型,以Diffusion模型为例,由于引入该固定值,相当于提前对Diffusion模型各步长参数下各层迭代的前向推理过程进行了预先校准,所以可以保证量化后的Diffusion模型的推理精度。因此,本公开提供的数据处理方案能够在基本不损失Diffusion模型推理效率的基础上,既降低Diffusion模型的运行占用空间又保证Diffusion模型的推理精度,对于INT8、INT4、INT6等量化情况来说均可以实现较好性能。
本公开所涉及的全部数据或信息都为经用户授权或者经过各方充分授权的数据或信息。
图1是根据一示例性实施例示出的一种数据处理方法的实施环境示意图。以电子设备被提供为终端为例,参见图1,该实施环境具体包括:终端101和服务器102。
终端101可以为智能手机、智能手表、台式电脑、手提电脑和膝上型便携计算机等设备中的至少一种。终端101上可以安装并运行有使用本公开中数据处理方法的应用程序,用户可以通过终端101登录该应用程序来获取与本公开中数据处理方法有关的服务。终端101可以泛指多个终端中的一个,本实施例仅以终端101来举例说明。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为几个,或者上述终端为几十个或几百个,或者更多数量,本公开实施例对终端的数量和设备类型均不加以限定。
服务器102可以为一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器102可以通过无线网络或有线网络与终端101和其他终端相连,服务器102可以实施本公开的数据处理方法,并将数据处理结果传输给终端101,终端101可以对数据处理结果进行使用或展示。当然,服务器102还可以包括其他功能服务器,以便提供更全面且多样化的服务。
图2是根据一示例性实施例示出的一种数据处理方法的流程图,如图2所示,上述方法至少包括以下步骤S210-S240。
在步骤S210中,获取第一步长参数和第一基础数据,上述第一基础数据为文本内容或图像内容的表征数据。
本公开中的数据处理方法可以适用于通过迭代前向推理完成数据处理过程的数据处理模型,本公开以Diffusion模型为例详细阐述本公开的数据处理方法。
Diffusion模型为迭代前向推理模型,每一次的前向推理所使用的输入数据包括两部分,一部分用于表征迭代信息,这类信息可以被理解为步长参数,另一部分信息是Diffusion模型的直接处理对象,这类信息被称为基础数据。对于Diffusion模型而言,每一次迭代每一网络层的输入都包括对应的步长参数和该网络层的直接处理对象。Diffusion模型可以对文本中的信息或图像中的信息进行处理,因此,基础数据是文本内容或图像内容的表征数据。通过多次迭代前向推理,Diffusion模型可以最终输出与该表征数据充分契合的图像。本公开并不对表征数据进行限定,比如,直接对文本内容或图像内容进行特征提取可以得到表征数据,或者经过Diffusion模型中任一次迭代任一网络层输出的数据都可以被理解为一种文本内容或图像内容的表征数据。
步骤S210表示的是对任意一次迭代的任意一网络层的数据处理过程,步骤S210可以获取到对应的步长参数和基础数据,即为步骤S210中的第一步长参数和第一基础数据,对应的网络层即为第一网络层。以第一次迭代第一层网络层为例,该第一步长参数即为步长参数的初始值,这个是已知参数,第一基础数据就是Diffusion模型的初始数据处理对象。以第一次迭代第二层网络层为例,第一步长参数为步长参数的初始值,第一基础数据即为第一次第一层网络层输出的数据。以第二次迭代第一层网络层为例,第一步长参数即为该步长参数的初始值经过一次迭代之后更新后的数值,第一基础数据即为第一次迭代最后一个网络层输出的数据。
在步骤S220中,获取上述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,上述第一量化校准参数为基于校准数据和上述第一步长参数进行针对上述第一网络层的量化校准所得到的参数。
本公开预先为每一次迭代时的每一网络层设置一个量化校准参数,从而提升量化校准速度和精度。对应于第一步长参数和第一网络层的量化校准参数即为第一量化校准参数。在下文本公开详述基于校准数据对各步长参数下各网络层对应的量化校准参数进行设定的技术方案,在此不做赘言。
在步骤S230中,根据上述第一基础数据和上述第一量化校准参数,计算对应于上述第一步长参数和上述第一网络层的第一量化映射系数。
Diffusion模型的量化可以基于前述的基础量化公式施行,该基础量化公式 中,s即为量化映射系数。相关技术中直接使用基础量化映射系数公式s=abs(x)max()/(2n-1-1)来确定s,可见s是与被量化对象有关的一个参数。为了解决相关技术中直接使用s=abs(x)max()/(2n-1-1)来确定s出现的量化性能低下的问题,本公开中使用量化校准参数对s进行校准。因此,在步骤S230中基于第一量化校准参数和第一基础数据来计算第一量化映射系数。该方法本质上依然是一种动态量化方法,因为第一量化映射系数基于第一量化校准参数和第一基础数据被动态设置。其中,第一量化校准参数是预校准的,第一基础数据是与迭代情况和网络层密切相关的动态数据。
本公开中基于公式s=f(t)*abs(x)max()/(2n-1-1)确定第一量化映射系数,其中s为该第一量化映射系数,abs(x)max()/(2n-1-1)与前文含义相同,x即为该第一基础数据,f(t)即为第一量化校准参数,t表示的是步长参数,在步骤S230中t对应第一步长参数。第一量化校准参数的取值范围为0至1,它代表了针对不同的步长参数或者说迭代step所得到的预校准的参数,不同于相关技术需要引入额外的神经网络来计算量化映射系数,本公开直接使用预先计算好的量化校准参数配合abs(x)max()/(2n-1-1)来决定最优的量化映射系数。这样同样可以达到确保量化精度和数据处理性能的目的,并且可以节省计算资源,提升数据处理速度。
在步骤S240中,基于上述第一量化映射系数对上述第一基础数据进行量化,并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第一输出数据。
步骤S240中的量化可以基于前述基础量化公式施行,该基础量化公式 中,x使用第一基础数据,[]表示取整操作,clamp表示截断操作,s为使用的第一量化映射系数。对INT8而言,qmin=-128,qmax=127。本公开并不对第一网络层的数据处理过程进行限定,该过程是由Diffusion模型确定。该第一网络层的输出结果即为第一输出数据。同理,本公开也不限定其他网络层的数据处理过程,都与数据处理模型本身有关。
第一步长参数和第一基础数据表征Diffusion模型任意一次迭代的任一网络层使用的步长参数和基础数据,本公开实质上通过动态确定Diffusion模型每一步长参数下每一层前向推理时使用的量化映射系数,从而实现每一步长参数下每一层前向推理的量化,该量化映射系数基于该每一步长参数下每一层的要处理的数据(基础数据)和量化校准参数计算得到,该量化校准参数为固定值,该固定值为基于校准数据对该步长参数下该层前向推理过程进行预先的量化校准所得到的,因此该固定值在具体的量化执行之前是已知参数,不会降低量化映射系数的计算速度,也不会降低前向推理速度。以Diffusion模型为例,由于引入该固定值,相当于提前对Diffusion模型各步长参数下各层迭代的前向推理过程进行了预先校准,所以能够在基本不损失Diffusion模型推理效率的基础上,既降低Diffusion模型的运行占用空间又保证Diffusion模型的推理精度,并且对于INT8、INT4、INT6等量化情况来说均可以实现良好性能。
在一个实施方式中,如果第一网络层不是Diffusion模型最后一个网络层,则可以在上述基于上述第一量化映射系数对上述第一基础数据进行量化,并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第一输出数据之后,将上述第一输出数据作为第二网络层的第二基础数据,上述第二网络层为上述数据处理模型中用于对上述第一输出数据进行处理的网络层;获取上述第一步长参数在上述第二网络层对应的量化校准参数;根据上述第二基础数据,和上述第一步长参数在上述第二网络层对应的量化校准参数,计算对应于上述第一步长参数和上述第二网络层的量化映射系数;基于上述对应于上述第一步长参数和上述第二网络层的量化映射系数,对上述第二基础数据进行量化,并将量化结果输入上述第二网络层进行数据处理,得到上述第二网络层的输出数据。
该第一步长参数在上述第二网络层对应的量化校准参数也是通过预先校准得到的,与前文第一量化校准参数的获取方式基于相同发明构思。上述第一步长参数和上述第二网络层对应的量化映射系数的确定方法也与前文第一量化映射系数的确定方法基于相同发明构思。对上述第二基础数据进行量化,并将量化结果输入上述第二网络层进行数据处理,得到上述第二网络层的输出数据的具体方式跟前文步骤S240基于相同发明构思,在此不做赘述。
由于该第二网络层可以被理解为数据处理模型(Diffusion模型)在第一网络层后的网络层,因此可以在第一步长参数约束下第一网络层完成了数据处理之后,利用第一网络层处理完成后的数据继续对接下来的第二网络层进行基于量化的数据处理,从而进一步在第一步长参数所约束的迭代轮次下完成后续网络层的基于量化的数据处理,直至得到第一步长参数所约束的迭代轮次下的数据处理模型最终的数据处理结果。这与相关技术在第一步长参数所约束的迭代轮次下的数据处理模型的数据处理过程相比,可以得到更好的量化性能和更准确的数据处理结果。
在一个实施方式中,如果第一步长参数不是Diffusion模型最后一个步长参数,则上述第一步长参数不满足步长参数约束条件。在获取到上述第一步长参数约束下由上述数据处理模型最终输出的目标输出数据、并且上述第一步长参数不满足步长参数约束条件的情况下,根据上述第一步长参数得到第二步长参数;获取第二量化校准参数,上述第二量化校准参数为上述第二步长参数在上述第一网络层对应的量化校准参数;根据上述目标输出数据和上述第二量化校准参数,计算对应于上述第二步长参数和上述第一网络层的第二量化映射系数;基于上述第二量化映射系数和上述目标基础数据进行量化,并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第二输出数据。该目标输出数据可以被理解为第一步长参数约束下Diffusion模型的单轮次最终输出结果,即本轮的输出图像。
将该目标输出数据进行新一轮迭代处理,这个过程与上一轮次的迭代处理的发明构思相同,因此基于目标输出数据可以确定第二步长参数下第一网络层对应的基础数据。基于第二步长参数下第一网络层对应的基础数据和上述第二量化校准参数,即可计算对应于上述第二步长参数和上述第一网络层的第二量化映射系数。基于上述第二量化映射系数对上述第二步长参数下第一网络层对应的基础数据进行量化并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第二输出数据。
该第二量化校准参数和第二量化映射系数的确定方法分别与前文第一量化校准参数和第一量化映射系数的确定方法基于相同发明构思。具体的量化方法也跟前文步骤S240基于相同发明构思,在此不做赘述。
由于该第二步长参数可以被理解为第一步长参数之后下一轮次的步长参数,因此可以在第一步长参数约束下整个Diffusion模型完成数据处理之后,利用目标输出数据开启下一轮次的数据处理,直至完成全部轮次的数据处理得到整体处理过程中最终的数据处理结果。这与相关技术在相同迭代轮次下的数据处理模型的数据处理过程相比,可以得到更好的量化性能和更准确的数据处理结果。
当然,在获取到上述第一步长参数约束下由上述数据处理模型输出的目标输出数据、并且上述第一步长参数满足步长参数约束条件的情况下,将上述目标数据作为上述数据处理模型对上述第一基础数据的最终数据处理结果。也就是说,如果第一步长参数指示最后一次迭代过程,那么上述第一步长参数满足步长参数约束条件。第一步长参数约束下由上述数据处理模型输出的目标输出数据即可作为模型最终的数据处理结果。以Diffusion模型而言,就可以得到一张处理后的最终图像。该最终图像的生成速度和生成精度得益于本公开的数据处理方案都显著优于相关技术。
接下来,本公开详述对各迭代Step各网络层进行量化校准,得到对应的量化校准参数的技术方案。该量化校准参数的计算过程属于预处理过程,位于步骤S210之前,因此,不会降低应用时量化映射系数的计算速度。请参考图3,其是根据一示例性实施例示出的量化校准参数确定方法的流程图一。该方法包括:
步骤S310.确定上述第一步长参数对应的量化校准损失,上述量化校准损失以上述校准数据和校准参数为变量,上述量化校准损失指示上述校准数据的量化精度损失。
本公开实施例中的量化校准损失与校准数据、校准参数有关,指示对该校准数据基于该校准参数进行直接量化所产生的量化精度损失。本公开并不限定量化校准损失的表达式。在一个实施方式中,量化校准损失loss=||Q(x)*s-x||p,其中,x为校准参数,s前文有述可以通过f(t)*abs(x)max()/(2n-1-1)计算,与loss连用时x也指代校准参数,f(t)是步骤S310的校准参数。||.||p代表矩阵范数,p为误差控制参数。
步骤S320.获取校准数据。
本公开并不对校准数据进行限定,其可以根据实际情况进行设置,其就是可以触发数据处理模型进行数据处理的处理对象而已,其设置方式不构成本公开的实施限制。显然,任何文本内容或图像内容的表征数据都可以作为该校准数据。
步骤S330.根据上述校准数据与上述量化校准损失的关系,确定上述第一量化校准参数。
本公开通过设置量化校准损失,可以基于上述校准数据与上述量化校准损失的关系,确定上述第一量化校准参数,而第一量化校准参数可以用于在应用阶段快速量化和确保量化性能。
请参考图4,其是根据一示例性实施例示出的量化校准参数确定方法的流程图二。该方法包括:
S410.在上述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,上述目标校准参数为对应的量化校准损失取得最小值时的校准参数,上述目标量化性能损失指示在上述第一步长参数约束下,使用对应的目标校准参数对上述校准数据进行量化后,将量化结果输入上述第一网络层,并在上述数据处理模型的输出数据中产生的精度损失。
基于量化校准损失loss=||Q(x)*s-x||p可知,校准参数f(t)、误差控制参数p和校准数据x都影响量化校准损失loss的值,那么固定误差控制参数p的情况下,可以得到量化校准损失取得最小值时的校准参数。因此,当误差控制参数为第一预设值时,可以得到对应的量化校准损失取得最小值时的校准参数,即得到误差控制参数为第一预设值时对应的目标校准参数。
请参考图5,其是根据一示例性实施例示出的目标量化性能损失确定方法的流程图。上述在上述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,包括:
S510.基于上述对应的目标校准参数对上述校准数据进行量化,将量化结果输入上述第一网络层。
量化基于基础量化公式实施,这一过程与前文的量化基于相同发明构思,在此不做赘述。
S520.获取在上述第一步长参数约束下,上述数据处理模型输出的第一数据处理结果。
将第一网络层输出的数据处理结果继续由数据处理模型的后续网络层进行处理,可以得到第一步长参数指示的迭代step下最终的数据处理结果,即第一数据处理结果。
S530.将上述校准数据直接输入上述第一网络层,得到在上述第一步长参数约束下上述数据处理模型输出的第二数据处理结果。
如果不进行量化,直接使用数据处理模型进行数据处理,可以得到第一步长参数指示的迭代step下最终的数据处理结果,即第二数据处理结果。以Diffusion模型为例,第一数据处理结果和第二数据处理结果,都是一种图像。
S540.根据上述第一数据处理结果和上述第二数据处理结果的差异,确定上述目标量化性能损失。
目标量化性能损失就是量化第一数据处理结果和第二数据处理结果之间差异的损失,也就是量化后单迭代轮次下最终产生的精度损失。本公开并不对目标性能量化损失的具体计算方式进行限定,不构成本公开实施障碍。
本公开中在误差控制参数确定的情况下,可以计算得到对应的目标校准参数和目标量化性能损失,从而量化误差控制参数确定的情况下目标校准参数对应产生的单迭代轮次下最终产生的精度损失,根据该损失即可选择精度损失最小的量化误差控制参数和目标校准参数,进而在应用阶段得到合理的量化映射系数,确保应用阶段的数据处理精度,并且不降低数据处理速度。
S420.在上述误差控制参数为第二预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,上述第一预设值与上述第二预设值不同。
误差控制参数可以根据预设规则进行变动,该误差控制参数的选取本公开不做限定。对校准数据,如果误差控制参数p较小,则求得的目标量化性能损失更多体现量化产生的全局误差,如果误差控制参数p较大则代表求得的目标量化性能损失更关注被量化对象中绝对值较大者产生的精度误差。
在一个实施方式中,误差控制参数p可以在2至3.2之间选取若干值,都得到对应的目标校准参数和对应的目标量化性能损失。步骤S420中误差控制参数p选取了一个与步骤S410中不同的值,对应得到不同的目标校准参数和对应的目标量化性能损失。第一预设值和第二预设值可以都是属于2至3.2之间的值。显然,可以得到若干的三元组,每个三元组都包括误差控制参数p,对应的目标校准参数和对应的目标量化性能损失。
S430.将最小目标量化性能损失对应的目标校准参数作为上述第一量化校准参数。
将目标量化性能损失最小的三元组中的目标校准参数作为第一量化校准参数。本公开给出了第一量化校准参数的具体确定方法,得到的第一量化校准参数可以在步骤S210中被获取,并且用于量化第一基础数据,从而通过量化的方式提升数据处理模型的数据处理速度,减少运行空间并且还可以控制精度损失。
在得到第一步长参数第一网络层对应的第一量化校准参数的情况下,还可以继续进行第一步长参数情况下其他网络层对应的量化校准参数的确定。如果第一网络层并非数据处理模型最后一个网络层,那么可以将基于上述第一量化校准参数对上述校准数据进行量化后所得到的结果输入上述第一网络层,将上述第一网络层的输出结果作为第二网络层对应的校准数据,上述第二网络层为上述数据处理模型中用于对上述第一网络层输出的数据进行处理的网络层;根据上述第二网络层对应的校准数据与对应的量化校准损失的关系,确定上述第一步长参数在上述第二网络层对应的量化校准参数。显然,根据上述第二网络层对应的校准数据与对应的量化校准损失的关系,确定上述第一步长参数在上述第二网络层对应的量化校准参数的发明构思与前文得到第一量化校准参数的发明构思相同,在此不做赘述。
由于该第二网络层可以被理解为数据处理模型(Diffusion模型)在第一网络层后的网络层,因此可以在第一步长参数约束下确定了第一网络层对应的量化校准参数(第一量化校准参数)之后,进一步得到第一步长参数约束下第二网络层对应的量化校准参数,直至得到第一步长参数所约束的迭代轮次下各网络层各自的量化校准参数,这些量化校准参数都可以在应用阶段用于快速得到对应的量化映射系数,从而实现高性能的基于量化的数据处理。
在得到第一步长参数约束下各网络层各自对应的量化校准参数的情况下,如果第一步长参数并非最后迭代轮次的步长参数,则还可以继续进行第二步长参数情况下各网络层的量化校准参数的确定。具体来说,可以在确定出上述第一步长参数在上述数据处理模型各个网络层分别对应的量化校准参数的情况下,根据上述第一步长参数得到第二步长参数;根据上述第一步长参数约束下上述数据处理模型的输出数据,得到上述第二步长参数约束下上述第一网络层对应的校准数据。也就是说,根据上一次迭代前向推理的最终输出来得到下一次迭代时第一网络层的数据处理对象,这个过程与前文得到第二基础数据的发明构思相同,不做赘言。
根据上述第二步长参数约束下上述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,上述第二量化校准参数为上述第二步长参数在上述第一网络层对应的量化校准参数。基于第一步长参数得到第二步长参数的过程就是迭代前向推理的自身过程,也是Diffusion模型自身特性,本公开不做赘言。
由于该第二步长参数可以被理解为第一步长参数之后下一轮次的步长参数,因此可以在第一步长参数约束下整个Diffusion模型各网络层都得到对应的量化校准参数后,开启下一轮次的数据处理,得到下一轮次各网络层对应的量化校准参数,直至得到全部轮次的各网络层分别的量化校准参数。从而在应用阶段可以使得各个轮次各个网络层都可以进行快速的量化,充分保证量化速度和数据处理精度。
在一个实施方式中,第二量化校准参数确定方式可以与第一量化校准参数基于相同发明构思。在另一个实施方式中,给出了基于第一步长参数约束下第一网络层的量化校准过程,提升第二量化校准参数确定速度的技术方案。具体地,可以获取参考误差控制参数,上述参考误差控制参数为上述第一量化校准参数对应的误差控制参数。在上述误差控制参数为上述参考误差控制参数的情况下,将对应的量化校准损失取得最小值时的校准参数,确定为上述第二量化校准参数。
在前文得到了若干三元组,第一量化校准参数所在的三元组的误差控制参数可以直接作为步骤S610中使用的误差量化参数,从而无需重新生成若干三元组,也就是说,直接得到了计算第二量化校准参数时使用的误差量化参数p,进而可以得到对应的目标校准参数,将该目标校准参数直接作为上述第二量化校准参数。该实施方式充分利用上一轮次进行迭代量化校准的结果,提升量化校准参数计算速度。
本公开提供的数据处理方案本质而言是一种结合预先校准的量化校准参数的动态量化方案,该方案的技术效果与前文提及的其他相关技术相比具备显著的优势。
请参考图6,其是根据一示例性实施例示出的本公开实施效果对比图。图6左图显示的是本公开的数据处理方案(本方案)与前文提及的静态量化方案(方案一)和优化动态量化方案(方案二)的图像生成效果对比表。应用场景为INT8量化的DDIM模型场景。DDIM(去噪扩散隐含模型)可以看作是对DDPM(去噪扩散概率模型)的一种优化模型,使用的数据来自CIFAR-10这一常用的图像分类数据集。
FID分数(Fréchet Inception Distance)是一种用于评估图像质量的指标,特别是在评估由生成对抗网络生成的图像时非常常用。FID分数通过计算真实图像和生成图像的特征之间的距离来衡量两组图像的相似度。FID越低代表生成图像的质量越好。
图6左图显示本公开的数据处理方案的FID明显低于方案一和方案二,这充分说明本公开图像生成效果更好,在处理同样的基础数据情况下,本公开可以生成质量更好的图像。
图6右图示出与静态量化方案对比得到的推理延时对比图。本公开得到的延时比例明显低于方案2,所以比优化动态量化方案的延时小。本公开作为一种动态量化方案,其延时性能已经非常接近于方案一这一静态量化方案的延时性能了。
本公开可以利用动态INT8量化加速Diffusion模型的数据处理过程,比如图像生成过程,这一过程可以为Diffusion模型带来1.5至2的加速效果,同时也显著降低了存储需求。并且在保证INT8加速效果的同时,可以获得远超方案一的数据处理的性能,且相较于方案二而言,获得了更快的推理速度。作为一种动态量化方案,本公开是一种计算友好的动态量化方式,在保证量化精度的同时几乎不引入额外的计算开销,甚至基本达到了使用静态量化的推理效率,本公开的推理速度已经与静态量化方案接近了,这显然已经取得了非常理想的推理速度提升。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种数据处理装置框图。参照图7,该装置包括:
数据获取模块710,被配置为执行获取第一步长参数和第一基础数据,上述第一基础数据为文本内容或图像内容的表征数据;
量化映射系数确定模块720,被配置为执行获取上述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,上述第一量化校准参数为基于校准数据和上述第一步长参数进行针对上述第一网络层的量化校准所得到的参数;以及,根据上述第一基础数据和上述第一量化校准参数,计算对应于上述第一步长参数和上述第一网络层的第一量化映射系数;
数据处理模块730,被配置为执行基于上述第一量化映射系数对上述第一基础数据进行量化,并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第一输出数据。
在一个实施例中,上述装置还包括预处理模块740,上述预处理模块740被配置为执行:
确定上述第一步长参数对应的量化校准损失,上述量化校准损失以上述校准数据和校准参数为变量,上述量化校准损失指示上述校准数据的量化精度损失;
获取校准数据;
根据上述校准数据与上述量化校准损失的关系,确定上述第一量化校准参数。
在一个实施例中,上述量化校准损失还包括误差控制参数,上述预处理模块740被配置为执行:
在上述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失;
在上述误差控制参数为第二预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,上述第一预设值与上述第二预设值不同;
将最小目标量化性能损失对应的目标校准参数作为上述第一量化校准参数;
其中,上述目标校准参数为对应的量化校准损失取得最小值时的校准参数,
上述目标量化性能损失指示在上述第一步长参数约束下,使用对应的目标校准参数对上述校准数据进行量化后,将量化结果输入上述第一网络层,并在上述数据处理模型的输出数据中产生的精度损失。
在一个实施例中,上述预处理模块740被配置为执行:
将基于上述第一量化校准参数对上述校准数据进行量化后所得到的结果输入上述第一网络层,将上述第一网络层的输出结果作为第二网络层对应的校准数据,上述第二网络层为上述数据处理模型中用于对上述第一网络层输出的数据进行处理的网络层;
根据上述第二网络层对应的校准数据与对应的量化校准损失的关系,确定上述第一步长参数在上述第二网络层对应的量化校准参数。
在一个实施例中,上述预处理模块740被配置为执行:
在确定出上述第一步长参数在上述数据处理模型各个网络层分别对应的量化校准参数的情况下,根据上述第一步长参数得到第二步长参数;
根据上述第一步长参数约束下上述数据处理模型的输出数据,得到上述第二步长参数约束下上述第一网络层对应的校准数据;
根据上述第二步长参数约束下上述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,上述第二量化校准参数为上述第二步长参数在上述第一网络层对应的量化校准参数。
在一个实施例中,上述预处理模块740被配置为执行:
获取参考误差控制参数,上述参考误差控制参数为上述第一量化校准参数对应的误差控制参数;
在上述误差控制参数为上述参考误差控制参数的情况下,将对应的量化校准损失取得最小值时的校准参数,确定为上述第二量化校准参数。
在一个实施例中,上述预处理模块740被配置为执行:
基于上述对应的目标校准参数对上述校准数据进行量化,将量化结果输入上述第一网络层;
获取在上述第一步长参数约束下,上述数据处理模型输出的第一数据处理结果;
将上述校准数据直接输入上述第一网络层,得到在上述第一步长参数约束下上述数据处理模型输出的第二数据处理结果;
根据上述第一数据处理结果和上述第二数据处理结果的差异,确定上述目标量化性能损失。
在一个实施例中,上述数据获取模块710,被配置为执行:将上述第一输出数据作为第二网络层的第二基础数据,上述第二网络层为上述数据处理模型中用于对上述第一输出数据进行处理的网络层;
上述量化映射系数确定模块720,被配置为执行:获取上述第一步长参数在上述第二网络层对应的量化校准参数;根据上述第二基础数据,和上述第一步长参数在上述第二网络层对应的量化校准参数,计算对应于上述第一步长参数和上述第二网络层的量化映射系数;
上述数据处理模块730,被配置为执行:基于上述对应于上述第一步长参数和上述第二网络层的量化映射系数,对上述第二基础数据进行量化,并将量化结果输入上述第二网络层进行数据处理,得到上述第二网络层的输出数据。
在一个实施例中,上述数据获取模块710,被配置为执行:在获取到上述第一步长参数约束下由上述数据处理模型输出的目标输出数据、并且上述第一步长参数不满足步长参数约束条件的情况下,根据上述第一步长参数得到第二步长参数;
上述量化映射系数确定模块720,被配置为执行:获取第二量化校准参数,上述第二量化校准参数为上述第二步长参数在上述第一网络层对应的量化校准参数;根据上述目标输出数据和上述第二量化校准参数,计算对应于上述第二步长参数和上述第一网络层的第二量化映射系数;
上述数据处理模块730,被配置为执行:基于上述第二量化映射系数和上述目标基础数据进行量化,并将量化结果输入上述第一网络层进行数据处理,得到上述第一网络层的第二输出数据。
在一个实施例中,上述数据处理模块730,被配置为执行:在获取到上述第一步长参数约束下由上述数据处理模型输出的目标输出数据、并且上述第一步长参数满足步长参数约束条件的情况下,将上述目标数据作为上述数据处理模型对上述第一基础数据的最终数据处理结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
请参考图8,其示出了本公开一示例性实施例提供的计算机设备的结构框图一。该计算机设备可以是终端。该计算机设备用于实施上述实施例中提供的数据处理方法。具体来讲:
通常,计算机设备800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一示例性实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一示例性实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一示例性实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,上述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述数据处理方法。
在一示例性实施例中,计算机设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、触摸显示屏805、摄像头组件806、音频电路807、定位组件808和电源809中的至少一种。
本领域技术人员可以理解,图7中示出的结构并不构成对计算机设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
请参考图9,其示出了本公开另一示例性实施例提供的计算机设备的结构框图二。该计算机设备可以是服务器,以用于执行上述数据处理方法。具体来讲:
计算机设备900包括中央处理单元(Central Processing Unit,CPU)901、包括随机存取存储器(Random Access Memory,RAM)902和只读存储器(Read Only Memory,ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。计算机设备900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O(Input/Output)系统)906,和用于存储操作系统913、应用程序914和其他程序模块911的大容量存储设备907。
基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。大容量存储设备907及其相关联的计算机可读介质为计算机设备900提供非易失性存储。也就是说,大容量存储设备907可以包括诸如硬盘或者CD-ROM(CompactDisc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。
根据本公开的各种实施例,计算机设备900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备900可以通过连接在系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述数据处理方法。
在示例性实施例中,还提供了一种计算机可读存储介质,上述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、上述至少一段程序、上述代码集或上述指令集在被处理器执行时以实现上述数据处理方法。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种包括程序代码的计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述数据处理方法。可选地,计算机可读存储介质可以是只读内存(read-only memory,ROM)、随机存取存储器(randomaccess memory),RAM)、只读光盘(compact-disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
获取第一步长参数和第一基础数据,所述第一基础数据为文本内容或图像内容的表征数据;
获取所述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,所述第一量化校准参数为基于校准数据和所述第一步长参数进行针对所述第一网络层的量化校准所得到的参数;
根据所述第一基础数据和所述第一量化校准参数,计算对应于所述第一步长参数和所述第一网络层的第一量化映射系数;
基于所述第一量化映射系数对所述第一基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第一输出数据。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取第一步长参数和第一基础数据之前,所述方法包括:
确定所述第一步长参数对应的量化校准损失,所述量化校准损失以所述校准数据和校准参数为变量,所述量化校准损失指示所述校准数据的量化精度损失;
获取校准数据;
根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数。
3.根据权利要求2所述的数据处理方法,其特征在于,所述量化校准损失还包括误差控制参数,所述根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数,包括:
在所述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失;
在所述误差控制参数为第二预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,所述第一预设值与所述第二预设值不同;
将最小目标量化性能损失对应的目标校准参数作为所述第一量化校准参数;
其中,所述目标校准参数为对应的量化校准损失取得最小值时的校准参数,
所述目标量化性能损失指示在所述第一步长参数约束下,使用对应的目标校准参数对所述校准数据进行量化后,将量化结果输入所述第一网络层,并在所述数据处理模型的输出数据中产生的精度损失。
4.根据权利要求2或3所述的数据处理方法,其特征在于,所述根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数之后,所述方法还包括:
将基于所述第一量化校准参数对所述校准数据进行量化后所得到的结果输入所述第一网络层,将所述第一网络层的输出结果作为第二网络层对应的校准数据,所述第二网络层为所述数据处理模型中用于对所述第一网络层输出的数据进行处理的网络层;
根据所述第二网络层对应的校准数据与对应的量化校准损失的关系,确定所述第一步长参数在所述第二网络层对应的量化校准参数。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据所述校准数据与所述量化校准损失的关系,确定所述第一量化校准参数之后,所述方法还包括:
在确定出所述第一步长参数在所述数据处理模型各个网络层分别对应的量化校准参数的情况下,根据所述第一步长参数得到第二步长参数;
根据所述第一步长参数约束下所述数据处理模型的输出数据,得到所述第二步长参数约束下所述第一网络层对应的校准数据;
根据所述第二步长参数约束下所述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,所述第二量化校准参数为所述第二步长参数在所述第一网络层对应的量化校准参数。
6.根据权利要求5所述的数据处理方法,其特征在于,所述根据所述第二步长参数约束下所述第一网络层对应的校准数据,与对应的量化校准损失的关系,确定第二量化校准参数,包括:
获取参考误差控制参数,所述参考误差控制参数为所述第一量化校准参数对应的误差控制参数;
在所述误差控制参数为所述参考误差控制参数的情况下,将对应的量化校准损失取得最小值时的校准参数,确定为所述第二量化校准参数。
7.根据权利要求3所述的数据处理方法,其特征在于,所述在所述误差控制参数为第一预设值的情况下,确定对应的目标校准参数和对应的目标量化性能损失,包括:
基于所述对应的目标校准参数对所述校准数据进行量化,将量化结果输入所述第一网络层;
获取在所述第一步长参数约束下,所述数据处理模型输出的第一数据处理结果;
将所述校准数据直接输入所述第一网络层,得到在所述第一步长参数约束下所述数据处理模型输出的第二数据处理结果;
根据所述第一数据处理结果和所述第二数据处理结果的差异,确定所述目标量化性能损失。
8.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述第一量化映射系数对所述第一基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第一输出数据之后,所述方法还包括:
将所述第一输出数据作为第二网络层的第二基础数据,所述第二网络层为所述数据处理模型中用于对所述第一输出数据进行处理的网络层;
获取所述第一步长参数在所述第二网络层对应的量化校准参数;
根据所述第二基础数据,和所述第一步长参数在所述第二网络层对应的量化校准参数,计算对应于所述第一步长参数和所述第二网络层的量化映射系数;
基于所述对应于所述第一步长参数和所述第二网络层的量化映射系数,对所述第二基础数据进行量化,并将量化结果输入所述第二网络层进行数据处理,得到所述第二网络层的输出数据。
9.根据权利要求1或8所述的数据处理方法,其特征在于,所述方法还包括:
在获取到所述第一步长参数约束下由所述数据处理模型输出的目标输出数据、并且所述第一步长参数不满足步长参数约束条件的情况下,根据所述第一步长参数得到第二步长参数;
获取第二量化校准参数,所述第二量化校准参数为所述第二步长参数在所述第一网络层对应的量化校准参数;
根据所述目标输出数据和所述第二量化校准参数,计算对应于所述第二步长参数和所述第一网络层的第二量化映射系数;
基于所述第二量化映射系数和所述目标基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第二输出数据。
10.根据权利要求1或8所述的数据处理方法,其特征在于,所述方法还包括:
在获取到所述第一步长参数约束下由所述数据处理模型输出的目标输出数据、并且所述第一步长参数满足步长参数约束条件的情况下,将所述目标数据作为所述数据处理模型对所述第一基础数据的最终数据处理结果。
11.一种数据处理装置,其特征在于,包括:
数据获取模块,被配置为执行获取第一步长参数和第一基础数据,所述第一基础数据为文本内容或图像内容的表征数据;
量化映射系数确定模块,被配置为执行获取所述第一步长参数在数据处理模型的第一网络层对应的第一量化校准参数,所述第一量化校准参数为基于校准数据和所述第一步长参数进行针对所述第一网络层的量化校准所得到的参数;以及,根据所述第一基础数据和所述第一量化校准参数,计算对应于所述第一步长参数和所述第一网络层的第一量化映射系数;
数据处理模块,被配置为执行基于所述第一量化映射系数对所述第一基础数据进行量化,并将量化结果输入所述第一网络层进行数据处理,得到所述第一网络层的第一输出数据。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至10中任一项所述的数据处理方法。
13.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至10中任一项所述的数据处理方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从所述可读存储介质读取并执行计所述计算机程序,使得所述计算机设备执行权利要求1至10中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410390115.XA CN118428482A (zh) | 2024-04-01 | 2024-04-01 | 数据处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410390115.XA CN118428482A (zh) | 2024-04-01 | 2024-04-01 | 数据处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118428482A true CN118428482A (zh) | 2024-08-02 |
Family
ID=92325642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410390115.XA Pending CN118428482A (zh) | 2024-04-01 | 2024-04-01 | 数据处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118428482A (zh) |
-
2024
- 2024-04-01 CN CN202410390115.XA patent/CN118428482A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112561068B (zh) | 模拟方法、计算设备、经典设备、存储设备及产品 | |
CN113516248B (zh) | 一种量子门测试方法、装置及电子设备 | |
JP2020027611A (ja) | ニューラルネットワークのためのデータ処理方法および装置 | |
CN112785493A (zh) | 模型的训练方法、风格迁移方法、装置、设备及存储介质 | |
CN114612996A (zh) | 神经网络模型的运行方法、介质、程序产品以及电子设备 | |
CN114494814A (zh) | 基于注意力的模型训练方法、装置及电子设备 | |
CN114612600A (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
CN114861907A (zh) | 数据计算方法、装置、存储介质和设备 | |
CN114462350A (zh) | 集成电路芯片验证方法、装置、电子设备及存储介质 | |
CN113409307A (zh) | 基于异质噪声特性的图像去噪方法、设备及介质 | |
CN117351299A (zh) | 图像生成及模型训练方法、装置、设备和存储介质 | |
CN117726700A (zh) | 图像生成方法、装置、电子设备及存储介质 | |
JP2021033994A (ja) | テキスト処理方法、装置、デバイス及びコンピュータ読み取り可能な記憶媒体 | |
CN118428482A (zh) | 数据处理方法、装置及存储介质 | |
US20190197084A1 (en) | Data compression apparatus and data compression method and storage medium | |
CN113408702B (zh) | 音乐神经网络模型预训练方法及电子设备和存储介质 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
CN114092708A (zh) | 特征图像的处理方法、装置和存储介质 | |
JP2022024080A (ja) | ニューラルネットワークの積和演算方法及び装置 | |
CN113408724A (zh) | 模型压缩方法及装置 | |
CN111784377B (zh) | 用于生成信息的方法和装置 | |
CN113327194A (zh) | 图像风格迁移方法、装置、设备和存储介质 | |
CN114270341B (zh) | 一种数据属性的分组方法、装置、设备及存储介质 | |
CN113298248B (zh) | 一种针对神经网络模型的处理方法、装置以及电子设备 | |
CN116070689A (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 |