CN114638344A - 一种模型量化方法和相关装置 - Google Patents
一种模型量化方法和相关装置 Download PDFInfo
- Publication number
- CN114638344A CN114638344A CN202210326511.7A CN202210326511A CN114638344A CN 114638344 A CN114638344 A CN 114638344A CN 202210326511 A CN202210326511 A CN 202210326511A CN 114638344 A CN114638344 A CN 114638344A
- Authority
- CN
- China
- Prior art keywords
- model
- target
- format
- original
- network model
- 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/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开一种模型量化方法和相关装置,可应用于云技术、人工智能、智慧交通、辅助驾驶、车载场景等各种场景。在进行模型训练时,获取训练数据,其中包括针对不同样本对象采集到的特征数据和对应的标签,根据特征数据和对应的标签对神经网络模型进行训练得到包括嵌入层和网络层的原始网络模型,原始网络模型的模型参数的存储格式为原始格式。根据确定的目标缩放因子对嵌入层的模型参数进行量化,以将嵌入层的模型参数的存储格式从原始格式转换为目标格式,再将由网络层和量化后的嵌入层构成的神经网络模型确定为目标网络模型进行上线。本方案仅对嵌入层进行后训练量化,在不降低模型指标的前提下压缩模型体积,降低对模型的线上预测效果的影响。
Description
技术领域
本申请涉及人工智能领域,特别是涉及一种模型量化方法和相关装置。
背景技术
随着计算机技术的发展,神经网络模型正得到越来越广泛的关注和应用,例如,应用于信息识别、内容推荐以及对象交互行为预测等等。模型的大小从数GB到几TB不等,越大的模型也代表着更高的模型效果上限。超大规模模型上线需要一定的服务资源,随着模型不断扩大,服务内存逐渐成为线上机器的资源瓶颈。而模型压缩是减少模型体积,进而在运行时使用更少的服务内存的重要手段。
模型压缩的常见技术是模型量化,而目前使用的模型量化技术例如八字节整型(INT8)量化方式,INT8量化后的模型与原始单精度浮点(FP32)模型相比,虽然可将模型的体积减少4倍,并把内存带宽要求减少4倍,但是会导致模型指标例如曲线下的面积(AreaUnder Curve,AUC)指标大大下降,进而大大影响模型的线上预测效果。
发明内容
为了解决上述技术问题,本申请提供了一种模型量化方法和相关装置,实现在不降低模型指标例如AUC指标的前提下,大大压缩模型体积,降低对模型的线上预测效果的影响。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种模型量化方法,所述方法包括:
获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
一方面,本申请实施例提供一种模型量化装置,所述装置包括获取单元、训练单元、确定单元和量化单元:
所述获取单元,用于获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
所述训练单元,用于根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
所述确定单元,用于确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
所述量化单元,用于根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
所述确定单元,还用于将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
一方面,本申请实施例提供一种用于模型量化的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行前述方面所述的模型量化方法。
一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述方面所述的模型量化方法。
一方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述方面所述的模型量化方法。
由上述技术方案可以看出,在进行模型训练时,首先获取训练数据,训练数据中包括针对不同样本对象采集到的特征数据和对应的标签,然后根据特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,此时原始网络模型的模型参数的存储格式为原始格式,原始网络模型包括嵌入层和网络层。接下来,为了压缩模型体积,可以对原始网络模型进行量化,而由于原始网络模型中,嵌入层可能占到了99%以上的模型参数,且量化可能带来的损失可以通过后续的网络层进行弥补,基于此,本申请可以仅针对嵌入层进行量化。具体的,确定原始格式转化为目标格式的目标缩放因子,从而根据目标缩放因子对嵌入层的模型参数进行量化,以将嵌入层的模型参数的存储格式从原始格式转换为目标格式,最后将网络层和量化后的嵌入层构成的神经网络模型确定为目标网络模型,上线目标网络模型。由于嵌入层在原始网络模型中占到了99%以上的模型参数,因此对嵌入层进行量化可以大大减少模型体积,从而降低超大规模模型的部署成本,降低服务资源的占用。同时由于网络层能够对量化可能带来的损失进行弥补,从而实现在不降低模型指标例如AUC指标的前提下,大大压缩模型体积,降低对模型的线上预测效果的影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种模型量化方法的应用场景的架构图;
图2为本申请实施例提供的一种模型量化方法的流程图;
图3为本申请实施例提供的一种模型量化方法的结构流程图;
图4为本申请实施例提供的一种模型量化装置的结构图;
图5为本申请实施例提供的一种终端的结构图;
图6为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
神经网络模型被广泛的应用到各个领域,例如信息识别、内容推荐以及对象交互行为预测等等。模型的大小从数GB到几TB不等,越大的模型也代表着更高的模型效果上限。超大规模模型上线需要一定的服务资源,随着模型不断扩大,服务内存逐渐成为线上机器的资源瓶颈。而模型压缩是减少模型体积,进而在运行时使用更少的服务内存的重要手段。
模型压缩主要有以下几种方法,包括量化、剪枝和蒸馏,主要是通过减少原始模型参数和数量或者比特数来实现对内存和计算需求的降低,其中,量化是性能最稳定的模型压缩方法。目前,面向神经网络模型的量化方法主要包括TFLite(是一种轻量级推理库)方案。
TFLite方案的量化感知训练方式(Quantization-aware training,QAT),是指只在前向传播中加入模拟量化(Model quantification,MQ),即把模型参数进行线性量化,然后在做矩阵运算前再反量化成浮点数。具体方法是在神经网络模型中需要量化的操作节点上加入伪量化节点,让训练过程中的前向精度和最终硬件实现保持一致。
然而,这种方法虽然可将模型的体积减少4倍,并把内存带宽要求减少4倍,但是量化感知训练会给模型带来不可逆的收敛性问题,会导致模型指标例如AUC指标大大下降,进而大大影响模型的线上预测效果。
为了解决上述技术问题,本申请实施例提供一种模型量化方法,该方法对神经网络模型的网络结构进行分析,神经网络模型通常由嵌入层(Embedding层)、隐藏层(Hidden层)和输出层(Output层)组成,由于稀疏特征数目可达到千亿级别,因此嵌入层在原始网络模型中占到了99%以上的模型参数。由于嵌入层在原始网络模型中占到了99%以上的模型参数,因此对嵌入层进行量化可以大大减少模型体积,从而降低超大规模模型的部署成本,降低服务资源的占用。同时由于网络层能够对量化可能带来的损失进行弥补,从而实现在不降低模型指标例如AUC指标的前提下,大大压缩模型体积,大大降低对模型的线上预测效果的影响。
需要说明的是,本申请实施例提供的方法可以应用到各种使用模型的场景中,例如信息识别、内容推荐以及对象交互行为预测等场景,尤其是内容推荐场景中。内容推荐场景中对线上效果极其敏感,直接将量化技术应用到推荐场景中是不可行的,将会导致AUC指标下降,进而会带来明显的线上预测效果负向,为此需要使用本申请实施例提供的模型量化方法,实现在不降低模型指标例如AUC指标的前提下,大大压缩模型体积,降低对模型的线上预测效果的影响。
其中,内容推荐场景例如可以包括广告、电商购物、视频(或音乐)推荐、新闻资讯类信息流推荐等所有推荐类场景的线上服务,可实现模型量化前后的离在线效果无损,进而实现平台方在提供服务时的降本增效。在降低线上服务内存时也可以提高模型的派送实时性,进而提高用户对于该模型的使用满意度。实际上,该技术适用于大多数推荐类和广告类模型,能够给公司带来直接的服务成本节省。
接下来将结合图1对本申请实施例提供的模型量化方法的应用场景进行介绍。图1示出了一种模型量化方法的应用场景的架构示意图,在该应用场景中可以包括服务器101,服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
在进行模型训练时,服务器101首先获取训练数据,训练数据中包括针对不同样本对象采集到的特征数据和对应的标签。其中,在不同的场景下,采集到的特征数据及对应的标签也有所不同。在内容推荐场景下,特征数据可以包括样本对象特征和样本内容特征,标签可以包括样本对象对样本内容的历史反馈信息。其中,历史反馈信息例如可以包括点击率、转化率、评分等,内容推荐场景例如可以包括广告、视频、音频、资讯信息等推荐场景。例如在视频推荐场景下,样本对象可以是样本用户,采集到的特征数据可以是样本对象特征和样本视频特征,标签可以是样本对象对样本视频的历史评分。其中,样本对象特征例如可以包括样本对象的年龄、地域、喜好等等。
需要说明的是,本申请实施例获取样本对象特征以及和样本对象相关的其他数据是经过用户授权许可的。
在对象识别场景中,特征数据可以包括样本对象特征,标签可以包括样本对象的类别。其中,样本对象可以是人、植物、动物以及各种物体等。以样本对象是各种物体中的车辆为例,即在车辆识别场景中,采集到的特征数据可以是车辆特征,车辆特征例如可以包括形状、结构、颜色等等。
然后,服务器101根据特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,此时原始网络模型的模型参数为原始格式,原始网络模型包括嵌入层和网络层。其中,在对神经网络模型进行训练时,可以采用梯度下降算法,例如通过机器运算单元计算梯度,从而将计算得到的梯度返回给参数服务单元(例如图1中网络层+嵌入层所在位置,图1中未示出),以便通过参数服务单元调整网络层和嵌入层的模型参数,然后再将调整后的模型参数广播给机器运算单元,以便进行下一次迭代训练。
接下来,为了压缩模型体积,可以对原始网络模型进行量化,而由于原始网络模型中,嵌入层可能占到了99%以上的模型参数,且量化可能带来的损失可以通过后续的网络层进行弥补,基于此,本申请可以仅针对嵌入层进行量化。具体的,服务器101确定原始格式转化为目标格式的目标缩放因子,从而根据目标缩放因子对嵌入层的模型参数进行量化,以将嵌入层的模型参数的存储格式从原始格式转换为目标格式,最后将由网络层和量化后的嵌入层构成的神经网络模型确定为目标网络模型,上线目标网络模型。
由于嵌入层在原始网络模型中占到了99%以上的模型参数,因此对嵌入层进行量化可以大大减少模型体积,从而降低超大规模模型的部署成本,降低服务资源的占用。同时由于网络层能够对量化可能带来的损失进行弥补,从而实现在不降低模型指标例如AUC指标的前提下,大大压缩模型体积,降低对模型的线上预测效果的影响。。
需要说明的是,图1以服务器执行模型量化方法为例,在一些情况下,还可以由终端执行模型量化方法。终端可以是手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等,但并不局限于此。需要说明的是,本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶、车载场景等。
需要说明的是,本申请实施例提供的方法可以涉及人工智能(ArtificialIntelligence,AI),AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。例如本申请实施例可以选用合适的目标缩放因子,针对嵌入层进行量化,在不降低模型指标例如AUC指标的前提下,大大压缩模型体积。
本申请实施例尤其涉及机器学习,机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。例如本申请实施例通过机器学习训练神经网络模型得到原始网络模型。
需要说明的是,本申请实施例还可以涉及区块链,如本申请实施例所使用的训练数据例如不同样本对象的特征数据和对应的标签可保存于区块链上。
接下来,将以服务器执行模型量化方法为例,结合附图对本申请实施例提供的模型量化方法进行详细介绍。
参见图2,图2示出了一种模型量化方法的流程图,所述方法包括:
S201、获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签。
S202、根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层。
量化技术通常分成不需要训练模型参数校正的后训练量化和直接面向量化的方法量化感知训练。量化感知训练虽然具有较低效果损失,但还是差于原始网络模型,存在收敛性问题;后训练量化,是指在模型训练完成后的导出过程执行量化操作,只调整需要量化的模型参数,其目标通常是让量化后的模型参数分布尽量接近原始格式(例如浮点空间)的数据分布。由于在很多场景尤其是内容推荐场景下,较难配置校准数据集,因此在本申请实施例中,可以选择后训练量化的方式进行模型量化。
其中,原始格式通常是32位浮点格式,而模型压缩主要是减少原始网络模型的模型参数和数量或者比特数来实现对内存和计算需求的降低,因此模型量化的目标格式可以是任意比特数少于原始格式的数据格式,例如INT8(8字节整型)、INT4(4字节整型)、INT3(3字节整型)、INT2(2字节整型),等等。
在采用后训练量化方式时,服务器需要先训练得到原始网络模型。因此,首先服务器获取训练数据,训练数据中包括针对不同样本对象采集到的特征数据和对应的标签。其中,特征数据的数据格式为输入所需格式,特征数据可以分成稀疏特征数据和连续特征数据进行配置,输入到神经网络模型中进行训练,这里使用的是无量训练框架。若原始格式为FP32格式,则导出的原始网络模型可以称为FP32原始网络模型。
参见图3所示,图3示出了模型量化的结构流程图。服务器在对神经网络模型进行训练时,可以采用梯度下降算法,例如通过机器运算单元计算梯度,从而将计算得到的梯度返回给参数服务单元(例如图3中网络层D+嵌入层E所在位置,图3中未示出),以便通过参数服务单元调整网络层和嵌入层的模型参数,然后再将调整后的模型参数广播给机器运算单元,以便进行下一次迭代训练。当迭代训练停止时,可以得到原始网络模型。
需要说明的是,可以根据不同的应用场景选择来自不同数据集的训练数据。例如在电影推荐场景中,训练数据所对应的数据集可以是电影镜头(MovieLens)数据集,MovieLens数据集为样本对象(例如用户)对电影的历史评分记录集合,具有不同规模的数据量,命名有1M、10M和20M,代表分别包含1、10、20万个评分,这里使用了1M数据集。将其划分训练和测试数据集的方式与其他一致,按照8:1:1比例随机将所有采集到的样本文件划分成训练集、验证集和测试集。利用训练集中的训练数据对神经网络模型进行训练。
模型训练时,对于网络结构、损失函数和优化器选择等方面,不做限制。(1)网络结构方面,可以根据应用场景选择不同网络结构,例如广告这一应用场景下,可以选择因子分解机(Factorization Machines,FM)、深度神经网络(Deep neural network,DNN)等点击率预估模型或者其他多目标模型;(2)损失函数方面,可使用交叉熵损失函数或者均方误差损失函数,来完成对不同模型优化目标的训练;(3)优化器方面,可使用自适应(Adam)优化器、随机梯度下降(stochastic gradient descent,SGD)优化器和自适应梯度(AdaptiveGradient,AdaGrad)优化器等等。训练完成后,得到以原始格式(例如FP32格式)存储的原始网络模型,其大小可达到数GB到几TB不等。
需要说明的是,本申请实施例获取的训练数据是经过用户授权许可的。
S203、确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式。
S204、根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式。
由于原始网络模型的大小可达到数GB到几TB,导致该原始网络模型上线需要一定的服务资源。因此,为了降低服务资源的占用,可以通过模型量化的方式实现压缩模型的体积。而通常情况下,模型量化需要按照一定的缩放因子对模型参数进行量化,从而实现将需要转换的模型参数从原始格式转换为目标格式,实现压缩模型的体积,因此,服务器可以先确定原始格式转化为目标格式的目标缩放因子(scale)。
通过对神经网络模型的网络结构进行分析,由于稀疏特征数目可达到千亿级别,因此嵌入层在原始网络模型中占到了99%以上的模型参数。由于嵌入层在原始网络模型中占到了99%以上的模型参数,因此对嵌入层进行量化可以大大减少模型体积,从而降低超大规模模型的部署成本,降低服务资源的占用。另外,通过测试量化对模型预测效果的影响,发现同时量化网络层和嵌入层时,模型指标例如AUC指标有明显的千分位下降,而只量化嵌入层,可以在万分位对齐模型指标。因此,本申请实施例选择只量化嵌入层,即在获取到目标缩放因子后,根据目标缩放因子对嵌入层的模型参数进行量化,将嵌入层的模型参数从原始格式转换为目标格式。
本申请实施例提出的推荐模型量化方案,可集成到训练框架(如无量框架)的导出流程中,直接减低原始网络模型的嵌入层的模型参数体积,在实现模型量化前后离在线效果无损的前提下大幅降低超大规模模型的部署成本,进而实现平台方在提供服务时的降本增效。
需要说明的是,在一种可能的实现方式中,嵌入层的所有模型参数可以对应一个目标缩放因子。在另一种可能的实现方式中,训练数据中的特征数据属于N个样本对象,嵌入层的模型参数为N×K,K为特征维度,N和K为正整数,每个样本对象可以作为特征数据在嵌入层的索引(Key),即一个特征数据中包含N个Key,Key之间由于出现频次等原因存在差异,若只使用相同的尺度例如目标缩放因子来量化可能达到上亿的参数量,在出现异常Key时容易导致不稳定性。因此,本申请实施例采用按行(Row-wise)操作方式,将量化粒度从特征级别细化到了Key级别,每个长度为E的Key独享1份量化尺度,即每个Key对应一个目标缩放因子。
在这种情况下,确定目标缩放因子的方式可以是针对每个样本对象对应的模型参数,根据原始格式和目标格式确定对应的目标缩放因子,得到N个目标缩放因子,对应于同一样本对象的模型参数的目标缩放因子相同。相应的,根据目标缩放因子对嵌入层的模型参数进行量化,使得嵌入层的模型参数的存储格式从原始格式转换为目标格式的方式可以是将嵌入层中对应于同一样本对象的模型参数分别作为目标模型参数,确定目标模型参数对应的目标缩放因子,利用目标模型参数对应的目标缩放因子,对目标模型参数进行量化,使得目标模型参数的存储格式从原始格式转换为目标格式。
需要说明的是,通常情况下,根据目标缩放因子的方式的不同,可以将量化分为线性非对称量化和线性对称量化,以线性非对称量化为例,量化过程所涉及的转换公式可以为:
其中,xint为目标格式的模型参数,x为原始格式的模型参数,xmax为原始格式的模型参数的最大值,xmin为原始格式的模型参数的最小值,round()为取整函数,scale为缩放因子,xfloat为反量化后得到的原始格式的模型参数,bias为偏移量,n为目标格式的字节数。
在一些情况下,考虑了在模型上使用线性非对称量化的必要性,由于嵌入层的模型参数呈现对称性,目标格式(例如INT8量化方式下的8bits)本身具有较高精度,这里也可以通过实验来证明,确定目标缩放因子时,从线性非对称量化的两个值,改成线性对称量化的一个值,每个Key均可节省4个字节的scale空间,能够保持量化精度。
基于此,在一些情况下例如INT8量化方案下,可以以线性对称量化方式来量化嵌入层。在这种情况下,确定目标缩放因子的方式可以是确定模型参数在原始格式下的目标绝对值的最大值,进而根据目标绝对值的最大值确定目标缩放因子。具体的,可以将目标绝对值的最大值确定为目标缩放因子,也可以将目标绝对值的最大值与(2n-1-1)之间的比值确定为目标缩放因子。
以将目标绝对值的最大值与(2n-1-1)之间的比值确定为目标缩放因子为例,量化过程所涉及的转换公式例如可以为:
xfloat=scale* xint (4)
其中,xint为目标格式的模型参数,x为原始格式的模型参数,|x|max为模型参数在原始格式下的目标绝对值的最大值,round()为取整函数,scale为缩放因子,xfloat为反量化后得到的原始格式的模型参数,n为目标格式的字节数。
以内容推荐场景为例,此时原始网络模型可以是内容推荐模型,这里对内容推荐模型的量化功能的压缩比例进行说明。无量上每个Key的存储包括三个部分,分别是index编号、Key索引和weight值,INT8量化方式以Row-wise方式来作用到weight值,Key之间互不影响。单个嵌入层Key的大小为N,以原始格式是FP32为例,导出时每个Key在加载进服务内存占用为(N*32+64*2)bit,其中第一个64*2表示单个Key的index编号和Key索引;INT8功能,加载进服务内存为(N*8+32+64*2)bit,其中第一个32表示单个Key做线性对称量化取的scale值。对应的压缩比例为:
其中,rate表示压缩比例,当N=64时,压缩比例为31%;嵌入层大小继续增大时,压缩比例会趋于25%。
由此可见,INT8量化方式可以实现在效果上无损,能够让业务无额外成本地进行迁移;压缩模型体积,进一步加快模型导出;平均节省服务内存约50%。
本申请实施例在使用INT8量化方式的情况下,通过只量化嵌入层的模型参数来保证INT8格式在模型精度方面的一致,其中在量化嵌入层的模型参数时采用了Row-wise方式和线性对称量化,在模型离在线模型指标无损的前提下实现高比例压缩,无须增加额外迁移成本。
基于目标格式的不同,本申请实施例可以提供多种量化方式,前述已经介绍了INT8量化,在一些情况下,可直接将上述方法复用到INT4量化方式来提高模型压缩率,即此时目标格式为INT4。由于使用INT4量化方式后,模型压缩率更高,为了避免模型压缩率提高导致AUC指标在万分位会有一定效果下降,本申请实施例可以通过选取最佳的目标缩放因子来降低量化造成的效果损失。通过可视化嵌入层的模型参数分布,发现嵌入层的模型参数本身为正态对称分布,但是会出现一些离群较大值,从而在选取目标缩放因子时可能会对模型精度带来一定影响,因此引入了贪心算法来优化这部分损失。由于目标缩放因子可以是根据目标绝对值的最大值确定的,因此,如何选取目标缩放因子可以转换为如何选择目标绝对值的最大值。
在这种情况下,确定模型参数在原始格式下的目标绝对值的最大值的方式可以是根据当前绝对值的最大值确定当前缩放因子,根据当前缩放因子和嵌入层的模型参数确定当前量化后的模型参数,进而根据当前量化后的模型参数和嵌入层的模型参数计算当前均方误差损失。若当前均方误差损失满足优化停止条件,将当前绝对值的最大值确定为目标绝对值的最大值。
这里引入一个均方误差(Mean Square Error,MSE)损失,用来评估模型参数在量化前后的偏移程度,MSE损失的公式如下所示:
其中,Q()表示当前量化后的模型参数,X为原始格式下的模型参数,f(xmin,xmax)为对应的当前MSE损失,相当于loss,xmax为迭代过程中得到的模型参数在原始格式下的最大值,xmin为迭代过程中得到的模型参数在原始格式下的最大值。由于采用线性对称量化,故xmin可以等于xmax。
以降低MSE损失为目标,使用贪心算法来优化scale取值,降低了模型量化导致的模型效果损失,其步骤如下:
初始化参数,包括Xmax,loss和stepsize等,其中,Xmax为模型参数在原始格式下的最大值,loss表示MSE损失,stepsize表示截断间隔;
定义循环判断的退出条件,该退出条件与min_steps相关,例如当前绝对值的最大值与stepsize之差大于min_steps则执行循环判断,min_steps表示截断最小数量;
利用贪心算法优化MSE损失,直到MSE损失满足优化停止条件例如MSE损失最小,则将当前绝对值的最大值确定为目标绝对值的最大值,进而得到最佳scale值。
其伪代码流程如下:
loss=compute_loss(X,Q(X,-Xmax,Xmax));表示初始化参数后,计算得到的当前均方误差损失,Xmax为当前绝对值的最大值,在利用Q()计算当前量化后的模型参数时,可以先利用当前绝对值的最大值确定当前缩放因子。
其中,当前绝对值的最大值是在初始化绝对值的最大值基础上,按照预设步长调整得到的。预设步长可以表示为stepsize,stepsize=Xmax/b,b是常数,例如b=200。min_steps=b*(1-r)*stepsize,r为常数,例如r=0.16。
在确定当前均方误差损失不满足优化停止条件时,按照预设步长调整当前绝对值的最大值,重新计算当前均方误差损失。每调整一次,在当前绝对值的最大值的基础上减去预设步长,直到确定当前均方误差损失不满足优化停止条件,将当前绝对值的最大值确定为目标绝对值的最大值。
INT4量化方式能够达到更高压缩率,结合贪心算法优化scale取值来减少量化损失,使得INT4量化方式带来的精度损失平均减少50%。进而实现在不降低模型指标前提下大大压缩模型导出体积。
本申请实施例适用于应用于各种应用场景的模型量化,例如自然语言处理场景下的NLP模型的量化、内容推荐场景下的内容推荐模型的量化,由于本申请实施例充分考虑了相关技术提供的模型压缩方法直接应用到内容推荐模型的局限性,该方法在内容推荐模型效果保持方面具有较优能力,提高模型量化后的精确性和稳定性,在保证模型离在线效果无损的前提下能缩小模型体积进而降低线上内存使用量,在内容推荐模型方面具有通用性,能够提供比较显著的服务成本节省和更为良好的用户体验。
S205、将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
在对嵌入层的模型参数进行量化后,可以将由网络层和量化后的嵌入层构成的神经网络模型确定为目标网络模型,上线目标网络模型。此时,参见图3所示,网络层D并未改变,嵌入层E经过量化后得到量化后的嵌入层E’。其中,可以结合上述介绍的贪心算法实现对嵌入层的模型参数的量化。
目标网络模型上线后,可以通过目标网络模型提供服务。在通过目标网络模型提供服务时,可以先根据目标缩放因子,对目标网络模型中的嵌入层的模型参数进行反量化处理,利用反量化处理后的嵌入层对输入数据进行特征编码得到特征向量,进而将特征向量输入至目标网络模型中的网络层进行预测,得到预测结果。
目标网络模型可以根据场景的不同提供对应的服务,若在内容推荐场景下,训练所依据的神经网络模型为内容推荐模型,训练得到的目标网络模型可以称为目标内容推荐模型,则目标网络模型提供的服务可以是内容推荐服务,即根据当前对象的对象特征,为当前对象推荐对应的内容。其中内容可以是视频、音频、广告、资讯信息等等。以内容是视频为例,当某个用户打开视频软件后,根据该用户的用户特征,可以通过该目标内容推荐模型预测用户可能喜欢的视频,从而为该用户推荐对应的视频。
若在对象识别场景下,训练所依据的神经网络模型为对象识别模型,训练得到的目标网络模型可以称为目标对象识别模型,则目标网络模型提供的服务可以是对象识别服务,即识别对象的类别或者识别出特定类别的对象所在位置。其中对象可以是人、动物、植物、各种物体等等。以对象是各种物体中车辆为例,当获取到待识别图像/视频时,通过该目标对象识别模型从待识别图像/视频中提取特征数据,进而根据该特征数据识别其中包括的车辆。
由上述技术方案可以看出,在进行模型训练时,首先获取训练数据,训练数据中包括针对不同样本对象采集到的特征数据和对应的标签,然后根据特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,此时原始网络模型的模型参数的存储格式为原始格式,原始网络模型包括嵌入层和网络层。接下来,为了压缩模型体积,可以对原始网络模型进行量化,而由于原始网络模型中,嵌入层可能占到了99%以上的模型参数,且量化可能带来的损失可以通过后续的网络层进行弥补,基于此,本申请可以仅针对嵌入层进行量化。具体的,确定原始格式转化为目标格式的目标缩放因子,从而根据目标缩放因子对嵌入层的模型参数进行量化,以将嵌入层的模型参数的存储格式从原始格式转换为目标格式,最后将网络层和量化后的嵌入层构成的神经网络模型确定为目标网络模型,上线目标网络模型。由于嵌入层在原始网络模型中占到了99%以上的模型参数,因此对嵌入层进行量化可以大大减少模型体积,从而降低超大规模模型的部署成本,降低服务资源的占用。同时由于网络层能够对量化可能带来的损失进行弥补,从而实现在不降低模型指标例如AUC指标的前提下,大大压缩模型体积,降低对模型的线上预测效果的影响。
本申请实施例还提供一种模型量化方法,该模型量化方法主要应用于内容推荐场景。在内容推荐场景下,训练所依据的神经网络模型为内容推荐模型,训练得到的目标网络模型可以称为目标内容推荐模型,模型量化方法主要包括以下步骤:获取样本对象对样本内容的历史反馈信息,根据样本对象对样本内容的历史反馈信息构建训练数据,构建得到的训练数据中包括样本对象特征、样本内容特征和历史反馈信息。其中,样本对象特征、样本内容特征为针对不同样本对象采集到的特征数据,历史反馈信息为对应的标签。然后根据样本对象特征、样本内容特征和历史反馈信息对初始的内容推荐模型进行训练得到原始网络模型,原始网络模型的模型参数的存储格式为原始格式,原始网络模型包括嵌入层和网络层。接着确定目标缩放因子,并利用目标缩放因子对嵌入层的模型参数进行量化,使得嵌入层的模型参数的存储格式从原始格式转换为目标格式,最后将由网络层和量化后的嵌入层构成的神经网络模型确定为目标内容推荐模型,上线目标内容推荐模型。需要说明的是,本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
基于图2对应实施例提供的模型量化方法,本申请实施例还提供一种模型量化装置400。参见图4,所述装置400包括获取单元401、训练单元402、确定单元403和量化单元404:
所述获取单元401,用于获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
所述训练单元402,用于根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
所述确定单元403,用于确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
所述量化单元404,用于根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
所述确定单元403,还用于将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
在一种可能的实现方式中,所述训练数据中的特征数据属于N个样本对象,所述嵌入层的模型参数为N×K,K为特征维度,N和K为正整数,所述确定单元403,具体用于:
针对每个样本对象对应的模型参数,根据所述原始格式和目标格式确定对应的目标缩放因子,得到N个目标缩放因子,对应于同一样本对象的模型参数的目标缩放因子相同;
所述量化单元404,具体用于:
将所述嵌入层中对应于同一样本对象的模型参数分别作为目标模型参数,确定所述目标模型参数对应的目标缩放因子;
利用所述目标模型参数对应的目标缩放因子,对所述目标模型参数进行量化,使得所述目标模型参数的存储格式从所述原始格式转换为所述目标格式。
在一种可能的实现方式中,所述确定单元403,具体用于:
确定所述模型参数在所述原始格式下的目标绝对值的最大值;
根据所述目标绝对值的最大值确定所述目标缩放因子。
在一种可能的实现方式中,,所述确定单元403,具体用于:
根据当前绝对值的最大值确定当前缩放因子;
根据所述当前缩放因子和所述嵌入层的模型参数确定当前量化后的模型参数;
根据当前量化后的模型参数和所述嵌入层的模型参数计算当前均方误差损失;
若所述当前均方误差损失满足优化停止条件,将所述当前绝对值的最大值确定为所述目标绝对值的最大值。
在一种可能的实现方式中,所述当前绝对值的最大值是在初始化绝对值的最大值基础上,按照预设步长调整得到的。
在一种可能的实现方式中,所述装置还包括反量化单元、编码单元和预测单元:
所述反量化单元,用于根据所述目标缩放因子,对所述目标网络模型中的嵌入层的模型参数进行反量化处理;
所述编码单元,用于利用反量化处理后的嵌入层对输入数据进行特征编码,得到特征向量;
所述预测单元,用于将所述特征向量输入至所述目标网络模型中的网络层进行预测,得到预测结果。
在一种可能的实现方式中,所述神经网络模型为内容推荐模型,所述特征数据包括样本对象特征和样本内容特征,所述标签包括样本对象对样本内容的反馈信息。
本申请实施例提供的用于模型量化的设备可以是终端,以终端为智能手机为例:
图5示出的是与本申请实施例提供的智能手机的部分结构的框图。参考图5,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(英文缩写:WiFi)模块570、处理器580、以及电源590等部件。输入单元530可包括触控面板531以及其他输入设备532,显示单元540可包括显示面板541,音频电路560可以包括扬声器561和传声器562。可以理解的是,图5中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器580是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行智能手机的各种功能和处理数据。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
在本实施例中,智能手机中的处理器580可以执行以下步骤:
获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
本申请实施例提供的用于模型量化的设备还可以是服务器,请参见图6所示,图6为本申请实施例提供的服务器600的结构图,服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在本实施例中,服务器600中的中央处理器622可以执行以下步骤:
获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的模型量化方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种模型量化方法,其特征在于,所述方法包括:
获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
2.根据权利要求1所述的方法,其特征在于,所述训练数据中的特征数据属于N个样本对象,所述嵌入层的模型参数为N×K,K为特征维度,N和K为正整数,所述确定目标缩放因子,包括:
针对每个样本对象对应的模型参数,根据所述原始格式和所述目标格式确定对应的目标缩放因子,得到N个目标缩放因子,对应于同一样本对象的模型参数的目标缩放因子相同;
所述根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式,包括:
将所述嵌入层中对应于同一样本对象的模型参数分别作为目标模型参数,确定所述目标模型参数对应的目标缩放因子;
利用所述目标模型参数对应的目标缩放因子,对所述目标模型参数进行量化,使得所述目标模型参数的存储格式从所述原始格式转换为所述目标格式。
3.根据权利要求1所述的方法,其特征在于,所述确定目标缩放因子,包括:
确定所述模型参数在所述原始格式下的目标绝对值的最大值;
根据所述目标绝对值的最大值确定所述目标缩放因子。
4.根据权利要求3所述的方法,其特征在于,所述确定所述模型参数在所述原始格式下的目标绝对值的最大值,包括:
根据当前绝对值的最大值确定当前缩放因子;
根据所述当前缩放因子和所述嵌入层的模型参数确定当前量化后的模型参数;
根据当前量化后的模型参数和所述嵌入层的模型参数计算当前均方误差损失;
若所述当前均方误差损失满足优化停止条件,将所述当前绝对值的最大值确定为所述目标绝对值的最大值。
5.根据权利要求4所述的方法,其特征在于,所述当前绝对值的最大值是在初始化绝对值的最大值基础上,按照预设步长调整得到的。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述上线所述目标网络模型之后,所述方法还包括:
根据所述目标缩放因子,对所述目标网络模型中的嵌入层的模型参数进行反量化处理;
利用反量化处理后的嵌入层对输入数据进行特征编码,得到特征向量;
将所述特征向量输入至所述目标网络模型中的网络层进行预测,得到预测结果。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述神经网络模型为内容推荐模型,所述特征数据包括样本对象特征和样本内容特征,所述标签包括样本对象对样本内容的历史反馈信息。
8.一种模型量化装置,其特征在于,所述装置包括获取单元、训练单元、确定单元和量化单元:
所述获取单元,用于获取训练数据,所述训练数据中包括针对不同样本对象采集到的特征数据和对应的标签;
所述训练单元,用于根据所述特征数据和对应的标签对构建的神经网络模型进行训练得到原始网络模型,所述原始网络模型的模型参数的存储格式为原始格式,所述原始网络模型包括嵌入层和网络层;
所述确定单元,用于确定目标缩放因子,所述目标缩放因子用于将模型参数的存储格式从所述原始格式转化为目标格式;
所述量化单元,用于根据所述目标缩放因子对所述嵌入层的模型参数进行量化,使得所述嵌入层的模型参数的存储格式从所述原始格式转换为所述目标格式;
所述确定单元,还用于将由所述网络层和量化后的所述嵌入层构成的神经网络模型确定为目标网络模型,上线所述目标网络模型。
9.一种用于模型量化的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码当被处理器执行时使所述处理器执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210326511.7A CN114638344A (zh) | 2022-03-30 | 2022-03-30 | 一种模型量化方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210326511.7A CN114638344A (zh) | 2022-03-30 | 2022-03-30 | 一种模型量化方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114638344A true CN114638344A (zh) | 2022-06-17 |
Family
ID=81952305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210326511.7A Pending CN114638344A (zh) | 2022-03-30 | 2022-03-30 | 一种模型量化方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114638344A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611495A (zh) * | 2023-06-19 | 2023-08-18 | 北京百度网讯科技有限公司 | 深度学习模型的压缩方法、训练方法、处理方法及装置 |
-
2022
- 2022-03-30 CN CN202210326511.7A patent/CN114638344A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611495A (zh) * | 2023-06-19 | 2023-08-18 | 北京百度网讯科技有限公司 | 深度学习模型的压缩方法、训练方法、处理方法及装置 |
CN116611495B (zh) * | 2023-06-19 | 2024-03-01 | 北京百度网讯科技有限公司 | 深度学习模型的压缩方法、训练方法、处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10229356B1 (en) | Error tolerant neural network model compression | |
Alvar et al. | Multi-task learning with compressible features for collaborative intelligence | |
CN112035743B (zh) | 数据推荐方法、装置、计算机设备以及存储介质 | |
CN114900692A (zh) | 视频流帧率调整方法及其装置、设备、介质、产品 | |
CN114418121A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
CN115115914B (zh) | 信息识别方法、装置以及计算机可读存储介质 | |
WO2022000298A1 (en) | Reinforcement learning based rate control | |
CN114638344A (zh) | 一种模型量化方法和相关装置 | |
CN116976428A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN112686031A (zh) | 文本特征提取模型的量化方法、装置、设备及存储介质 | |
CN113238989A (zh) | 将数据进行量化的设备、方法及计算机可读存储介质 | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN112399177B (zh) | 一种视频编码方法、装置、计算机设备及存储介质 | |
CN112804558B (zh) | 视频拆分方法、装置及设备 | |
CN116600119B (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
CN110378466B (zh) | 基于神经网络差分的量化方法及系统 | |
CN116644783A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
CN116976461A (zh) | 联邦学习方法、装置、设备及介质 | |
TW202348029A (zh) | 使用限幅輸入數據操作神經網路 | |
CN115936092A (zh) | 神经网络模型量化方法及装置、存储介质及电子设备 | |
CN113238988B (zh) | 优化深度神经网络的参数的处理系统、集成电路及板卡 | |
CN113723161A (zh) | 神经网络模型的训练方法、存储介质及电子设备 | |
CN113554719A (zh) | 一种图像编码方法、解码方法、存储介质及终端设备 | |
Song et al. | SqueezeBlock: A Transparent Weight Compression Scheme for Deep Neural Networks | |
CN114998457B (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 |