CN116306879A - 数据处理方法、装置、电子设备以及存储介质 - Google Patents
数据处理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN116306879A CN116306879A CN202310085034.4A CN202310085034A CN116306879A CN 116306879 A CN116306879 A CN 116306879A CN 202310085034 A CN202310085034 A CN 202310085034A CN 116306879 A CN116306879 A CN 116306879A
- Authority
- CN
- China
- Prior art keywords
- model
- compressed
- block structure
- parameters
- floating point
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、电子设备以及存储介质。所述方法包括:获取待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。本方法实现了在保证模型推理精度在合理范围内的情况下减小模型规模,进而减少内存占用以及功耗。
Description
技术领域
本申请涉及人工智能技术领域,更具体地,涉及一种数据处理方法、装置、电子设备以及存储介质。
背景技术
随着深度学习算法在计算机视觉、语音处理、自动驾驶等领域的广泛应用,深度学习模型(网络)被设计得越来越庞大以满足复杂应用、高精度、多任务等等应用场景。在边缘设备或者移动式平台这种对功率、延迟、内存等资源有较高限制的设备上部署深度学习算法时,往往需要用模型压缩算法对其进行一系列的优化。数据处理方法能够有效减少硬件内存的占用并提高运算速度,然而,现有的模型压缩算法会在一定程度上损失模型的精度。
发明内容
鉴于上述问题,本申请提出了一种数据处理方法、装置、电子设备以及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:获取待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:模型获取模块,用于获取待压缩模型,所述待压缩模型包括多个网络层;量化比特位获取模块,用于获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;模型划分模块,用于将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;模型压缩模块,用于基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
第三方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面所述的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述第一方面所述的方法。
本申请提供的一种数据处理方法、装置、电子设备以及存储介质,通过获取待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。从而通过上述方式实现了相比于传统的量化感知训练方法,加入部分量化噪声来进行优化迭代,而其余部分张量(tensor)的梯度能够像浮点模型一样继续无偏的传播,使得能够在保证模型推理精度在合理范围内的情况下减小模型规模,进而减少内存占用以及功耗。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提出的一种数据处理方法的方法流程图。
图2示出了本申请另一实施例提出的一种数据处理方法的方法流程图。
图3示出了本申请又一实施例提出的一种数据处理方法的方法流程图。
图4示出了本申请实施例提出的一种数据处理装置的结构框图。
图5示出了本申请的用于执行根据本申请实施例的一种数据处理方法的电子设备的结构框图。
图6是本申请实施例的用于保存或者携带实现根据本申请实施例的一种数据处理方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
模型压缩方法能够有效减少硬件内存的占用并提高运算速度。目前较为通用的模型压缩算法包括量化、剪枝、蒸馏等等。其中,剪枝和蒸馏是通过减少模型参数达到模型压缩的目的,压缩后的模型结构通常与压缩前有很大差别。量化是通过减少模型参数表达的比特数,比如将32位的浮点数量化到4,8或16bit(比特位)定点数,这使得模型结构已经得到优化的时候仍然可以进一步压缩模型。
量化策略可以分为训练后量化(PTQ)以及训练感知量化(QAT)。其中,PTQ是在深度学习网络训练后直接对参数进行量化,即将32位浮点数变成定点数,而QAT则是在PTQ的基础之上,继续训练若干个迭代,在训练过程中前向推理用量化后的参数,再根据损失函数反向更新浮点参数,QAT相较于PTQ有更高的精度。然而,对于PTQ,深度学习网络在训练的时候并没有加入量化扰动,直接采取训练后量化将会带来很大的精度方面的损失,尤其是在较深层的神经网络中以及运用低比特量化的情况下;而对于QAT,在训练期间的前向推理阶段进行量化,这种转换不是可微的,反向传播梯度通常使用直通式估算器(STE)进行近似,在精度方面也会有一定的损失。即现有的量化算法会在一定程度上损失模型的精度。
为了便于理解本申请实施例所描述的方案,下面对本申请实施例中所涉及的术语进行简要说明:
AI(Artificial Intelligence):表征人工智能。
PTQ(Post Training Quantization):表征训练后量化。
QAT(Quantization Aware Training):表征量化感知训练。
下面将结合附图具体描述本申请的各实施例。
请参阅图1,本申请一实施例提供一种数据处理方法,所述方法包括:
步骤S110:获取待压缩模型,所述待压缩模型包括多个网络层。
本申请实施方式中,待压缩模型为训练好的浮点精度模型,待压缩模型可以包括多个网络层,例如,待压缩模型A可以包括卷积层、归一化层、激活层以及下采样层。在至少一个实施例中,待压缩模型包括的多个网络层可以各不相同,或者待压缩模型包括的多个网络层中有部分网络层相同,或者待压缩模型可以只包括一个网络层,具体可以不作限定。本申请实施例以待压缩模型包括多个各不相同的网络层为例进行说明。
待压缩模型的具体类型可以不做限定,例如,待压缩模型可以为用于视觉处理、语音处理、或者是自然语言处理等类型的AI神经网络模型。
作为一种方式,在需要将模型部署到手机等类型的内存资源有限的边缘设备上时,可以将该需要部署的模型对应的训练好的浮点精度模型获取作为待压缩模型。
步骤S120:获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定。
其中,量化比特位可以理解为量化后的参数表达的比特数,例如,量化比特位为4比特位可以理解为将模型的参数(由32位浮点数)量化到4比特位定点数。作为一种方式,可以通过减少待压缩模型的网络层的参数表达的比特数的方式减小模型的规模,即通过减少参数表达的比特数,可以减小数值的表征空间(位度空间),进而实现减小模型规模。
本实施方式中,待压缩模型的每个网络层对应的量化比特位可以不同,例如,假设待压缩模型包括网络层A、网络层B以及网络层C,那么网络层A对应的量化比特位可以为4比特位,网络层B对应的量化比特位可以为8比特位,而网络层C对应的量化比特位可以为16比特位。或者待压缩模型的每个网络层对应的量化比特位可以部分相同,例如,在上述示例中,网络层A对应的量化比特位可以为4比特位,网络层B对应的量化比特位也可以为4比特位,而网络层C对应的量化比特位可以为8比特位。其中,上述量化比特位的数值仅作为示例进行说明,不构成对本方案的限定。
量化比特位的数值越高,量化后模型的精度越高;量化比特位的数值越低,量化后模型的规模越小。而可以理解的是,由于不同的网络层的结构不同,网络层的参数也会不同,为了尽可能的保留网络层原有的结构,每个网络层对应的量化比特位可以不同,或者仅是部分网络层对应的量化比特位相同,而不是全部网络层对应的量化比特位相同,即本申请中使用的是由不同的量化比特位组成的混合精度对待压缩模型的网络层进行量化。
本实施方式中,量化比特位为基于网络层在前向推理时的模拟功率确定。作为一种方式,可以计算出模型的损失函数(loss)对权重参数的二阶导数信息,然后由硬件模拟器以模型中的每一网络层在前向推理时的模拟功率为敏感度信息(延迟、功率、模型大小均可以作为敏感度信息,本实施方式以模拟功率为敏感度信息为例进行说明),构建线性规划问题,求解在有网络且总的功率(即每个网络层对应的模拟功率的总和)约束的条件下,最小化扰动信息的总和,来求解出各个网络层的量化比特位,其中,扰动信息可以理解为在参数从浮点数量化到定点数过程中的信息变化度。
在求解各个网络层的量化比特位的过程中,可以根据模型的损失函数(loss)对权重参数的二阶导数信息的大小,求解出与各个网络层适配的量化比特位。具体的,求出的二阶导数信息对于模拟功率这个敏感度信息而言,如果一个网络层的二阶导数信息越高越陡峭,说明模型的这一网络层对功率更为敏感,此种情况下,为了确保模型的推理精度(假设模型的尺寸越大推理精度越高),可以分配大一点的量化比特数(位),例如8比特位或者16比特位;而如果这一网络层它的二阶导数信息比较小,那么说明量化时用高比特或者低比特对功率的扰动均比较小,此种情况下,为了尽可能的减小模型尺寸,可以用4比特位,通过用数学分析的方法可以动态的推理出哪一层应该用何种对应的比特位进行量化,以便于可以实现在减小模型尺寸的同时,确保模型的推理精度(即模拟功率能够满足预设的最高位,可以理解为模拟功率不能超过某一个预设阈值,具体数值可以不作限定)。
步骤S130:将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层。
块结构即网络块。作为一种实施方式,可以根据待压缩模型的模型结构特点将待压缩模型划分为以块为单位的结构,例如,假设待压缩模型M包括卷积层、归一化层、激活层、下采样层,卷积层、归一化层、激活层、下采样层通常为一个完整的流程,那么可以将卷积层、归一化层、激活层、下采样层归为一个块结构。
可选地,对块结构的划分可以取决于网络结构、用户算力以及QAT中训练数据的规模大小。例如,有残差连接的块通常不会被分开;如果算力够强大,划分的块可以包含更多的网络层。
块结构可以包括至少一个所述网络层。在待压缩模型包括多个网络层的情况下,如果块结构包括至少一个网络层,那么待压缩模型可以包括至少一个块结构;如果块结构包括一个网络层,那么待压缩模型可以包括多个块结构。
步骤S140:基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
对于待压缩模型的每一个块结构,可以基于块结构中的网络层对应的量化比特位对块结构中的部分参数进行量化感知训练,如果块结构包括多个网络层,那么可以基于块结构中的多个网络层各自对应的量化比特位对块结构中的部分参数进行混合精度量化感知训练,量化噪声为网络层中原始的32位浮点精度的数值量化到4、8或者16位定点整型数后表征空间(位度空间)大大减少,推理精度会有一定的损失。并根据损失函数对块结构中的剩余部分参数进行调整更新,直至待压缩模型的推理精度达到预设精度或者待压缩模型的训练轮次达到预设轮次,以确保待压缩模型的推理精度,其中,该剩余部分参数可以理解为保持浮点精度不变的参数,损失函数即待压缩模型的损失函数,具体损失函数类型可以根据待压缩模型的类型确定,对于保持浮点精度不变的参数,可以对损失函数用梯度下降进行反向传播来更新模型参数。通过只对块结构中的部分参数进行量化感知训练,可以最大限度的保留模型的结构,从而可以实现在尽可能的保留模型推理精度的情况下减小模型规模。预设精度的具体数值以及预设轮次的具体数值均可以不作限定。
在基于网络层对应的量化比特位对块结构中的部分参数做量化感知训练的过程中,作为一种实施方式,可以通过引入数值表征差异的量化误差的方法,将块结构包括的网络层的参数以及激活输出等由浮点数量化到定点整型数,再将定点整型数反量化回浮点数,并用反量化后的浮点数替换原来的参数与激活输出,量化感知训练的公式如下:
其中,W′表征的是量化以及反量化后的上述两类参数,s表征的是量化尺度,z表征的是量化零点。需要说明的是,如果选择用0矩阵来替换原来的参数与激活输出,那么该量化感知训练过程与剪枝过程同理。
本申请提供了一种数据处理方法,通过获取待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。从而通过上述方式实现了相比于传统的量化感知训练方法,加入部分量化噪声来进行优化迭代,而其余部分张量(tensor)的梯度能够像浮点模型一样继续无偏的传播,使得能够在保证模型推理精度在合理范围内的情况下减小模型规模,进而减少内存占用以及功耗。
请参阅图2,本申请另一实施例提供一种数据处理方法,所述方法包括:
步骤S210:获取待压缩模型,所述待压缩模型包括多个网络层。
其中,步骤S210的具体实现可以参考前述实施例中步骤S110的相关描述,在此不再赘述。
步骤S220:获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定。
其中,步骤S220的具体实现可以参考前述实施例中步骤S120的相关描述,在此不再赘述。
步骤S230:将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层。
其中,步骤S230的具体实现可以参考前述实施例中步骤S130的相关描述,在此不再赘述。
步骤S240:将所述块结构中的部分参数量化为所述对应的量化比特位的整数。
在基于网络层对应的量化比特位对块结构中的部分参数做量化感知训练的过程中,可以先从待压缩模型划分后的块结构中选择一些特定的块的子集加入量化扰动,选择特定的块的方式可以有多种,例如,可以随机的选择一些特定的块;可以逐块的选择块,即顺序的从网络的第一块开始选择每一个块或者每几个块;或者可以根据块的划分,标定序号,每一次随机采样一个或者几个块作为候选,这样采集的随机性更大,在迭代次数足够充足的情况下,可以确保每一个块都有被采样到;或者也可以渐进式增加每次随机采样的块的数量,例如第一次采样1个块,第二次采样2个块,第三次采样4个块等。
作为一种方式,可以先将块结构中的部分参数量化为块结构包括的网络层对应的量化比特位,具体的,作为一种实施方式,可以将块结构中的部分参数渐进式量化为块结构包括的网络层对应的量化比特位的整数,即对于块结构中的部分参数,渐进式加入量化噪声的占比,例如,可以对采样的块的张量以10%,30%,50%等比例逐渐提高量化操作的占比,此处的比例数值仅作为示例,不构成对本方案的限定。通过渐进式增加量化噪声的占比,不会直接对初步训练好的浮点精度模型产生较大的扰动,并且可以加速模型的训练。
在至少一个实施例中,也可以将加入的量化噪声的占比增加到100%。
步骤S250:将所述整数反量化为浮点数,并用所述浮点数替换所述块结构中的部分参数;并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
如前述实施例所描述,可以在将块结构中的部分参数量化为块结构包括的网络层对应的量化比特位的整数后,将该整数反量化为浮点数,并用浮点数替换块结构中的部分参数。而为了进一步精简模型,在将上述整数反量化为浮点数后,可以对该浮点数进行剪枝处理,并用剪枝处理后的浮点数替换块结构中的部分参数。
在对该浮点数进行剪枝处理时,作为一种实现方式,可以通过将浮点精度数值最小的浮点数进行取零操作的方式对该浮点数进行剪枝处理,例如,假设浮点精度数值最小的浮点数为0.0002,可以将0.0002进行取零,使得可以一定程度上减少模型的参数量。而在训练过程中加入量化噪声的方法也比较易于和剪枝算法相结合。
而对于块结构中的剩余部分参数,在前述部分参数量化后给模型带来的扰动下,可以根据损失函数来调整更新,相对于现有的量化感知训练方法,本申请只做部分QAT并且会更新保持浮点精度的张量,使得保持浮点精度的张量不会被量化误差影响而能够得到准确的梯度计算以及自身参数更新,使得调整过后的模型具有更优的鲁棒性,进而提升模型的推理精度。
本申请提供了一种数据处理方法,通过获取待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;将所述块结构中的部分参数量化为所述对应的量化比特位的整数;将所述整数反量化为浮点数,并用所述浮点数替换所述块结构中的部分参数;并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。从而通过上述方式实现了相比于传统的量化感知训练方法,加入部分量化噪声来进行优化迭代,而其余部分张量(tensor)的梯度能够像浮点模型一样继续无偏的传播,使得能够在保证模型推理精度在合理范围内的情况下减小模型规模,进而减少内存占用以及功耗。
通过将减少参数量表征比特位的量化和直接减少模型参数量的剪枝相结合,可以实现在保证推理精度在合理范围内的情况下积极探索极致模型压缩,减小前向推理所花费的时间。
请参阅图3,本申请另一实施例提供一种数据处理方法,所述方法包括:
步骤S310:获取目标任务模型。
其中,目标任务可以是视觉、语音、和/或是自然语言处理等领域的任务,例如,目标任务可以是视觉任务、物体检测等。目标任务模型为与目标任务对应的模型,例如,目标任务为物体检测,那么目标任务模型为物体检测模型,目标任务的具体类型可以不作限定,目标任务模型的具体类型也可以不作限定。
作为一种方式,可以将与目标任务对应的已有模型加载作为目标任务模型。
步骤S320:对所述目标任务模型进行浮点精度训练,得到浮点精度模型。
为了更好的进行模型压缩,可以先对目标任务模型进行浮点精度训练,得到浮点精度模型,浮点精度训练的具体过程在此不再赘述。
步骤S330:将所述浮点精度模型作为待压缩模型,所述待压缩模型包括多个网络层。
为了确保模型的推理精度,浮点精度模型的规模通常较大,而为了能够将浮点精度模型部署到手机等内存资源受限的边缘设备上,可以先对浮点精度模型进行模型压缩,即可以将浮点精度模型作为待压缩模型,该待压缩模型可以包括多个网络层。
步骤S340:获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定。
其中,步骤S340的具体实现可以参考前述实施例中步骤S120以及步骤S220的相关描述,在此不再赘述。
步骤S350:将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层。
其中,步骤S350的具体实现可以参考前述实施例中步骤S130的相关描述,在此不再赘述。
步骤S360:基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
其中,步骤S360的具体实现可以参考前述实施例中步骤S140、步骤S240以及步骤S250的相关描述,在此不再赘述。
本申请提供了一种数据处理方法,通过获取目标任务模型;对所述目标任务模型进行浮点精度训练,得到浮点精度模型;将所述浮点精度模型作为待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。从而通过上述方式实现了相比于传统的量化感知训练方法,加入部分量化噪声来进行优化迭代,而其余部分张量(tensor)的梯度能够像浮点模型一样继续无偏的传播,使得能够在保证模型推理精度在合理范围内的情况下减小模型规模,进而减少内存占用以及功耗。
请参阅图4,本申请实施例提供了一种数据处理装置400,所述装置400包括:
模型获取模块410,用于获取待压缩模型,所述待压缩模型包括多个网络层。
作为一种方式,模型获取模块410可以用于获取目标任务模型;对所述目标任务模型进行浮点精度训练,得到浮点精度模型;将所述浮点精度模型作为待压缩模型。
量化比特位获取模块420,用于获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定。
模型划分模块430,用于将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层。
作为一种方式,模型划分模块430可以用于根据所述待压缩模型的模型结构特点将所述待压缩模型划分为以块为单位的结构,所述块结构包括至少一个所述网络层。
模型压缩模块440,用于基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
作为一种方式,模型压缩模块440可以用于将所述块结构中的部分参数量化为所述对应的量化比特位的整数;将所述整数反量化为浮点数,并用所述浮点数替换所述块结构中的部分参数。其中,所述将所述块结构中的部分参数量化为所述对应的量化比特位的整数,可以包括:将所述块结构中的部分参数渐进式量化为所述对应的量化比特位的整数。所述将所述整数反量化为浮点数,并用所述浮点数替换所述块结构中的部分参数,可以包括:将所述整数反量化为浮点数;对所述浮点数进行剪枝处理,并用所述剪枝处理后的浮点数替换所述块结构中的部分参数。
作为一种实施方式,可以通过将浮点精度数值最小的浮点数进行取零操作的方式对所述浮点数进行剪枝处理。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图5,基于上述的数据处理方法、装置,本申请实施例还提供了一种可以执行前述数据处理方法、装置的电子设备100。本申请实施方式中,电子设备100可以为客户端或者服务器。电子设备100包括存储器102以及相互耦合的一个或多个(图中仅示出一个)处理器104,存储器102以及处理器104之间通信线路连接。存储器102中存储有可以执行前述实施例中内容的程序,而处理器104可以执行存储器102中存储的程序。
其中,处理器104可以包括一个或者多个处理核。处理器104利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器104可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器104可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器104中,单独通过一块通信芯片进行实现。
存储器102可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现前述各个实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图6,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质500中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质500可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质500包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质500具有执行上述方法中的任何方法步骤的程序代码510的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码510可以例如以适当形式进行压缩。
综上所述,本申请提供的一种数据处理方法、装置、电子设备以及存储介质,通过获取待压缩模型,所述待压缩模型包括多个网络层;获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。从而通过上述方式实现了相比于传统的量化感知训练方法,加入部分量化噪声来进行优化迭代,而其余部分张量(tensor)的梯度能够像浮点模型一样继续无偏的传播,使得能够在保证模型推理精度在合理范围内的情况下减小模型规模,进而减少内存占用以及功耗。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待压缩模型,所述待压缩模型包括多个网络层;
获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;
将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;
基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
2.根据权利要求1所述的方法,其特征在于,所述将所述待压缩模型划分为块结构,包括:
根据所述待压缩模型的模型结构特点将所述待压缩模型划分为以块为单位的结构。
3.根据权利要求1所述的方法,其特征在于,所述基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,包括:
将所述块结构中的部分参数量化为所述对应的量化比特位的整数;
将所述整数反量化为浮点数,并用所述浮点数替换所述块结构中的部分参数。
4.根据权利要求3所述的方法,其特征在于,所述将所述块结构中的部分参数量化为所述对应的量化比特位的整数,包括:
将所述块结构中的部分参数渐进式量化为所述对应的量化比特位的整数。
5.根据权利要求3所述的方法,其特征在于,所述将所述整数反量化为浮点数,并用所述浮点数替换所述块结构中的部分参数,包括:
将所述整数反量化为浮点数;
对所述浮点数进行剪枝处理,并用所述剪枝处理后的浮点数替换所述块结构中的部分参数。
6.根据权利要求5所述的方法,其特征在于,所述对所述浮点数进行剪枝处理,包括:
将浮点精度数值最小的浮点数进行取零操作。
7.根据权利要求1所述的方法,其特征在于,所述获取待压缩模型,包括:
获取目标任务模型;
对所述目标任务模型进行浮点精度训练,得到浮点精度模型;
将所述浮点精度模型作为待压缩模型。
8.一种数据处理装置,其特征在于,所述装置包括:
模型获取模块,用于获取待压缩模型,所述待压缩模型包括多个网络层;
量化比特位获取模块,用于获取所述待压缩模型的每个网络层对应的量化比特位,所述量化比特位为基于网络层在前向推理时的模拟功率确定;
模型划分模块,用于将所述待压缩模型划分为块结构,所述块结构包括至少一个所述网络层;
模型压缩模块,用于基于所述对应的量化比特位对所述块结构中的部分参数做量化感知训练,并根据损失函数对所述块结构中的剩余部分参数进行调整更新,以确保所述待压缩模型的推理精度。
9.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310085034.4A CN116306879A (zh) | 2023-01-16 | 2023-01-16 | 数据处理方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310085034.4A CN116306879A (zh) | 2023-01-16 | 2023-01-16 | 数据处理方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306879A true CN116306879A (zh) | 2023-06-23 |
Family
ID=86802229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310085034.4A Pending CN116306879A (zh) | 2023-01-16 | 2023-01-16 | 数据处理方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306879A (zh) |
-
2023
- 2023-01-16 CN CN202310085034.4A patent/CN116306879A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413255B (zh) | 人工神经网络调整方法和装置 | |
CN110880038B (zh) | 基于fpga的加速卷积计算的系统、卷积神经网络 | |
CN110008952B (zh) | 一种目标识别方法及设备 | |
US20230196202A1 (en) | System and method for automatic building of learning machines using learning machines | |
CN113705775A (zh) | 一种神经网络的剪枝方法、装置、设备及存储介质 | |
CN111382863A (zh) | 一种神经网络压缩方法及装置 | |
CN111105017A (zh) | 神经网络量化方法、装置及电子设备 | |
CN113240079A (zh) | 一种模型训练方法及装置 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN116188878A (zh) | 基于神经网络结构微调的图像分类方法、装置和存储介质 | |
CN116126354A (zh) | 模型部署方法、装置、电子设备以及存储介质 | |
CN112766492A (zh) | 模型处理方法、装置、电子设备及存储介质 | |
CN113011532A (zh) | 分类模型训练方法、装置、计算设备及存储介质 | |
CN116992946A (zh) | 模型压缩方法、装置、存储介质和程序产品 | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
CN113554097B (zh) | 模型量化方法、装置、电子设备和存储介质 | |
US20230058500A1 (en) | Method and machine learning system to perform quantization of neural network | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
CN114565080A (zh) | 神经网络压缩方法及装置、计算机可读介质、电子设备 | |
CN111614358A (zh) | 基于分通道量化的特征提取方法、系统、设备及存储介质 | |
US20230385600A1 (en) | Optimizing method and computing apparatus for deep learning network and computer-readable storage medium | |
CN117762642B (zh) | 一种卷积神经网络模型的加载方法、装置及存储介质 | |
CN115409161A (zh) | 量化神经网络模型的片内执行方法、装置、设备及介质 | |
CN116108909A (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 |