CN117035038A - 模型剪枝方法、装置、设备及存储介质 - Google Patents
模型剪枝方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117035038A CN117035038A CN202211176919.7A CN202211176919A CN117035038A CN 117035038 A CN117035038 A CN 117035038A CN 202211176919 A CN202211176919 A CN 202211176919A CN 117035038 A CN117035038 A CN 117035038A
- Authority
- CN
- China
- Prior art keywords
- adjacent layers
- model
- pruning
- target
- group
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种模型剪枝方法、装置、设备及存储介质,涉及人工智能的机器学习领域,该方法包括:确定第一模型的目标损失函数,第一模型的每组目标相邻层之间设置有对应的剪枝权重层,剪枝权重层包括N个第一剪枝权重;根据目标损失函数训练第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;对训练后模型的目标输入层维度进行剪除,对训练后模型中输出层维度与目标输入层维度之间的连接进行剪除;目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。从而在同时保证模型压缩和模型精度的情况下,降低了模型训练的机器成本以及时延。
Description
技术领域
本申请实施例涉及人工智能(Artificial Intelligence,AI)技术领域,尤其涉及一种模型剪枝方法、装置、设备及存储介质。
背景技术
模型压缩的目标是保证模型预测效果的前提下,尽可能地降低模型的大小。剪枝技术是实现模型压缩的重要手段。例如,对于模型中的某类节点如神经网络层的神经元或者嵌入层的特征嵌入维度,如果这类节点对模型的影响微乎其微,那么可以将这类节点删掉,以减小模型大小,同时还能保证模型预测效果。
目前的L1正则剪枝方法包括如下三个步骤:1)、训练初始模型,其中,该模型中每个节点或者连接都对应一个用于表征该节点或者连接的重要程度的权重;2)、将初始模型中对应权重低于预设阈值的节点或者连接进行剪除;3)、重新训练经过剪枝后的模型,以补偿由于第2步的剪枝带来的模型精度下降。其中,为了达到一个满意的模型压缩比例和模型精度要求,通常要对第2步和第3步重复多次。
多次执行上述第2步和第3步导致模型训练的机器成本以及时延过大。尤其对于推荐模型而言,一方面,千分位的曲线下的面积(Area Under Curve,AUC)指标下降会带来明显的线上效果负向,换句话讲,推荐模型的精度要求更高,如果按照L1正则剪枝方法对推荐模型进行剪枝,就需要对推荐模型执行更多次的第2步和第3步;另一方面,推荐模型对应的是增量训练模式,换句话讲,推荐模型的训练样本在不断的增加,需要持续通过增加的训练样本对模型进行训练,就需要对推荐模型执行更多次的第2步和第3步。总之,如果按照L1正则剪枝方法对推荐模型进行剪枝,导致模型训练的机器成本以及时延过大。
发明内容
本申请提供一种模型剪枝方法、装置、设备及存储介质,从而在同时保证模型压缩和模型精度的情况下,降低了模型训练的机器成本以及时延。
第一方面,本申请实施例提供一种模型剪枝方法,该方法包括:确定第一模型的目标损失函数,第一模型的至少一组目标相邻层中每组目标相邻层之间设置有对应的剪枝权重层,剪枝权重层包括N个第一剪枝权重,N个第一剪枝权重与对应的目标相邻层的输入层维度一一对应,N为大于1的整数;根据目标损失函数训练第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;对训练后模型的目标输入层维度进行剪除,并对训练后模型中输出层维度与目标输入层维度之间的连接进行剪除;目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。
第二方面,本申请实施例提供一种模型剪枝装置,该装置包括:确定模块、训练模块和剪枝模块,其中,确定模块用于确定第一模型的目标损失函数,第一模型的至少一组目标相邻层中每组目标相邻层之间设置有对应的剪枝权重层,剪枝权重层包括N个第一剪枝权重,N个第一剪枝权重与对应的目标相邻层的输入层维度一一对应,N为大于1的整数;训练模块用于根据目标损失函数训练第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;剪枝模块用于对训练后模型的目标输入层维度进行剪除,并对训练后模型中输出层维度与目标输入层维度之间的连接进行剪除;目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。
第三方面,提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实现方式中的方法。
第四方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。
第五方面,提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实现方式中的方法。
第六方面,提供一种计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。
通过本申请实施例提供的技术方案,第一,通过该模型剪枝方法可以达到模型压缩的目的。第二,通过本申请实施例提供的模型剪枝方法在达到模型压缩的目的的同时,还可以保证模型精度,即模型效果不受影响,这是因为上述目标损失函数包括-||γ-γ'||1,-||γ-γ'||1的作用是全部γi尽可能趋于两极,才能使得该项达到较小,同时这种趋于两极化的分布还可以适应正则项和原始损失之间的对抗关系,因此,令趋近于0的剪枝权重可以达到无限趋近于0,剪枝权重的精度较高,这种剪枝方法不会将有效的输入层维度和连接剪除。总之,由于基于两极化约束的模型剪枝方法可以保证模型精度,从而无需对推荐模型进行多次剪枝和重训练,进而在同时保证模型压缩和模型精度的情况下,降低了模型训练的机器成本以及时延,该方法尤其适用于推荐模型。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种系统架构示意图;
图2A为本申请实施例提供的一种模型示意图;
图2B为本申请实施例提供的另一种模型示意图;
图2C为本申请实施例提供的再一种模型示意图;
图3为本申请实施例提供的一种模型剪枝方法的流程图;
图4为本申请实施例提供的一种模型剪枝方法的示意图;
图5为本申请实施例提供的另一种模型剪枝方法的流程图;
图6为本申请实施例提供的一种模型剪枝装置600的示意图;
图7是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请涉及人工智能技术领域,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
在介绍本申请技术方案之前,下面首先对本申请的相关知识进行阐述:
推荐系统(Recommender System,RS):是一种用于预测用户对物品的评分或偏好的信息过滤系统。
推荐模型:在推荐系统中使用的模型,如点击率(Click-Through Rate,CTR)预估模型是一种推荐模型,该CTR预估模型用于根据给定广告、用户和上下文情况等信息,对每次商品的点击情况作出预测,进而可以基于预测的点击情况为用户推荐商品。其中,该CTR预估模型可以是采用深度神经网络(Deep Neural Network,DNN)或深度因式分解机(DeepFactorization machines,DeepFM)算法等的模型。
模型压缩(Model Compression,MC):是一种信息精简方法,能把参数量多且复杂度高的大模型压缩成参数量少且复杂度低的小模型,而且压缩后的小模型也能得到和大模型接近的预测性能。
下面将对本申请技术方案所要解决的技术问题和发明构思进行说明:
近些年随着深度学习技术的快速发展,大规模稀疏模型被广泛地应用到众多各个场景中,这些稀疏模型,即推荐模型大小从数千兆字节(GigaByte,GB)到几太兆字节(TeraByte,TB)不等,越大的模型代表着更高的模型效果上限。这些模型通常由嵌入(Embedding)层和神经网络层组成,嵌入层的特征数目可达到千亿级别,这些特征通常占到了99%以上的模型参数。模型压缩的目标是保证模型预测效果的前提下,尽可能地降低模型的大小。剪枝技术是实现模型压缩的重要手段。目前可以通过L1正则剪枝方法对模型进行剪枝,但是这种方式会导致模型训练的机器成本以及时延过大。尤其对于具有精度要求高和增量训练特性的推荐模型而言,所造成的机器成本以及时延更大。
为了解决上述技术问题,本申请实施例模型的相邻层增加了剪枝权重层,该剪枝权重层包括与该相邻层的输入层维度一一对应的N个剪枝权重,在模型训练中使得N个剪枝权重经过训练后可以趋于这些剪枝权重对应的取值范围的两极,在模型训练之后,可以将剪枝权重小于预设阈值的输入层维度,以及这类输入层维度与输出层维度之间的连接剪除,这种方式无需采用多次剪枝以及重训练步骤,从而在同时保证模型压缩和模型精度的情况下,降低了模型训练的机器成本以及时延。
在一些可实现方式中,在本申请实施例中,机器成本可以包括:中央处理器(Central Processing Unit,CPU)、内存等成本,但不限于此。
在一些实施例中,本申请实施例的系统架构如图1所示。
图1为本申请实施例涉及的一种系统架构示意图,用户设备101、数据采集设备102、训练设备103、执行设备104、数据库105和内容库106。
其中,数据采集设备102用于从内容库106中读取训练数据,并将读取的训练数据存储至数据库105中。以推荐场景为例,本申请实施例涉及的训练数据可以包括:推荐场景相关特征、用户相关特征、物品相关特征和标签等,该推荐场景相关特征可以包括:时间、手机状态等;用户相关特征可以包括:用户的年龄、性别、喜好等;物品相关特征可以包括:物品的属性信息等;该标签可以是用户是否点击了网页上的某物品等。其中,训练数据可以按照输入所需格式,分成稀疏特征、连续特征和标签。
在一些可实现方式中,在本申请实施例中,可使用公开的比赛数据MovieLens数据集,该数据集为用户对电影的历史评分记录集合,具有不同规模的数据量,命名有1M、10M和20M,代表分别包含1、10和20万个评分,在本申请实施例中可以使用1M数据集。进一步地,可以将该数据集按照8:2的比例划分为训练集和测试集。对于一个训练集,其中xi和yi分别代表输入特征和该输入特征对应的标签。
训练设备103基于数据库105中维护的训练数据,对推荐模型进行训练和剪枝,使得剪枝后的推荐模型可以输出预测结果,例如,用户点击某物品的概率。经过剪枝后的推荐模型可以应用到不同的推荐系统中,例如,可以应用于电商购物、视频或音乐推荐、新闻资讯类信息流推荐等推荐系统中。
另外,参考图1,执行设备104配置有I/O接口107,与外部设备进行数据交互。比如通过I/O接口接收用户设备101发送的推荐场景相关特征、用户相关特征、物品相关特征。执行设备104中的计算模块109使用剪枝后的推荐模型对输入的特征进行处理,输出用户点击物品的概率,并通过I/O接口将该结果发送至用户设备101。
其中,用户设备101可以包括手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)或其他具有安装浏览器功能的终端设备。
执行设备104可以为服务器。
示例性的,服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备。该服务器可以是独立的测试服务器,也可以是多个测试服务器所组成的测试服务器集群。
本实施例中,执行设备104通过网络与用户设备101连接。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobilecommunication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。
需要说明的是,图1仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。在一些实施例中,上述数据采集设备102与用户设备101、训练设备103和执行设备104可以为同一个设备。上述数据库105可以分布在一个服务器上也可以分布在多个服务器上,上述的内容库106可以分布在一个服务器上也可以分布在多个服务器上。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2A为本申请实施例提供的一种模型示意图,如图2A所示,该模型包括:嵌入层、剪枝权重层和神经网络层。该神经网络层包括至少一个神经网络子层,例如,图2A示例性地示出了两个神经网络子层,分别是神经网络子层1和神经网络子层2。剪枝权重层包括N个第一剪枝权重,N个第一剪枝权重与嵌入层的N个特征嵌入维度一一对应,N为大于1的整数,其中,嵌入层用于实现对输入特征的降维,例如,假设输入特征是1000维,通过给该输入特征乘以1000*300维的嵌入矩阵(embedding matrix),可以得到一个300维的特征向量,而这里的特征嵌入维度指的是经过降维后的特征向量后的维度,例如是300。训练设备在完成该模型训练之后,每个第一剪枝权重对应的第二剪枝权重,即训练后的剪枝权重的取值可以决定是否对该剪枝权重对应的特征嵌入维度以及神经网络层中的任一个神经元到该特征嵌入维度之间的连接进行剪除,从而实现对模型的压缩。
应理解的是,在图2A所示的模型中,嵌入层和神经网络子层1是一组相邻层,该相邻层中嵌入层的特征嵌入维度被称为该组相邻层的输入层维度,该相邻层中神经网络子层1的神经元维度被称为该组相邻层的输出层维度。
图2B为本申请实施例提供的另一种模型示意图,如图2B所示,该模型包括:嵌入层、剪枝权重层和神经网络层,该神经网络层包括至少一个神经网络子层,例如,图2B示例性地示出了两个神经网络子层,分别是神经网络子层1和神经网络子层2,在图2B所示的模型中,剪枝权重层设置在两个神经层之间,该剪枝权重层包括N个第一剪枝权重,N个第一剪枝权重与神经网络子层1的N个维度一一对应,N为大于1的整数。训练设备在完成该模型训练之后,每个第一剪枝权重对应的第二剪枝权重,即训练后的剪枝权重的取值可以决定是否对该剪枝权重对应的神经网络子层1中的神经元以及神经网络子层2中的任一个神经元到神经网络子层1中的神经元之间的连接进行剪除,从而实现对模型的压缩。
应理解的是,在图2B所示的模型中,神经网络子层1和神经网络子层2是一组相邻层,该相邻层中神经网络子层1的神经元维度被称为该组相邻层的输入层维度,该相邻层中神经网络子层2的神经元维度被称为该组相邻层的输出层维度。
图2C为本申请实施例提供的再一种模型示意图,如图2C所示,该模型包括:嵌入层、剪枝权重层1、剪枝权重层2和神经网络层,该神经网络层包括至少一个神经网络子层,例如,图2C示例性地示出了两个神经网络子层,分别是神经网络子层1和神经网络子层2,在图2C所示的模型中,剪枝权重层1包括N1个第一剪枝权重,N1个第一剪枝权重与嵌入层的N1个特征嵌入维度一一对应,N1为大于1的整数。剪枝权重层2设置在两个神经层之间,该剪枝权重层2包括N2个第一剪枝权重,N2个第一剪枝权重与神经网络子层1的N2个维度一一对应,N2为大于1的整数。训练设备在完成该模型训练之后,每个第一剪枝权重对应的第二剪枝权重,即训练后的剪枝权重的取值可以决定是否对该剪枝权重对应的特征嵌入维度以及神经网络层中的任一个神经元到该特征嵌入维度之间的连接进行剪除,是否对该剪枝权重对应的神经网络子层1中的神经元以及神经网络子层2中的任一个神经元到神经网络子层1中的神经元之间的连接进行剪除,从而实现对模型的压缩。
应理解的是,在图2C所示的模型中,嵌入层和神经网络子层1是一组相邻层,该相邻层中嵌入层的特征嵌入维度被称为该组相邻层的输入层维度,该相邻层中神经网络子层1的神经元维度被称为该组相邻层的输出层维度。神经网络子层1和神经网络子层2是另一组相邻层,该相邻层中神经网络子层1的神经元维度被称为该组相邻层的输入层维度,该相邻层中神经网络子层2的神经元维度被称为该组相邻层的输出层维度。
应理解的是,在本申请实施例中,剪枝权重也可以被称为尺度因子。
在一些可实现方式中,该神经网络层可以是深度神经网络(Deep NeuralNetwork,DNN),DNN是一类具有深度结构的前馈神经网络,是深度学习模型的代表算法之一。
在一些可实现方式中,训练设备或者执行设备可以对神经网络层的输出结果采用归一化函数,得到一个预测结果,该归一化函数可以是sigmoid函数,但不限于此。
图3为本申请实施例提供的一种模型剪枝方法的流程图,该方法可以由图1中的训练设备执行,但不限于此,如图3所示,该方法可以包括:
S1:确定第一模型的目标损失函数;
S2:根据目标损失函数训练第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;
S3:对训练后模型的目标输入层维度进行剪除,并对训练后模型中输出层维度与目标输入层维度之间的连接进行剪除;目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。
下面针对S1进行说明:
在一些可实现方式中,该第一模型可以是推荐模型。
该第一模型的至少一组目标相邻层中每组目标相邻层之间设置有对应的剪枝权重层,剪枝权重层包括N个第一剪枝权重,N个第一剪枝权重与对应的目标相邻层的输入层维度一一对应,N为大于1的整数。
应理解的是,上述至少一组目标相邻层指的是设置有剪枝权重层的相邻层。例如,在图2A所示的模型中,第一模型包括一组目标相邻层,该目标相邻层是嵌入层和神经网络子层1构成的相邻层。再例如,在图2B所示的模型中,第一模型包括一组目标相邻层,该目标相邻层是神经网络子层1和神经网络子层2构成的相邻层。又例如,在图2C所示的模型中,第一模型包括两组目标相邻层,分别是:嵌入层和神经网络子层1构成的相邻层、神经网络子层1和神经网络子层2构成的相邻层。
应理解的是,如果第一模型包括多组目标相邻层,那么每组目标相邻层之间的剪枝权重层所包括的剪枝权重数量N可以不同。
在一些可实现方式中,S1可以包括:
S11:确定第一模型的原始损失函数和每组目标相邻层对应的N个第一剪枝权重的平均剪枝权重;
S12:根据每组目标相邻层对应的N个第一剪枝权重和平均剪枝权重确定每组目标相邻层对应的正则化项;
S13:根据原始损失函数和每组目标相邻层对应的正则化项确定第一模型的目标损失函数。
下面针对S11进行说明:
应理解的是,第一模型的原始损失函数指的是只考虑第一模型的预测结果与标签所得到的损失函数,其中,该原始损失函数可以是交叉熵损失函数或者均方误差损失函数等,但不限于此。例如,公式(1)提供的是一种交叉熵损失函数:
其中,y(i)表示第i个训练样本对应的预测结果,表示第i个训练样本对应的标签,即真实结果,M表示训练样本的数量。
针对至少一组目标相邻层中的每组相邻层,假设该组相邻层对应的N个第一剪枝权重分别是γ1,γ2…γN,其中,γi为施加到第i个输入维度上的剪枝权重,γi∈[0,a],且a>0,那么N个第一剪枝权重的平均剪枝权重可以通过公式(2)计算得到:
在一些可实现方式中,N个第一剪枝权重是通过将N个初始值输入至目标函数得到的。例如,通过目标函数(3)可以得到N个第一剪枝权重:
y=activation(x) (3)
其中,x表示某个第一剪枝权重对应的初始值,y表示该第一剪枝权重。通常该初始值取0。在模型训练过程中,通常可以将a设置为1,为了把γi值限制在某个区间,可以使用两种方式:(1)利用sigmoid函数的输出值;(2)利用ReLu函数将大于1的输出值截断到1。也就是说,上述目标函数可以是sigmoid函数或者ReLu函数,但不限于此。
下面针对S12进行说明:
在一种可实现方式中,S12可以包括:
S121-a:计算每组目标相邻层对应的N个第一剪枝权重构成的第一向量与对应的N个平均剪枝权重构成的第二向量的差向量;
S122-a:计算每组目标相邻层对应的差向量的范数,得到每组目标相邻层对应的第一范数项;
S123-a:根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项。
针对S121-a至S123-a进行说明:
应理解的是,针对上述至少一组目标相邻层中的每组相邻层,假设该组相邻层对应的N个第一剪枝权重构成的第一向量是γ,N个平均剪枝权重构成的第二向量是γ',那么第一向量与第二向量的差向量是γ-γ'。
在一些可实现方式中,本申请实施例涉及的范数可以是L1范数,也可以是L2范数或者其他范数,本申请实施例对此不做限制。假设以L1范数为例对本申请实施例进行示例性说明,那么上述的第一范数项可以是|||γ-γ'||1。
其中,S123-a可以通过以下任一种可实现方式实现,但不限于此:
可实现方式一,S123-a之前还可以包括:
S123-a-1:计算每组目标相邻层对应的第一向量的范数,得每组目标相邻层对应的第二范数项;
相应的,S123-a可以包括:
S123-a-2:根据每组目标相邻层对应的第一范数项和第二范数项确定每组目标相邻层对应的正则化项。
下面针对S123-a-1和S123-a-2进行说明:
应理解的是,针对上述至少一组目标相邻层中的每组相邻层,假设该组相邻层对应的N个第一剪枝权重构成的第一向量是γ,那么该组相邻层对应的第二范数项可以是||γ||1。
在一种可实现方式中,训练设备可以计算每组目标相邻层对应的第二范数项与对应的第一因子之积,得到该组目标相邻层对应的第一乘积项;计算该组目标相邻层对应的第一乘积项与对应的第一范数项之差,得到该组目标相邻层对应的正则化项。
假设该组目标相邻层对应的第一因子用t表示,那么训练设备可以通过公式(4)得到该组目标相邻层对应的正则化项,但不限于此:
其中,第一因子t用于控制该目标相邻层对应的N个第二剪枝权重中趋于两极中任一极的比例,以控制第一模型的压缩比例,t∈[-2,2]。
在一些可实现方式中,该目标相邻层对应的第一因子与第一模型的压缩比例呈线性关系,具体可以如公式(5)所示的线性关系:
其中,p表示第一模型的压缩比例,也就是全部γi中为a的比例。
在另一种可实现方式中,训练设备也可以计算该组目标相邻层对应的第一范数项与第三因子之积,得到该组目标相邻层对应的第三乘积项;计算该组目标相邻层对应的第二范数项与第三乘积项之差,得到该组目标相邻层对应的正则化项。
假设该组目标相邻层对应的第三因子用m表示,那么训练设备可以通过公式(6)得到正则化项,但不限于此:
可实现方式二,S123-a可以包括:
S123-a-1’:对该组目标相邻层对应的第一范数项取相反数,得到该组目标相邻层对应的正则化项。
例如,针对上述至少一组目标相邻层中的每组相邻层,该组相邻组对应的正则化项可以通过如下公式(7)计算得到,但不限于此:
下面针对S12的另一种可实现方式进行说明:
在一些可实现方式中,S12可以包括:
S121-b:计算每组目标相邻层对应的N个第一剪枝权重构成的第一向量与该组目标相邻层对应的第四因子的乘积,得到该组目标相邻层对应的第四乘积项,并计算该组目标相邻层对应的N个平均剪枝权重构成的第二向量与第四因子的乘积,得到该组目标相邻层对应的第五乘积项;
S122-b:计算该组目标相邻层对应的第四乘积项与第五乘积项的差向量;
S123-b:计算该组目标相邻层对应的差向量的范数,得到该组目标相邻层对应的第三范数项;
S124-b:对该组目标相邻层对应的第三范数项取相反数,得到该组目标相邻层对应的正则化项。
在一些可实现方式中,该组目标相邻层对应的第四因子的取值范围可以是【0,1】。
假设用q表示该组目标相邻层对应的第四因子,那么该组目标相邻层对应的正则化项可以通过如下公式(8)计算得到,但不限于此:
下面针对S13进行说明:
在一种可实现方式中,S13可以包括:
S131-a:计算每组目标相邻层对应的正则化项与对应的第二因子之积,得到每组目标相邻层对应的第二乘积项;
S132-a:计算原始损失函数和全部目标相邻层对应的第二乘积项之和,得到目标损失函数。
假设第一模型包括一组目标相邻层,该组目标相邻层对应的第二因子是k,那么目标损失函数可以通过如下公式(9)计算得到,但不限于此:
Loss=loss_ctr+kRs(γ) (9)
其中,loss_ctr表示第一模型的原始损失函数,Rs(γ)表示该组目标相邻组对应的正则化项。第二因子k用来调节loss_ctr和Rs(γ)的大小关系。通常来说,调节k使得Rs(γ)在loss_ctr的1%~5%,可同时保证模型压缩和模型精度。
假设第一模型包括多组目标相邻层,第i组目标相邻层对应的第二因子是ki,i=1,2…P,P表示目标相邻层的数量,P大于1,那么目标损失函数可以通过如下公式(10)计算得到,但不限于此:
其中,loss_ctr表示第一模型的原始损失函数,Ri(γ)表示第i组目标相邻组对应的正则化项。第二因子ki用来调节loss_ctr和Ri(γ)的大小关系。通常来说,调节ki使得Ri(γ)在loss_ctr的1%~5%,可同时保证模型压缩和模型精度。
在另一种可实现方式中,S13可以包括:
S131-b:计算原始损失函数与第五因子之积,得到第六乘积项;
S132-b:计算第六乘积项和全部目标相邻层对应的正则化项之和,得到目标损失函数。
假设第一模型包括一组目标相邻层,s表示第五因子,那么目标损失函数可以通过如下公式(11)计算得到:
Loss=s*loss_ctr+Rs(γ) (10)
其中,loss_ctr表示第一模型的原始损失函数,Rs(γ)表示该组目标相邻层对应的正则化项。第五因子s用来调节loss_ctr和Rs(γ)的大小关系。通常来说,调节s使得Rs(γ)在loss_ctr的1%~5%,可同时保证模型压缩和模型精度。
假设第一模型包括多组目标相邻层,s表示第五因子,那么目标损失函数可以通过如下公式(12)计算得到:
其中,loss_ctr表示第一模型的原始损失函数,Ri(γ)表示第i组目标相邻组对应的正则化项,i=1,2…P,P表示目标相邻层的数量,P大于1,第五因子s用来调节loss_ctr和Rs(γ)的大小关系。
下面针对S2进行说明:
在L1正则剪枝方法中,全部γi趋近于0可以使得L1正则损失达到最小,但是由于L1正则损失和第一模型的原始损失之间是对抗关系,即L1正则损失小了,原始损失会比较大,因此全部γi不能无限趋近于0,剪枝权重的精度较低,例如可以是10-1精度,有些剪枝权重可以是0.1,有些可以是0.2,有些可以是0.5等,训练设备基于预设阈值进行剪枝时,可能会将一些剪枝权重对应的输入维度以及输出维度到该输入维度的连接剪除,例如,当预设阈值为0.3时,会将0.2对应的特征嵌入维度以及神经元到该维度的连接剪除,但是剪枝权重0.2对应的特征嵌入维度以及神经元到该维度的连接可能是有效特征嵌入维度以及有效连接,这种剪枝方式给模型效果带来一定的损失。所以在L1正则剪枝方式中,需要多次进行剪枝和重训练。
在本申请实施例中,上述目标损失函数包括-|||γ-γ'||1项,当所有γi相等时,该项达到最大值;当一半γi为0且另一半γi为a时,该项达到最小值,也就是说,-||γ-γ'||1的作用是全部γi尽可能趋于两极,既能使得该项达到较小,同时这种趋于两极化的分布还可以适应正则项和原始损失之间的对抗关系,因此,令趋近于0的剪枝权重可以达到无限趋近于0,剪枝权重的精度较高,例如可以高于10-4精度,有些剪枝权重是0.00002,有些是0.00005,有些是0.0098等,基于预设阈值进行剪枝时一般不会将有效输入维度和有效连接剪除。例如,使用本申请实施例提供的模型剪枝方法时可将预设阈值设置为0.0001,训练设备会将0.00002和0.00005对应的特征嵌入维度和连接剪除,但是这两个剪枝权重对应的特征嵌入维度和连接本身对模型效果影响不大,这种剪枝方式能在不会给模型效果带来损失的前提下达到预期剪枝比例。
下面针对S3进行说明:
应理解的是,对于每个相邻层的输入层而言,训练设备可以将训练后模型中的目标输入层维度进行剪除,对于每个相邻层的输出层而言,训练设备可以对训练后模型中每个输出层维度与目标输入层维度之间的连接进行剪除。例如,假设第一模型的嵌入层与神经网络层的最下面的神经网络子层之间设置有剪枝权重层,经过训练后得到了三个第二剪枝权重,它们分别是0.00002、0.00005和0.0098,假设预设阈值被设置为0.0001,基于此,训练设备可以将0.00002以及0.00005分别对应的特征嵌入维度剪除。并且假设这两个特征嵌入维度与神经网络层中的神经元1之间具有连接,那么训练设备可以剪除这两个特征嵌入维度与神经元1之间具有的连接。
应理解的是,在本申请实施例中,剪除也被称为删除或者剪枝,本申请实施例对此不做限制。
在一些可实现方式中,在模型训练过程中,训练设备可以使用适应性矩估计(Adaptive moment estimation,Adam)优化器、随机梯度下降(Stochastic GradientDescent,SGD)优化器和自适应梯度(Adaptive Gradient,AdaGrad)优化器等优化器来求解第一模型的参数,采用Xavier模式来初始化第一模型的参数。在求解过程中,把训练数据传入第一模型中训练,并通过误差反向传播完成模型优化,实现对评分预测目标和权值两极化目标的同时优化。
如上所述,-|||γ-γ'||1的作用是全部γi尽可能趋于两极,基于此,可以将全部γi尽可能趋于两极称为两极化约束。图4为本申请实施例提供的一种模型剪枝方法的示意图,如图4所示,训练设备中的计算模块通过训练数据对第一模型进行训练,并基于两极化约束计算第一模型的目标损失函数,采用误差反向传播完成模型优化,即对训练后模型进行剪枝,得到剪枝后的第一模型,最后将剪枝后的模型进行上线,其中,图4中的D表示神经网络层,E表示嵌入层,D’表示剪枝后的神经网络层,E’表示剪枝后的嵌入层。
通过本申请实施例提供的技术方案,第一,通过该模型剪枝方法可以达到模型压缩的目的,主要体现在以下两点:(1),针对每个目标相邻层的输入层而言,训练设备可以对训练后模型中的目标输入层维度进行剪除,可以降低模型体积,尤其当该输入层是嵌入层时,由于嵌入层的特征数目可达到千亿级别,这些特征通常占到了99%以上的模型参数,这种对嵌入层的剪枝技术可以大大压缩模型体积。(2),针对神经网络层而言,训练设备可以对训练后模型中输出层维度与目标输入层维度之间的连接进行剪除,由于神经网络层在进行前向计算时,即采用上一层的输入数据以及连接上的权重得到当前层神经元的数值,如果连接得到剪除,可以大大缩减模型计算量和计算复杂度。
第二,通过本申请实施例提供的模型剪枝方法在达到模型压缩的目的的同时,还可以保证模型精度,即模型效果不受影响,这是因为上述目标损失函数包括-||γ-γ'||1,-||γ-γ'||1的作用是全部γi尽可能趋于两极,才能使得该项达到较小,同时这种趋于两极化的分布还可以适应正则项和原始损失之间的对抗关系,因此,令趋近于0的剪枝权重可以达到无限趋近于0,剪枝权重的精度较高,这种剪枝方法不会将有效的输入层维度和连接剪除。
总之,由于基于两极化约束的模型剪枝方法可以保证模型精度,从而无需对推荐模型进行多次剪枝和重训练,进而在同时保证模型压缩和模型精度的情况下,降低了模型训练的机器成本以及时延,这种方式尤其适用于推荐模型。
第三,当训练集发生变化时,推荐模型的训练结果则不同,基于此,基于不同训练集所得到的剪枝权重不尽相同,训练设备所剪除的特征嵌入维度以及连接也不尽相同,换句话讲,本申请实施例提供的是一种动态剪枝方法,在推荐场景下,由于推荐模型对应的是增量训练模式,使得这种动态剪枝方法增量适用性更强。
第四,以可插拔的方式嵌入本申请实施例提供的模型剪枝方法中,也就是说,对于已训练模型,可以快速迁移使用该模型剪枝方法,例如,对于已训练模型,可以将该模型的剪枝权重层看作是全部为1的情况,基于此,来执行模型剪枝方法。
第五,训练设备可以在模型训练之后对剪枝后的模型进行剪枝,进而导出上线,使得训练阶段和推理阶段的目标具有一致性。
应理解的是,上述至少一组目标相邻层可以是第一模型中的全部相邻组,也可以是部分相邻组,如果是部分相邻组,那么训练设备需要首先在第一模型的全部相邻组中选择这部分相邻组,下面对该进行详细阐述:
在一些可实现方式中,如图5所示,在上述S1之前模型剪枝方法还可以包括:
S501:获取第二模型;
S502:在第二模型中选择至少一组目标相邻层;
S503:在每组目标相邻层之间添加对应的剪枝权重层,以生成第一模型。
应理解的是,第二模型是第一模型在添加剪枝权重层之前的模型,换句话讲,第二模型与第一模型的区别在于:第一模型具有剪枝权重层,第二模型不具有剪枝权重层。
下面针对S502进行说明:
其中,S502可以通过以下任一种可实现方式实现,但不限于此:
可实现方式一,训练设备在第二模型中中至少一组相邻层随机选择至少一组目标相邻层。
可实现方式二,训练设备在第二模型中中至少一组相邻层选择嵌入层与神经网络层中的最底下的神经网络子层构成的相邻层作为目标相邻层。
可实现方式三,训练设备确定第二模型中至少一组相邻层各自的复杂度;基于至少一组相邻层各自的复杂度选择至少一组目标相邻层。
其中,训练设备可以通过以下任一种可实现方式确定至少一组相邻层各自的复杂度,但不限于此:
在一种可实现方式中,训练设备可以确定每组相邻层的输入层维度和输出层维度;基于该组相邻层的输入层维度和输出层维度确定该组相邻层的复杂度。
例如,训练设备可以采用公式(13)计算每组相邻层的复杂度,但不限于此:
C=(2×I-1)×O (13)
其中,C表示某组相邻层的复杂度,I表示该组相邻层的输入层维度,O表示该组相邻层的输出层维度。
在另一种可实现方式中,训练设备可以确定每组相邻层的输入层维度;将该组相邻层的输入层维度作为该组相邻层的复杂度。
在再一种可实现方式中,训练设备可以确定每组相邻层的连接数;将该组相邻层的连接数作为该组相邻层的复杂度。
在一些可实现方式中,当训练设备得到了至少一组相邻层各自的复杂度之后,可以选择复杂度大于预设复杂度的相邻层作为目标相邻层,也就是说,对于复杂度较大的相邻层,训练设备可以其之间设置剪枝权重层,以实现剪枝,进而达到模型压缩的目的。
通过本申请实施例提供的技术方案,训练设备可以选择目标相邻层,以在目标相邻层设置剪枝权重层,由于剪枝权重层的作用是为了实现模型剪枝,进而达到模型压缩的目的,因此本申请实施例提供的技术方案可以实现灵活地模型剪枝和模型压缩目的。
图6为本申请实施例提供的一种模型剪枝装置600的示意图,确定模块610、训练模块620和剪枝模块630,确定模块610用于确定第一模型的目标损失函数,第一模型的至少一组目标相邻层中每组目标相邻层之间设置有对应的剪枝权重层,剪枝权重层包括N个第一剪枝权重,N个第一剪枝权重与对应的目标相邻层的输入层维度一一对应,N为大于1的整数;训练模块620用于根据目标损失函数训练第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;剪枝模块630用于对训练后模型的目标输入层维度进行剪除,并对训练后模型中输出层维度与目标输入层维度之间的连接进行剪除;目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。
在一些可实现方式中,确定模块610具体用于:确定第一模型的原始损失函数和每组目标相邻层对应的N个第一剪枝权重的平均剪枝权重;根据每组目标相邻层对应的N个第一剪枝权重和平均剪枝权重确定每组目标相邻层对应的正则化项;根据原始损失函数和每组目标相邻层对应的正则化项确定第一模型的目标损失函数。
在一些可实现方式中,确定模块610具体用于:计算每组目标相邻层对应的N个第一剪枝权重构成的第一向量与对应的N个平均剪枝权重构成的第二向量的差向量;计算每组目标相邻层对应的差向量的范数,得到每组目标相邻层对应的第一范数项;根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项。
在一些可实现方式中,确定模块610还用于:在根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项之前,计算每组目标相邻层对应的第一向量的范数,得每组目标相邻层对应的第二范数项;相应的,确定模块610具体用于:根据每组目标相邻层对应的第一范数项和第二范数项确定每组目标相邻层对应的正则化项。
在一些可实现方式中,确定模块610具体用于:计算每组目标相邻层对应的第二范数项与对应的第一因子之积,得到每组目标相邻层对应的第一乘积项;计算每组目标相邻层对应的第一乘积项与对应的第一范数项之差,得到每组目标相邻层对应的正则化项;其中,每组目标相邻层对应的第一因子用于控制对应的N个第二剪枝权重中趋于两极中任一极的比例,以控制第一模型的压缩比例。
在一些可实现方式中,每组目标相邻层对应的第一因子与第一模型的压缩比例呈线性关系。
在一些可实现方式中,确定模块610具体用于:对每组目标相邻层对应的第一范数项取相反数,得到每组目标相邻层对应的正则化项。
在一些可实现方式中,确定模块610具体用于:计算每组目标相邻层对应的正则化项与对应的第二因子之积,得到每组目标相邻层对应的第二乘积项;计算原始损失函数和每组目标相邻层对应的第二乘积项之和,得到目标损失函数。
在一些可实现方式中,装置600还包括:获取模块640、选择模块650和生成模块660,获取模块640用于在确定模块610确定第一模型的目标损失函数之前获取第二模型;选择模块650用于在第二模型中选择至少一组目标相邻层;生成模块660用于在每组目标相邻层之间添加对应的剪枝权重层,以生成第一模型。
在一些可实现方式中,选择模块650具体用于:确定第二模型中至少一组相邻层各自的复杂度;基于至少一组相邻层各自的复杂度选择至少一组目标相邻层。
在一些可实现方式中,选择模块650具体用于:确定每组相邻层的输入层维度和输出层维度;基于每组相邻层的输入层维度和输出层维度确定每组相邻层的复杂度。
在一些可实现方式中,选择模块650具体用于:计算每组相邻层的输入层维度与2的乘积,得到乘积结果;计算乘积结果与1的差值,得到差值结果;计算差值结果与每组相邻层的输出层维度之积,得到每组相邻层的复杂度。
在一些可实现方式中,每组目标相邻层对应的N个第一剪枝权重是通过将N个初始值输入至目标函数得到的。
在一些可实现方式中,目标函数是sigmoid函数或者ReLu函数。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图6所示的装置600可以执行图3对应的方法实施例,并且装置600中的各个模块的前述和其它操作和/或功能分别为了实现图3中的各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置600。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。在一些可实现方式中,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图7是本申请实施例提供的电子设备的示意性框图。
如图7所示,该电子设备可包括:
存储器710和处理器720,该存储器710用于存储计算机程序,并将该程序代码传输给该处理器720。换言之,该处理器720可以从存储器710中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器720可用于根据该计算机程序中的指令执行上述方法实施例。
在本申请的一些实施例中,该处理器720可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器710包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器710中,并由该处理器720执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备中的执行过程。
如图7所示,该电子设备还可包括:
收发器730,该收发器730可连接至该处理器720或存储器710。
其中,处理器720可以控制该收发器730与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器730可以包括发射机和接收机。收发器730还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (15)
1.一种模型剪枝方法,其特征在于,包括:
确定第一模型的目标损失函数,所述第一模型的至少一组目标相邻层中每组目标相邻层之间设置有对应的剪枝权重层,所述剪枝权重层包括N个第一剪枝权重,所述N个第一剪枝权重与对应的目标相邻层的输入层维度一一对应,N为大于1的整数;
根据所述目标损失函数训练所述第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;
对训练后模型的目标输入层维度进行剪除,并对所述训练后模型中输出层维度与所述目标输入层维度之间的连接进行剪除;所述目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。
2.根据权利要求1所述的方法,其特征在于,所述确定第一模型的目标损失函数,包括:
确定所述第一模型的原始损失函数和每组目标相邻层对应的N个第一剪枝权重的平均剪枝权重;
根据每组目标相邻层对应的N个第一剪枝权重和平均剪枝权重确定每组目标相邻层对应的正则化项;
根据所述原始损失函数和每组目标相邻层对应的正则化项确定所述第一模型的目标损失函数。
3.根据权利要求2所述的方法,其特征在于,所述根据每组目标相邻层对应的N个第一剪枝权重和平均剪枝权重确定每组目标相邻层对应的正则化项,包括:
计算每组目标相邻层对应的N个第一剪枝权重构成的第一向量与对应的N个平均剪枝权重构成的第二向量的差向量;
计算每组目标相邻层对应的差向量的范数,得到每组目标相邻层对应的第一范数项;
根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项。
4.根据权利要求3所述的方法,其特征在于,所述根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项之前,还包括:
计算每组目标相邻层对应的第一向量的范数,得每组目标相邻层对应的第二范数项;
相应的,所述根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项,包括:
根据每组目标相邻层对应的第一范数项和第二范数项确定每组目标相邻层对应的正则化项。
5.根据权利要求4所述的方法,其特征在于,所述根据每组目标相邻层对应的第一范数项和第二范数项确定每组目标相邻层对应的正则化项,包括:
计算每组目标相邻层对应的第二范数项与对应的第一因子之积,得到每组目标相邻层对应的第一乘积项;
计算每组目标相邻层对应的第一乘积项与对应的第一范数项之差,得到每组目标相邻层对应的正则化项;
其中,每组目标相邻层对应的第一因子用于控制对应的N个第二剪枝权重中趋于所述两极中任一极的比例,以控制所述第一模型的压缩比例。
6.根据权利要求5所述的方法,其特征在于,每组目标相邻层对应的第一因子与所述第一模型的压缩比例呈线性关系。
7.根据权利要求3所述的方法,其特征在于,所述根据每组目标相邻层对应的第一范数项确定每组目标相邻层对应的正则化项,包括:
对每组目标相邻层对应的第一范数项取相反数,得到每组目标相邻层对应的正则化项。
8.根据权利要求2-7任一项所述的方法,其特征在于,所述根据所述原始损失函数和每组目标相邻层对应的正则化项确定所述第一模型的目标损失函数,包括:
计算每组目标相邻层对应的正则化项与对应的第二因子之积,得到每组目标相邻层对应的第二乘积项;
计算所述原始损失函数和每组目标相邻层对应的第二乘积项之和,得到所述目标损失函数。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述确定第一模型的目标损失函数之前,还包括:
获取第二模型;
在所述第二模型中选择所述至少一组目标相邻层;
在每组目标相邻层之间添加对应的剪枝权重层,以生成所述第一模型。
10.根据权利要求9所述的方法,其特征在于,所述在所述第二模型中选择所述至少一组目标相邻层,包括:
确定所述第二模型中至少一组相邻层各自的复杂度;
基于所述至少一组相邻层各自的复杂度选择所述至少一组目标相邻层。
11.根据权利要求10所述的方法,其特征在于,所述确定所述第二模型中至少一组相邻层各自的复杂度,包括:
确定每组相邻层的输入层维度和输出层维度;
基于每组相邻层的输入层维度和输出层维度确定每组相邻层的复杂度。
12.根据权利要求11所述的方法,其特征在于,所述基于每组相邻层的输入层维度和输出层维度确定每组相邻层的复杂度,包括:
计算每组相邻层的输入层维度与2的乘积,得到乘积结果;
计算所述乘积结果与1的差值,得到差值结果;
计算所述差值结果与每组相邻层的输出层维度之积,得到每组相邻层的复杂度。
13.一种模型剪枝装置,其特征在于,包括:
确定模块,用于确定第一模型的目标损失函数,所述第一模型的至少一组目标相邻层中每组目标相邻层之间设置有对应的剪枝权重层,所述剪枝权重层包括N个第一剪枝权重,所述N个第一剪枝权重与对应的目标相邻层的输入层维度一一对应,N为大于1的整数;
训练模块,用于根据所述目标损失函数训练所述第一模型,以使每组目标相邻层对应的N个第一剪枝权重经过训练后得到的N个第二剪枝权重趋于两极;
剪枝模块,用于对训练后模型的目标输入层维度进行剪除,并对所述训练后模型中输出层维度与所述目标输入层维度之间的连接进行剪除;所述目标输入层维度是对应的第二剪枝权重小于预设阈值的输入层维度。
14.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211176919.7A CN117035038A (zh) | 2022-09-26 | 2022-09-26 | 模型剪枝方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211176919.7A CN117035038A (zh) | 2022-09-26 | 2022-09-26 | 模型剪枝方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN117035038A true CN117035038A (zh) | 2023-11-10 |
Family
ID=88632372
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211176919.7A Pending CN117035038A (zh) | 2022-09-26 | 2022-09-26 | 模型剪枝方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN117035038A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118503546A (zh) * | 2024-07-18 | 2024-08-16 | 广州博今网络技术有限公司 | 一种基于关联对象的表单数据推送方法及系统 |
-
2022
- 2022-09-26 CN CN202211176919.7A patent/CN117035038A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118503546A (zh) * | 2024-07-18 | 2024-08-16 | 广州博今网络技术有限公司 | 一种基于关联对象的表单数据推送方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11694109B2 (en) | Data processing apparatus for accessing shared memory in processing structured data for modifying a parameter vector data structure | |
| CN114240555B (zh) | 训练点击率预测模型和预测点击率的方法和装置 | |
| US12086713B2 (en) | Evaluating output sequences using an auto-regressive language model neural network | |
| CN113869420B (zh) | 基于对比学习的文本推荐方法及相关设备 | |
| US20250363176A1 (en) | Recommendation method and related device | |
| CN112131261B (zh) | 基于社区网络的社区查询方法、装置和计算机设备 | |
| CN113342474A (zh) | 客户流量的预测、模型训练的方法、设备及存储介质 | |
| CN116684330A (zh) | 基于人工智能的流量预测方法、装置、设备及存储介质 | |
| CN115600017A (zh) | 特征编码模型训练方法及装置、媒体对象推荐方法及装置 | |
| CN113792163A (zh) | 多媒体推荐方法、装置、电子设备及存储介质 | |
| CN117035038A (zh) | 模型剪枝方法、装置、设备及存储介质 | |
| CN117217278A (zh) | 模型训练方法、文本召回方法、设备、介质及程序产品 | |
| CN114547308B (zh) | 文本处理的方法、装置、电子设备及存储介质 | |
| CN116401522A (zh) | 一种金融服务动态化推荐方法和装置 | |
| CN117216367A (zh) | 内容推荐方法、内容推荐模型训练的方法和装置 | |
| CN111489196B (zh) | 基于深度学习网络的预测方法、装置、电子设备及介质 | |
| WO2020151318A1 (zh) | 基于爬虫模型的语料构建方法、装置及计算机设备 | |
| CN114385828B (zh) | 产品推荐方法、装置、介质及电子设备 | |
| CN117076900A (zh) | 数据处理方法、装置、设备及存储介质 | |
| CN116975221A (zh) | 文本阅读理解方法、装置、设备及存储介质 | |
| CN117743673A (zh) | 资源召回方法 | |
| CN118733871A (zh) | 信息推荐方法、装置、电子设备及存储介质 | |
| CN116955410A (zh) | 一种查询改写服务的优化方法及相关装置 | |
| CN116701972B (zh) | 业务数据处理方法、装置、设备以及介质 | |
| CN114385917B (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 |