CN114492765A - 一种模型优化方法、装置、设备及存储介质、程序产品 - Google Patents
一种模型优化方法、装置、设备及存储介质、程序产品 Download PDFInfo
- Publication number
- CN114492765A CN114492765A CN202210171877.1A CN202210171877A CN114492765A CN 114492765 A CN114492765 A CN 114492765A CN 202210171877 A CN202210171877 A CN 202210171877A CN 114492765 A CN114492765 A CN 114492765A
- Authority
- CN
- China
- Prior art keywords
- model
- optimized
- operator
- hyper
- optimization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012549 training Methods 0.000 claims abstract description 126
- 238000004806 packaging method and process Methods 0.000 claims abstract description 28
- 238000005538 encapsulation Methods 0.000 claims description 61
- 230000006835 compression Effects 0.000 claims description 45
- 238000007906 compression Methods 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 7
- 238000011176 pooling Methods 0.000 claims description 7
- 230000004927 fusion Effects 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 21
- 238000013473 artificial intelligence Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 37
- 238000013136 deep learning model Methods 0.000 description 31
- 230000000694 effects Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013140 knowledge distillation Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 241000282414 Homo sapiens Species 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 238000004821 distillation Methods 0.000 description 2
- 238000013209 evaluation strategy Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- 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/096—Transfer learning
-
- 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
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
-
- 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
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种模型优化方法、装置、设备及存储介质、程序产品;本申请实施例可以应用于云技术、人工智能、智慧交通、车载等各种场景,涉及人工智能技术;该方法包括:获取待优化模型和控制参数;通过对待优化模型中的模型算子进行封装,确定待优化模型对应的超模型;其中,超模型的空间结构是动态变化的;依据模型算子和控制参数,确定待优化模型对应的配置搜索空间;模型算子至少包括:待优化模型中的一个网络层;基于配置搜索空间和所述待优化模型,对超模型进行训练,得到待优化模型对应的收敛超模型;从收敛超模型中搜索得到待优化模型对应的优化模型。通过本申请,能够减少模型优化时计算资源的消耗。
Description
技术领域
本申请涉及人工智能技术,尤其涉及一种模型优化方法、装置、设备及存储介质、程序产品。
背景技术
深度学习模型由于其优秀的特征提取、特征泛化能力,经常作为人工智能的核心支撑技术,被应用到各种场景中。为了使得深度学习模型能够具有更好的预测效果或预测效率,通常都会对训练好的深度学习模型进行模型优化,然后再将优化后的深度学习模型部署到应用场景中。然而,相关技术中,模型优化时的可选模型的在生成时需要消耗巨大的计算资源,从而导致模型优化过程存在计算资源消耗大的问题。
发明内容
本申请实施例提供一种模型优化方法、装置、设备及计算机可读存储介质、程序产品,能够减少模型优化时计算资源的消耗。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种模型优化方法,包括:
获取待优化模型和控制参数;所述待优化模型是经过训练的模型;
通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型;其中,所述超模型的空间结构是动态变化的;
依据所述模型算子和所述控制参数,确定所述待优化模型对应的配置搜索空间;所述模型算子至少包括:所述待优化模型中的一个网络层;
基于所述配置搜索空间和所述待优化模型,对所述超模型进行训练,得到所述待优化模型对应的收敛超模型;
从所述收敛超模型中搜索得到所述待优化模型对应的优化模型。
本申请实施例提供一种模型优化装置,包括:
数据获取模块,用于获取待优化模型和控制参数;所述待优化模型是经过训练的模型;
数据封装模块,用于通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型;其中,所述超模型的空间结构是动态变化的;
空间配置模块,用于依据所述模型算子和所述控制参数,确定所述待优化模型对应的配置搜索空间;所述模型算子至少包括:所述待优化模型中的一个网络层;
模型训练模块,用于基于所述配置搜索空间和所述待优化模型,对所述超模型进行训练,得到所述待优化模型对应的收敛超模型;
模型搜索模块,用于从所述收敛超模型中搜索得到所述待优化模型对应的优化模型。
在本申请的一些实施例中,所述数据封装模块,还用于依据所述待优化模型中的模型算子之间的连接关系,将所述待优化模型的所述模型算子划分为多个算子集合;针对每个所述算子集合,确定对应的封装变量;利用所述封装变量对每个所述算子集合中的模型算子进行封装,得到每个所述算子集合的所述模型算子所对应的封装算子;所述封装算子的空间结构是动态的;将利用所述封装算子拼接得到的模型,确定为所述待优化模型对应的所述超模型。
在本申请的一些实施例中,所述数据封装模块,还用于依据所述待优化模型中的模型算子之间的连接关系,确定所述模型算子对应的输出算子;所述输出算子的输入数据是所述模型算子的输出数据;利用所述输出算子,将所述待优化模型的所述模型算子划分为多个所述算子集合;其中,同一个所述算子集合中的模型算子存在相同的输出算子。
在本申请的一些实施例中,所述数据封装模块,还用于将所述封装变量与每个所述算子集合中的模型算子的输出通道数进行融合,得到每个所述算子集合的所述模型算子所对应的封装算子。
在本申请的一些实施例中,所述模型优化装置还包括:算子合并模块;所述算子合并模块,用于获取待优化模型和控制参数之后,通过对所述模型算子进行封装,确定所述待优化模型对应的超模型之前,从所述待优化模型中,解析得到所述待优化模型的卷积层,以及所述卷积层对应的附属网络层;其中,所述附属网络层至少包括:池化层和激活层;将所述卷积层和所述卷积层所对应的附属网络层,合并为所述待优化模型的所述模型算子。
在本申请的一些实施例中,所述控制参数包括:多个子模型配置参数;所述空间配置模块,还用于利用多个所述子模型配置参数,对每个所述模型算子的空间结构参数分别进行调整,得到每个所述模型算子对应的多个更新结构参数;将利用每个所述模型算子对应的多个所述更新结构参数所构成的搜索空间,确定为所述待优化模型对应的所述配置搜索空间。
在本申请的一些实施例中,所述模型训练模块,还用于将所述待优化模型的副本,确定为教师模型;通过迭代i进行以下处理,1≤i≤N,N为迭代总次数:对所述配置搜索空间进行第i次采样,得到第i个模型配置信息;利用第i个所述模型配置信息,从所述超模型中创建出与第i个所述模型配置信息相对应的子模型;基于所述教师模型,对所述子模型进行训练,得到第i个所述模型配置信息对应的收敛子模型;当完成对i的迭代时,将N个所述模型配置信息对应的所述收敛子模型的集合,确定为所述收敛超模型。
在本申请的一些实施例中,所述模型训练模块,还用于基于所述子模型对获取到的训练数据的第一预测结果、所述教师模型对所述训练数据的第二预测结果,以及所述训练数据的标签信息,确定第i个所述模型配置信息对应训练损失值;利用第i个所述模型配置信息对应所述训练损失值,对所述子模型的参数进行调整,并在参数调整完成时,得到第i个所述模型配置信息对应的所述收敛子模型。
在本申请的一些实施例中,所述模型训练模块,还用于针对所述子模型对所述训练数据的所述第一预测结果,以及所述训练数据的标签信息进行差异计算,得到第一差异值;针对所述子模型对所述训练数据的所述第一预测结果,以及所述教师模型对所述训练数据的第二预测结果进行差异计算,得到第二差异值;将所述第一差异信息和所述第二差异信息的融合结果,确定为所述训练损失值。
在本申请的一些实施例中,所述模型搜索模块,还用于从所述收敛超模型中,筛选预测准确度与所述待优化模型的预测准确度相同的子模型,作为初始压缩模型;从所述初始压缩模型中,搜索所述预测速度大于所述待优化模型的预测速度的子模型,作为所述待优化模型对应的所述优化模型。
在本申请的一些实施例中,所述模型搜索模块,还用于从所述收敛超模型中,筛选预测速度与所述待优化模型的预测速度相同的子模型,作为初始调优模型;从所述初始调优模型中,搜索所述预测准确度大于所述待优化模型的预测准确度的子模型,作为所述待优化模型对应的所述优化模型。
本申请实施例提供一种模型优化设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的模型优化方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的模型优化方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本申请实施例提供的模型优化方法。
本申请实施例具有以下有益效果:模型优化设备是先确定出模型算子的通道数是动态可变的超模型,然后利用配置搜索空间和待优化模型,对超模型进行训练,从而仅通过一次训练,就能够得到能够用于搜索预测效果或预测效率更好的收敛超模型,减少了生成可选的模型的次数,也就降低了模型优化时所消耗的计算资源。
附图说明
图1是模型结构搜索的流程示意图;
图2是本申请实施例提供的模型优化系统的架构示意图;
图3是本申请实施例提供的图1中的服务器的结构示意图;
图4是本申请实施例提供的模型优化方法的一个流程示意图;
图5是本申请实施例提供的模型优化方法的另一个流程示意图;
图6是本申请实施例提供的待优化模型和超模型的对比示意图;
图7是本申请实施例提供的模型优化方法的又一个流程示意图;
图8是本申请实施例提供的训练超模型的示意图;
图9是本申请实施例提供的模型结构压缩的过程示意图;
图10是本申请实施例提供的模型结构搜索的过程示意图;
图11是本申请实施例提供的模型结构压缩和模型结构搜索的过程示意图;
图12是本申请实施例提供的输入模型的拓扑结构示意图;
图13是本申请实施例提供的知识蒸馏的示意图;
图14是本申请实施例提供的输入模型和压缩模型的超分辨率重建一种效果对比图;
图15是本申请实施例提供的输入模型和压缩模型的超分辨率重建另一种效果对比图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
2)机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
3)深度学习(Deep Learning,DL)是机器学习的一个研究分支。深度学习通过多层处理,将低层特征组合为更加抽象的高层表示或特征,以发现数据的分布式特征表示。典型的深度学习模型有卷积神经网络(Convolutionaal Neural Network,CNN)模型、深度信任网络(Deep Belief Nets,DBN)模型和堆栈自编码网络模型(Stacked Auto-EncoderNetwork)等。
4)模型优化,对已经完成训练的深度学习模型进行优化,使得深度学习模型在分类准确度、识别准确度等预测效果上得到提升,或者使得深度学习模型在参数量和计算时间等预测效率上得到提升。
模型优化一般是通过在可选的模型范围中搜索预测效率不变,预测效果更好的模型,或者是搜索预测效果不变,预测效率更好的模型来实现。
5)模型结构搜索,是指于对深度学习模型进行优化,以使得深度学习模型的预测效率保持不变,预测效果得到提升。模型结构搜索具体是对神经网络结构进行搜索,是一种自动设计神经网络结构的技术。相比于手动设计的神经网络结构,自动设计的神经网络结构在面对固定的数据集合训练方法时,往往有更加优异的效果性能。
图1是模型结构搜索的流程示意图。参见图1,先依据搜索策略1-2从搜索空间1-1中搜索出网络结构1-3,然后再利用性能评估策略1-4,对网络结构进行评估,在评估不合格1-5时,重新依据搜索策略1-2在搜索空间1-1中搜索网络结构。
6)模型参数压缩,是将深度学习模型小型化的同时尽可能保持模型的预测效果的技术。也即,通过模型参数压缩,可以减少深度学习模型的参数和计算量,提高深度模型的推理速度,降低深度学习模型的推理成本,而不损失深度学习模型的预测效果。
一般来说,没有经过模型参数压缩的深度学习模型会消耗大量的计算和内存资源,如果要将深度学习模型应用到业务场景中,为了不影响使用体验,必须要经过模型参数压缩降低深度学习模型的参数量。
7)搜索空间,定义了可以搜索的神经网络结构的集合,即定义的模型优化时可选的模型范围。
8)搜索策略,定义了在模型优化时如何在搜索空间中寻找最优的模型方式。
9)性能评估策略,定义了如何评估搜索出的模型的性能。
随着人工智能技术的研究和进步,人工智能技术在多个领域展开研究和应用,例如场景的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等。相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
深度学习模型由于其优秀的特征提取、特征泛化能力,经常作为人工智能的核心支撑技术,被应用到各种场景中。为了使得深度学习模型能够具有更好的预测效果或预测效率,通常都会对训练好的深度学习模型进行模型优化,然后再将优化后的深度学习模型部署到应用场景中。
相关技术中,在模型优化是通过从可选的模型中搜索出在预测效果或预测效率较优的模型来实现的,并且,可选的模型中的每个模型都需要进行训练,从而需要经过多次模型训练过程才能得到可选的模型。然而,每个模型的训练过程均消耗巨大的计算资源,如此,使得模型优化时的可选模型的生成过程需要消耗巨大的计算资源,也就使得模型优化过程存在计算资源消耗大的问题。
除此之外,在相关技术中,模型优化往往是针对于特定的任务设计的,例如,针对医学图像分割场景的模型进行压缩,或者是对量化位宽的最优模型进行搜索,从而使得模型优化难以快速部署和应用到其他场景中去,使得模型优化的通用性较差。同时,相关技术中,针对模型优化中的模型结构压缩和模型结构搜索,往往需要单独进行模型训练,即无法一次性完成模型结构压缩和模型结构搜索,使得模型优化的效率较低。
本申请实施例提供一种模型优化方法、装置、设备和计算机可读存储介质、程序产品,能够减少模型优化时计算资源的消耗,下面说明本申请实施例提供的模型优化设备的示例性应用,本申请实施例提供的模型优化设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器,还可以实时为由服务器和终端所构成的设备集群。下面,将说明模型优化设备实施为服务器时的示例性应用。
参见图2,图2是本申请实施例提供的模型优化系统的架构示意图,为实现支撑一个模型优化应用,在模型优化系统100中,终端400(示例性的示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。在模型优化系统100中,还设置有数据库500,以向服务器200提供数据支持。需要说明的是,数据库500可以独立于服务器200,也可以配置在服务器200中,图1中是数据库500独立于服务器200的情况。
终端400-1用于在图形界面410-1上接收用户的操作,指定待优化模型,以及用于对待优化模型的空间结构进行调整的控制参数,并将待优化模型和控制参数通过网络300发送给服务器200。
服务器200用于获取待优化模型和控制参数,其中,待优化模型是经过训练的模型;通过对待优化模型中的模型算子进行封装,确定待优化模型对应的超模型;其中,超模型的空间结构是动态变化的;依据模型算子和控制参数,确定待优化模型对应的配置搜索空间,其中,模型算子至少包括:待优化模型中的一个网络层;基于配置搜索空间和待优化模型,对超模型进行训练,得到收敛超模型;从收敛超模型中搜索得到待优化模型对应的优化模型,完成模型优化,并将所得到的优化模型发送给终端400-2。
终端400-2用于在图形界面410-2接收用户的操作,调用优化模型实现图像分类等推理运算。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家电、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
参见图3,图3是本申请实施例提供的图1中的服务器(模型优化设备)的结构示意图,图3所示的服务器200包括:至少一个处理器210、存储器250、至少一个网络接口220和用户接口230。服务器200中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统240。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口230包括使得能够呈现媒体内容的一个或多个输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口230还包括一个或多个输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在包括任意适合类型的存储器。
在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块253,用于经由一个或多个与用户接口230相关联的输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块254,用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的模型优化装置可以采用软件方式实现,图3示出了存储在存储器250中的模型优化装置255,其可以是程序和插件等形式的软件,包括以下软件模块:数据获取模块2551、数据封装模块2552、空间配置模块2553、模型训练模块2554、模型搜索模块2555和算子合并模块2556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,服务器可以通过运行计算机程序来实现本申请实施例提供的模型优化方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如模型优化APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
本申请实施例可以应用于云技术、人工智能、智慧交通、车载等各种场景。下面,将结合本申请实施例提供的模型优化设备的示例性应用和实施,说明本申请实施例提供的模型优化方法。
参见图4,图4是本申请实施例提供的模型优化方法的一个流程示意图,将结合图4示出的步骤进行说明。
S101、获取待优化模型和控制参数。
本申请实施例是在对训练好的模型进行优化的场景下实现的,例如,对训练好的图像分类模型进行结构压缩,或者是针对训练好的图像分类模型搜索预测效果更好的模型的场景下实现的。本申请实施例中,模型优化设备可以通过响应于工作人员的操作指令,或者是定时开始模型优化过程。当模型优化过程开始时,模型优化设备会先获取等待进行优化的深度学习模型,即获取待优化模型,同时获取控制参数。其中,控制参数用于确定待优化模型对应的配置搜索空间。
需要说明的是,待优化模型是经过训练的模型,即待优化模型是已经针对业务场景设计并训练好的深度学习模型。待优化模型可以是卷积神经网络模型,也可以是人工神经网络模型,还可以是循环神经网络模型等,本申请实施例在此不做限制。
可以理解的是,控制参数可以是由工作人员指定的,也可以是由模型优化设备依据待优化模型的结构自动生成的。例如,依据待优化模型中最小的通道数和最大的通道数的比值,确定为控制参数,或者是将各个网络层的通道数与通道数总和的比值,确定为控制参数。
本申请实施例中,控制参数的数量可以不唯一,即针对同一个待优化模型,可以具有多个控制参数。
S102、通过对待优化模型中的模型算子进行封装,确定待优化模型对应的超模型。
模型优化设备将待优化模型中的每个模型算子进行封装,并将封装之后的模型算子,按照各个模型算子原先的顺序进行拼接,就能够得到待优化模型所对应的超模型。
需要说明的是,超模型的空间结构是动态变化的,也就是说,模型优化设备通过对模型算子进行封装,利用未知的封装变量对模型算子的通道数、宽度或高度等固定值进行替换,或者用未知的封装变量与模型算子的通道数、宽度或高度进行融合,使得模型算子的通道数、宽度或高度等由原先的固定值,变为一个随着变量的变化而动态变化的值(也可理解为模型算子的形状是动态变化的),从而利用通道数、宽度或高度是动态可变的模型算子所形成的超模型,本身就可以看作一个动态的模型的集合。
本申请实施例中,模型优化设备可以通过在待优化模型的每个模型算子的空间结构参数上融合上一个未知的封装变量,实现对模型算子的封装,从而当模型算子的通道数的动态变化范围,与该封装变量的取值范围相对应。
S103、依据模型算子和控制参数,确定待优化模型对应的配置搜索空间。
模型优化设备依据待优化模型中的模型算子和控制参数,先确定出待优化模型的每个模型算子可以进行的变化,然后利用配置参数对各个模型算子的可以进行的变化进行表示,得到每个模型算子可以选择的配置参数范围,将这些配置参数范围集中到同一个搜索空间(例如向量空间)中,就能得到待优化模型配置搜索空间。
需要说明的是,模型算子是待优化模型中具有完整的功能的网络结构,例如,卷积层、池化层等网络层(网络层中的单个神经元无法具有完整的功能,从而不是模型算子)。当然,在一些实施例中,模型算子也可以是将多个网络层联合起来,作为一个功能单元,例如由嵌入层、卷积层等连接而成的特征编码器,此时,该特征编码器就是一个模型算子。也就是说,本申请实施例中,模型算子至少包括:待优化模型中的一个网络层。
需要说明的是,确定配置搜索空间,实际就是为每个模型算子所对应的未知的封装变量,确定具体的可选值,以在后续的训练过程通过这些可选值,能够将封装了的模型算子具象化为一个个变体算子,从而实现将超模型具象化为一个个子模型。
示例性的,当待优化模型的具有3个模型算子,分别为为Conv1、Conv2和Conv3,其通道数分别Channel1、Channel2和Channel3,模型优化设备对这3个模型算子进行封装,就可以是对这3个的模型算子的通道数融合未知的封装变量,从而得到Super1Channel1、Super2Channel2和Super3Channel3,而配置搜索空间,则是用于给Super1、Super2和Super3指定具体的可选的比例范围,例如Super1可选[0.1,0.5]、Super2可选[0.8,1]、Super3可选[0.6,1.0]等等。如此,通过对配置搜索空间进行采样,能够确定出具象化的子模型的各个模型算子的通道数配置,从而明确子模型的配置。
可以理解的是,S102和S103的执行顺序并不会对超模型的训练造成影响,从而,在一些实施例中,模型优化设备还可以先执行S103,再执行S102,或者是同时执行S102和S103,本申请实施例在此不做限定。
S104、基于配置搜索空间和待优化模型,对超模型进行训练,得到待优化模型对应的收敛超模型。
模型优化设备在得到配置搜索空间和超模型之后,就会同时依据配置搜索空间和待优化模型,对超模型进行模型训练,使得超模型的模型参数收敛,直到达到训练结束条件,例如迭代次数达到一定程度,或者是超模型的准确度达到一定程度时,得到收敛超模型。
需要说明的是,模型优化设备针对超模型进行训练,实际上就是针对从待优化模型中衍生出来的动态的模型的集合进行训练,从而只需要经过一次训练,就可以得到能够选择出比原先待优化模型的预测效果或预测效率更好的收敛超模型,无需再对所有可选的模型分别进行模型训练,从而减少了模型训练时所需要消耗的计算资源。
在本申请的一些实施例中,模型优化设备可以通过根据从配置搜索空间中采样到的通道配置参数,从超模型中生成具体的子模型,然后在训练的每次迭代过程,并通过对待优化模型进行知识蒸馏,约束不同的子模型的参数更新过程,直至达到迭代次数时,将所得到的子模型集合确定为收敛超模型。
在本申请的另一些实施例中,模型优化设备还可以先依据配置搜索空间,从超模型中确定出每个模型算子的变体,然后利用每个模型算子的变体,对待优化模型中每个模型算子依次进行替换(每次只替换一个变体),从而针对添加了模型算子的变体的待优化模型重新进行微调,以得到模型算子训练后的变体,再将训练后的变体所生成的各个子模型的集合,确定为收敛超模型。
S105、从收敛超模型中搜索得到待优化模型对应的优化模型。
模型优化设备在得到收敛超模型之后,可以根据给定的限制条件,或者给定的指标标准,亦或者是通过随机选取,从收敛超模型中搜索预测效果和预测效率均最高的子模型,作为优化模型,或者是搜索满足业务场景的条件的子模型,作为优化模型。如此,就完成了针对待优化模型的模型优化过程。
可以理解的是,相比于相关技术中需要经过多次模型训练过程才能得到可选的模型,本申请实施例中,模型优化设备是先确定出模型算子的通道数是动态可变的超模型,然后利用配置搜索空间和待优化模型,对超模型进行训练,从而仅通过一次训练,就能够得到能够用于搜索预测效果或预测效率更好的收敛超模型,减少了生成可选的模型的次数,也就降低了模型优化时所消耗的计算资源。
基于图4,参见图5,图5是本申请实施例提供的模型优化方法的另一个流程示意图。在本申请的一些实施例中,通过对待优化模型中的模型算子进行封装,确定待优化模型对应的超模型,即S102的具体实现过程,可以包括:S1021-S1024,如下:
S1021、依据待优化模型中的模型算子之间的连接关系,将待优化模型的模型算子划分为多个算子集合。
模型算子之间的连接关系,即为待优化模型的拓扑结构。模型优化设备利用模型算子之间的连接关系,能够确定出那些模型算子的空间结构是必须保持相同的,从而将空间结构必须保持关联(例如相同)的模型算子划分到同一个算子集合中。模型优化设备在针对待优化模型的每个模型算子均确定出对应的算子集合时,就能得到多个算子集合。
可以理解的是,每个算子集合中,可以包括至少一个模型算子。
S1022、针对每个算子集合,确定对应的封装变量。
模型优化设备以算子集合为单位,确定对应的封装变量,这样,会使得空间结构必须保持相同的模型算子共享同一个封装变量,从而保证后续即使模型算子的通道数需要发生变化时,这些模型算子的通道数的变化量也是一致的。
S1023、利用封装变量对每个算子集合中的模型算子进行封装,得到每个算子集合的模型算子所对应的封装算子。
模型优化设备利用封装变量与对应的算子集合中的模型算子进行封装,就是指利用未知的封装变量,将模型算子的通道数、高度或宽度等空间结构参数进行模糊化,使其从确定值转换为不确定的、动态可变的,从而,封装算子的空间结构是动态的。
示例性的,当某个算子集合的封装变量为未知量x,所包含的模型算子的通道数(空间结构参数的一种)为8时,模型优化设备就是将该算子集合的中的模型算子的通道数变为8x。
S1024、将利用封装算子拼接得到的模型,确定为待优化模型对应的超模型。
模型优化设备将封装算子,按照待优化模型中各个模型算子原先的连接顺序进行拼接,所得到模型就是超模型。也就是说,超模型的各个封装算子的空间结构是未知量,是动态可变的,再后续能够根据采样到的配置参数生成具体的子模型。
可以理解的是,由于超模型的各个封装算子的空间结构是未知的,可以看做是在一定的范围内进行变换的,从而,超模型也可以看做是由不同的空间结构所组成的模型的集合。
示例性的,图6是本申请实施例提供的待优化模型和超模型的对比示意图。待优化模型6-1的空间结构是固定的,每个网络层(模型算子)的神经元数量(空间结构参数)只有一种取值,而超模型6-2则可以根据不同的模型配置生成不同的子模型,不同的子模型同一个网络层的神经元的数量不同,可见,超模型的空间结构是动态可变的。
本申请实施例中,模型优化设备能够依据模型算子之间的连接关系将各个模型算子进行分组,然后针对同一个组别中的模型算子,确定同一个封装变量,以保证同一个组别中的模型算子的空间结构在后续的变化相同。
在本申请的一些实施例中,依据待优化模型中的模型算子之间的连接关系,将待优化模型的模型算子划分为多个算子集合,即S1021的具体实现过程,可以包括:S1021a-S1021b,如下:
S1021a、依据待优化模型中的模型算子之间的连接关系,确定模型算子对应的输出算子。
本申请实施例中,输出算子的输入数据是模型算子的输出数据。模型优化设备先对模型算子的连接关系进行分析,以明确每个模型算子后续连接的是哪个模型算子,从而能够针对每个模型算子确定出下一级模型算子,该下一级模型算子就是输出算子。
在一些实施例中,待优化模型为残差网络时,待优化模型中就会存在跳连结构(即某个模型算子的输入,为在其之前的不相邻的两个模型算子的输出),从而模型优化设备针对一些模型算子,能够确定出多个对应的输出算子。
S1021b、利用输出算子,将待优化模型的模型算子划分为多个算子集合。
模型优化设备针对存在相同的输出算子的模型算子,划分到同一个算子集合中,而针对不存在相同的输出算子的模型算子,则分别建立其各自对应的算子集合(此时算子集合中的元素可以仅包含一个模型算子),如此,模型优化设备就能够针对每个模型算子,确定所属的算子集合,从而在对所有的模型算子划分完成时,就得到了多个算子集合。也就是说,本申请实施例中,同一个算子集合中的模型算子存在相同的输出算子。
示例性的,当模型算子a的输出算子为模型算子b和模型算子d,模型算子b的输出算子为模型算子c,而模型算子c的输出算子为模型算子d时,模型优化设备就会将模型算子a和模型算子c划分到同一个算子集合中,并针对模型算子c单独创建算子集合。由此,模型优化设备就能够得到多个算子集合。
本申请实施例中,模型优化设备可以根据模型算子的连接关系,确定出每个模型算子的输出算子,然后在利用不同的模型算子的输出算子是否存在交集,对每个模型算子进行分组,以便于后续以算子集合为单位确定对应的封装变量,从而保证空间结构必须要保持联系的模式算子共享同一个封装变量。
在本申请的一些实施例中,空间结构参数包括:输出通道数,此时,利用封装变量对每个算子集合中的模型算子进行封装,得到每个算子集合的模型算子所对应的封装算子,即S1023的具体实现过程,可以包括:S1023a,如下:
S1023a、将封装变量与每个算子集合中的模型算子的输出通道数进行融合,得到每个算子集合的模型算子所对应的封装算子。
当空间结构参数中包括模型算子的输出通道数时,模型优化设备就是通过利用每个算子集合所对应的封装变量与模型算子进行融合,完成对每个算子集合所包含的模型算子的模糊化,以实现对每个算子集合所包含的模型算子的输出通道数的封装,封装了输出通道数的模型算子,便为模型算子对应的封装算子。
本申请实施例中,模型优化设备能够利用封装变量对模型算子的输出通道数进行封装,从而使得每个算子集合中的模型算子的输出通道数的变化保持一致。
基于图4,参见图7,图7是本申请实施例提供的模型优化方法的又一个流程示意图。在本申请的一些实施例中,获取待优化模型和控制参数之后,通过对待优化模型中的模型算子进行封装,确定待优化模型对应的超模型之前,即在S101之后,S102之前,该方法还可以包括:S106-S107,如下:
S106、从待优化模型中,解析得到待优化模型的卷积层,以及卷积层对应的附属网络层。
模型优化设备对待优化模型的网络层进行解析,以确定出待优化模型中的卷积层,以及除了卷积层之前的各个网络层。一般来说,卷积神经网络中会在卷积层之后,设置用于对该卷积层的输出特征进行降维处理的池化层,以及激活处理的激活层,从而,可以将连接在每个卷积层之后的池化层和激活层,看作是每个卷积层所对应的附属网络层(卷积层和其对应的附属网络层常常作为一个处理模块,出现在卷积神经网络中)。这样,模型优化设备就可以从待优化模型中,提取出卷积层,以及与卷积层相对应的附属网络层。可见,附属网络层至少包括:池化层和激活层。
S107、将卷积层和卷积层所对应的附属网络层,合并为待优化模型的模型算子。
模型优化设备将卷积层,以及与卷积层相互对应的附属网络层合并为一个模型算子,并在对所有的卷积层都完成了该操作之后,就能够得到待优化模型的不同模型算子。
本申请实施例中,模型优化设备会将每个卷积层,以及用于对每个卷积层的输出特征进行处理的网络层,打包为模型算子,以便于后续针对模型算子进行封装。
在本申请的一些实施例中,控制参数包括:多个子模型配置参数,从而,依据待模型算子和控制参数,确定待优化模型对应的配置搜索空间,即S103的具体实现过程,可以包括:S1031-S1032,如下:
S1031、利用多个子模型配置参数,对每个模型算子的空间结构参数分别进行调整,得到每个模型算子对应的多个更新结构参数。
模型优化设备将每个模型算子的空间结构参数,例如输出通道数,或者输入通道数,分别与多个子模型配置参数进行融合,以通过融合子模型配置参数,来对每个模型算子的空间结构参数进行调整。可以理解的是,一个子模型配置参数会对每个模型算子的空间结构参数进行一次调整,得到一个更新结构参数。从而,在利用多个子模型配置参数分别对每个模型算子的空间结构参数进行调整之后,模型优化设备能够针对每个模型算子得到多个更新结构参数。
S1032、将利用每个模型算子对应的多个更新结构参数所构成的搜索空间,确定为待优化模型对应的配置搜索空间。
模型优化设备将每个模型算子所对应的每个更新结构参数都确定为一个搜索向量,并利用多个搜索向量构成一个搜索空间,该搜索空间就是待优化模型对应的配置搜索空间。
本申请实施例中,模型优化设备会利用多个子模型配置参数分别对每个模型算子的空间结构参数进行调整,并利用每个模型算子对应的多个更新结构参数构成搜索空间,从而得到能够在后续进行配置参数采样的配置搜索空间。
在本申请的一些实施例中,基于配置搜索空间和所述待优化模型,对超模型进行训练,得到待优化模型对应的收敛超模型,即S104的具体实现过程,可以包括:S1041-S1045,如下:
S1041、将待优化模型的副本,确定为教师模型。
模型优化设备对待优化模型进行拷贝处理,以生成待优化模型的副本,并将所生成的副本,作为后续训练中的教师模型。
接着,通过迭代i进行S1042至S1044的处理,其中,1≤i≤N,N为迭代总次数:
S1042、对配置搜索空间进行第i次采样,得到第i个模型配置信息。
模型优化设备在训练超模时,会在训练的每一次迭代,都从配置搜索空间进行一次采样,得到该次采样所对应的模型配置信息。模型配置信息给出了需要从超模型中创建的子模型的空间结构配置,例如输出通道数、卷积核的尺寸等等。
S1043、利用第i个模型配置信息,从超模型中创建出与第i个模型配置信息相对应的子模型。
模型优化设备在得到每次采样所得到模型配置信息之后,就会利用该模型配置信息,将超模型信息进行具象化,即将该模型配置信息中所给出的空间结构的具体变化取值,赋值各个封装算子的封装变量,使得封装变量从未知量变为确定值,这样,就能够针对模型配置信息,确定一个子模型,即得到与每次采样所得到的模型配置信息相对应的子模型。
示例性的,当模型配置信息表明某个模型算子的输出通道数为原通道数的0.25倍时,模型优化设备就是利用0.25给封装变量赋值,从而对该模型算子的封装算子进行具象化,得到该模型算子的变体。当依据模型配置信息对超模型的所有封装算子都进行了该处理之后,就能够得到与该模型配置信息相对应的子模型。
S1044、基于教师模型,对子模型进行训练,得到第i个模型配置信息对应的收敛子模型。
模型优化设备利用待优化模型指导子模型的训练,即利用待优化模型的参数信息作为先验信息,引入到子模型的参数更新中,不仅能够提升子模型的泛化性能,还能够提升子模型的训练速度。在第i次迭代完成时,模型优化设备会得到第i个模型配置信息相对应的收敛子模型。
在将i迭代至N时,进行S1045的处理。
S1045、当完成对i的迭代时,将N个模型配置信息分别对应的收敛子模型的集合,确定为收敛超模型。
当模型优化设备完成对i的迭代时,即i迭代至N,且完成了对第N个模型配置信息对应的子模型的训练时,模型优化设备会利用N个模型配置信息分别对应的收敛子模型组成集合,并将该集合确定为收敛超模型。也就是说,收敛超模型等价于收敛子模型的集合。
可以理解的是,迭代从次数可以与配置搜索空间的大小相等,也可以是人为设置的,本申请实施例中在此不做限定。
示例性的,图8是本申请实施例提供的训练超模型的示意图。在第t-1次迭代8-1、第t次迭代8-2和第t+1次迭代8-3时,模型优化设备均会从配置搜索空间8-4中进行采样,得到t-1次迭代8-1对应的模型配置信息8-5、第t次迭代8-2对应的模型配置信息8-6和第t+1次迭代8-3对应的模型信息8-7。然后在第t-1次迭代8-1、第t次迭代8-2和第t+1次迭代8-3各自的过程中,会分别从超模型8-8中生成第t-1次迭代8-1对应的子模型8-9、第t次迭代8-2对应的子模型8-10和第t+1次迭代8-3对应的子模型8-11。之后,在每次迭代时,模型优化设备会利用教师模型8-13,指导子模型8-9、子模型8-10和子模型8-11的参数更新8-12过程,直至完成第t+1次迭代8-3时,将子模型8-9、子模型8-10和子模型8-11所组成的集合,确定为收敛超模型。
本申请实施例中,模型优化设备会在每次迭代时,都从超模型中创建出一个子模型,并利用对待优化模型拷贝所生成的副本,指导子模型的训练,得到收敛子模型,从而完成对超模型的一次迭代更新。在迭代完成时,就能够得到收敛超模型。也就是说,本申请实施例只需要一次训练,就能够完成对超模型的更新,得到可以进行模型搜索的收敛超模型,也就降低了模型优化时所消耗的计算资源。
在本申请的一些实施例中,基于教师模型,对子模型进行训练,得到第i个模型配置信息对应的收敛子模型,即S1044的具体实现过程,可以包括:S1044a-S1044b,如下:
S1044a、基于子模型对获取到的训练数据的第一预测结果、教师模型对训练数据的第二预测结果,以及训练数据的标签信息,确定第i个模型配置信息对应训练损失值。
模型优化设备将获取到的训练数据输入到第i个模型配置信息对应的子模型中,将该子模型对训练数据的预测结果确定为第一预测结果。同时,模型优化设备将训练数据输入到教师模型中,将教师模型所输出的预测结果确定为第二预测结果。接着,模型优化设备会利用第一预测结果、第二预测结果和训练数据的标签信息,进行损失值的计算,如此,就能得到第i个模型配置信息对应的训练损失值。
S1044b、利用第i个模型配置信息对应训练损失值,对子模型的参数进行调整,并在参数调整完成时,得到第i个模型配置信息对应的收敛子模型。
接着,模型优化设备会将计算得到的损失值,在第i个模型配置信息对应的子模型中进行反向传播,以对子模型中的参数进行更新调整,在调整完成时,模型优化设备就能够得到第i个模型配置信息对应的收敛子模型。
在本申请的一些实施例中,基于子模型对获取到的训练数据的第一预测结果、教师模型对训练数据的第二预测结果,以及训练数据的标签信息,确定第i个模型配置信息对应训练损失值,即S1044a的具体实现过程,可以包括:S201-203,如下:
S201、针对子模型对训练数据的第一预测结果,以及训练数据的标签信息进行差异计算,得到第一差异值。
S202、针对子模型对训练数据的第一预测结果,以及教师模型对训练数据的第二预测结果进行差异计算,得到第二差异值。
模型优化设备对子模型对训练数据的第一预测结果,分别与训练数据的标签信息和第二预测结果进行差异计算,从而能够得到第一差异值和第二差异值。
S203、将第一差异信息和第二差异信息的融合结果,确定为训练损失值。
接着,模型优化设备可以通过加权求和,将第一差异信息和第二差异信息进行融合,或者是通过相乘,将第一差异信息和第二差异信息融合,将融合之后所得的的融合结果,作为最终的训练损失值。
可以理解的是,模型优化设备在对第一差异信息和第二差异信息进行加权时,加权权重可以是提前设置好的超参数。
本申请实施例中,模型优化设备可以将将教师模型对训练数据所计算出的第二预测结果,融合训练损失值中,以通过训练损失值将教师模型的参数信息作为子模型训练时的先验知识,以提高子模型的泛化能力和训练速度。
在本申请的一些实施例中,从收敛超模型中搜索得到待优化模型对应的优化模型,即S105的具体实现过程,可以包括:S1051-S1052,如下:
S1051、从收敛超模型中,筛选预测准确度与待优化模型的预测准确度相同的子模型,作为初始压缩模型。
S1052、从初始压缩模型中,搜索预测速度大于待优化模型的预测速度的模型,作为待优化模型对应的优化模型。
模型优化设备先从收敛超模型中,将预测准确度与待优化模型保持在同一水平的子模型筛选出来,作为初始压缩模型,然后再从初始压缩模型中,搜索预测速度比待优化模型更快的子模型,将搜索出来的子模型确定为最终的优化模型。如此,能够实现对待优化模型的模型结构压缩。
可以理解的是,初始压缩模型中可以包括至少一个预测准确度与待优化模型的预测准确度相同的子模型,并不是特指一个子模型。当然,在另一些实施例中,初始压缩模型也可以是预测准确度与待优化的预测准确度的差异值处于差异范围之内的子模型。
当然,在本申请的一些实施例中,从收敛超模型中搜索得到待优化模型对应的优化模型,即S105的具体实现过程,还可以包括:S1053-S1054,如下:
S1053、从收敛超模型中,筛选预测速度与待优化模型的预测速度相同的子模型,作为初始调优模型。
S1054、从初始调优模型中,搜索预测准确度大于待优化模型的预测准确度的子模型,作为待优化模型对应的优化模型。
模型优化设备还可以将预设速度与待优化模型保持在同一水平的子模型筛选出来,作为初始调优模型,并从初始调优模型中,搜索出预测准确度比待优化模型的更高的子模型,将该子模型作为优化模型。如此,能够实现对待优化模型的模型结构搜索。
可以理解的是,初始调优模型中可以包括至少一个预测速度与待优化模型的预测速度相同的子模型,并不是特指一个子模型。当然,在另一些实施例中,初始调优模型也可以是预测速度与待优化的预测速度的差异值处于差异范围之内的子模型。
本申请实施例中,模型优化设备能够利用同一个收敛超模型,同时实现对待优化模型的模型结构压缩和模型结构搜索,从而无需再针对模型结构压缩和模型结构搜索分别进行模型训练,使得模型优化的通用性更强,也更加容易部署到实际应用场景中。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例服务器是在对已经完成训练的深度学习模型进行模型结构压缩和模型结构搜索的场景下实现的。
需要说明的是,对深度学习模型(待优化模型)进行模型结构压缩,是指针对给定的模型,在保持预测效果的前提下,降低模型推理的时间,得到压缩后的模型(优化模型)。
图9是本申请实施例提供的模型结构压缩的过程示意图。模型结构压缩是指对于模型A1(已经完成训练),搜索9-1一个新的模型A2,其中,模型A1推理时间为T,准确率为P%,模型A2的推理时间为0.5T,准确率为P%。
对深度学习模型进行模型结构搜索,是针对给定的模型,在保持推理时间不变的情况下,提升模型预测的效果,得到性能更优秀的模型(优化模型)。
图10是本申请实施例提供的模型结构搜索的过程示意图。模型结构搜索是指针对待提升效果的模型B3,训练10-1一个更大规模的模型B1,然后从B1搜索10-2到最优的模型B2。其中,B3的推理时间为T,准确率为P%;B1的推理时间为T+m,准确率为(P+n)%;B2的推理时间为T,准确率为(P+n)%。
图11是本申请实施例提供的模型结构压缩和模型结构搜索的过程示意图。参见图11,该过程可以包括以下步骤:
S301、获取相关信息。相关信息包括:输入模型11-1(由包括3个卷积层,即卷积层11-11至卷积层11-13),确定搜索空间11-2和评估函数11-3。
假设输入模型为MW(待优化模型),其中,W为模型M的可学习参数集合,W={wi}i=1,…,l,l为输入模型MW的卷积层(模型算子)的数量, 是第i个卷积层的参数张量,outi和ini分别是第i个卷积层的输出通道数和输入通道数,ki是卷积核的大小。需要说明的是,输入模型MW是已经训练好的,等待进行优化或者压缩的模型,其可以是分类任务的模型,也可以是超分辨率重建任务的模型。
搜索空间(配置搜索空间)是根据人为设置的配置超参数集合(控制参数),以及卷积层的通道数(模型算子的空间结构参数)确定出的。搜索空间表示为S={si}i=1,..n,n为搜索空间的大小。其中,搜索空间中的每个配置 且这里的si可以理解为一个跟卷积层的数量对应的l维整型向量。一般来说,由于深度学习模型自身拓扑结构的影响,si的长度可能会小于l。在搜索空间S中,第i个配置si的第j个元素(即第j个卷积层)可以选择的空间取决于认为设定的超参数集合A=[a1%,……,am%](多个子模型配置参数),所以搜索空间S的大小为n=ml。si是输入模型被封装成超模型之后,可以采用的子模型的配置组合,其中的每个元素对应于卷积层参数的输出通道的相关集合,例如si∈{0.25outi,0.5outi,0.75outi,outi}(多个更新结构参数)。
性能评估函数是根据不同的任务所指定的不同的评估方法,例如,针对分类任务可以指定分类准确率和相应的测试集构成评估函数。评估函数用于评估从超模型中生成的子模型的效果。
S302、对输入模型进行结构解析。
深度学习模型通常具有一定的拓扑结构,输入模型也不例外,其中两个不相邻的卷积层之间可以存在联系。
示例性的,图12是本申请实施例提供的输入模型的拓扑结构示意图。输入模型12-1中包括4个卷积层,即卷积层12-11至卷积层12-14,其中,卷积层12-11的输出接入到卷积层12-12和卷积层12-14的输入,卷积层12-12的输出接入到卷积层12-13的输入,卷积层12-13的输出接入到卷积层12-14的输入。
out1=in2 (1)
out1=out3 (2)
out1=in4 (3)
其中,式(1)和式(3)是对深度学习模型结构分层所导致的自然结果,而式(2)则是由输入模型中的跳连接结构所带来的约束,表明了Conv1和Conv3的输出通道数量必须保持一致,从而,在搜索空间的配置中,Conv1和Conv3共享一个控制参数。基于此,服务器会将输入模型解析后会得到三个分组(算子集合),即{{Conv1,Conv3},{Conv2},{Conv4}}(可以看出,同一个算子集合中的模型算子存在相同的输出算子)。如果给定一个子模型配置s={0.25out1,0.5out2,0.75out4},那么,服务器就会封装所得的的超模型中,生成新的子模型 其中,Conv1和Conv3的输出通道数量一致,都由s1 1=0.25out1决定。也就是说,服务器针对输入模型进行结构解析,就是根据输入模型的拓扑结构将各个卷积算子(和卷积层含义类似)进行分组,每一个组内的卷积层共享搜索空间的一个配置中的一个控制参数(可以看出,每个算子集合都有对应的封装变量,控制参数即用于对该封装变量进行赋值),不同组的卷积层采样的控制参数不同。
S303、将解析得到的卷积算子封装为封装算子。
服务器根据对输入模型进行结构解析所得到的算子组别{{Conv1,Conv3},{Conv2},{Conv4}},对输入模型的算子进行封装,得到对应的封装算子为{{Super1Conv1,Super1Conv3},{Super2Conv2},{Super3Conv4}}(每个算子集合的模型算子所对应的封装算子),Super1至Super3为封装参数(封装变量),同时封装得到模型就为超模型Super_M。在图11的超模型11-4包括封装算子11-41,封装算子11-42和封装算子11-43。
超模型Super_M可以根据搜索空间中的不同配置,生成不同的子模型Sub_M,即搜索空间的配置和子模型是一一对应的。由此可以看出,超模型是一种动态的模型的集合,若是存在四种不同的子模型配置参数,则可以从超模型得到四种不同的子模型。超模型的这种性质实质上是由封装算子带来的,封装算子和普通的卷积算子的区别是,在训练和推理过程中,封装算子的输入和输出通道维度是可以动态变化的。超模型的每一个子模型都共享超模型对应的位置的参数,通过这种方式可以提高子模型的效果,并加快子模型的收敛速度。
S304、拷贝输入模型得到教师模型。
在图11中,教师模型11-5的结构与输入模型11-1的结构是相同的,由卷积层11-11至卷积层11-13级联而成。教师模型的主要功能是通过知识蒸馏约束不同子模型学习特征的优化过程。
其中,知识蒸馏是一种深度学习模型的迁移学习方法,其目的是在子模型的训练过程中,将教师模型的参数信息作为先验信息加入到子模型的参数更新中,使得子模型具有更好的泛化能力和推理效果,这样能够在提升子模型的效果的同时,保持不同子模型的特征的一致性(不同子模型的网络结构不同,若是没有教师模型的特征作为约束,会导致不同的子模型朝不同的方向优化,从而使得超模型难以收敛到最优效果甚至无法收敛)。
示例性的,图13是本申请实施例提供的知识蒸馏的示意图。服务器利用三种不同的模型配置,从超模型Super_M中创建出三个不同的子模型,分别为子模型13-1、子模型13-2和子模型13-3,然后在训练时会通过知识蒸馏13-4,将教师模型13-5中的参数信息作为先验信息引入到这三个子模型的参数更新中。
S305、训练超模型至收敛。
服务器需要先根据人工设置的超参数集合A=[a1%,……,am%]和对输入模型的每个卷积层的输入通道数进行调整,得到每个卷积层可选的配置信息(每个模型算子对应的多个更新结构参数),从而确定搜索空间。
服务器在训练时候的每一次迭代,都会对搜索空间进行一次采样,得到子模型配置st(模型配置信息),根据st从超模型Super_M获得对应的子模型Sub_Mt(模型配置信息相对应的子模型),再利用本次迭代的数据(训练数据)对子模型Sub_Mt进行前向推理和反向传播,根据反向传播的梯度更新子模型Sub_Mt的参数,完成一次子模型的迭代。实际上,由于子模型Sub_Mt是超模型Super_M的一个子集,完成一次子模型的迭代,也就是完成了一次对超模型Super_M的迭代。并且,在每一次迭代过程中,教师模型用于指导所有子模型Sub_Mt的优化。在图11中,以教师模型11-5对子模型11-6的训练作为示例,来表示超模型训练过程,其中,子模型11-6是通过将封装算子11-41和封装算子11-43的封装参数赋值为0.5,将封装算子11-42的封装参数赋值为0.8得到。
S306、对训练完成的收敛超模型进行模型搜索。
在训练完成之后,服务器可以得到一个收敛的超模型Super_M,其等价于一个收敛子模型的集合。服务器可以根据给定的评估函数11-3,通过穷举或进行划算法,从超模型中搜索出性能更优秀的模型,即图11中的最优子模型11-7,完成模型结构搜索,或者从超模型中搜索出推理时间更短的模型,即图11中的压缩模型11-8,完成模型压缩。
下面,以超分辨率重建任务为例,对本申请实施例提供的模型优化方法的效果进行说明。
输入模型在通过本申请实施例的模型优化方法,得到对应的压缩模型之后,服务器会利用输入模型和压缩模型对同一张图像进行超分辨率重建,并进行重建效果对比和重建时的性能指标对比。
图14是本申请实施例提供的输入模型和压缩模型的超分辨率重建一种效果对比图。其中,图像14-1是基于输入模型进行超分辨率重建所得到的,图像14-2是基于压缩模型进行超分辨率重建所得到的。对比图像14-1和图像14-2可见,输入模型和压缩模型在超分辨率重建的效果上几乎没有差异。
图15是本申请实施例提供的输入模型和压缩模型的超分辨率重建另一种效果对比图。其中,图像15-1是基于输入模型进行超分辨率重建得到的,图像15-2是基于压缩模型进行超分辨率重建得到的,图像15-1和图像15-2在超分辨率重建的效果上也几乎没有差异。
表1是本申请实施例提供的输入模型和压缩模型的超分辨率重建性能指标对比。
表1
从表1可以看出,相比于输入模型,压缩模型在超分辨率重建任务上所占用的访存量下降了58%,所需要的计算量减少了64%,参数量减少了64%,而峰值信噪比(PeakSignal to Noise Ratio,PSNR)仅仅下降了0.5%,几乎没有变化,说明压缩模型在超分辨率重建的效果上与输入模型几乎持平,但需要消耗的计算资源更少。
可以理解的是,在本申请实施例中,训练数据涉及到用户的照片等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的模型优化装置255的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器250的模型优化装置255中的软件模块可以包括:
数据获取模块2551,用于获取待优化模型和控制参数;所述待优化模型是经过训练的模型;
数据封装模块2552,用于通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型;其中,所述超模型的空间结构是动态变化的;
空间配置模块2553,用于依据所述模型算子和所述控制参数,确定所述待优化模型对应的配置搜索空间;所述模型算子至少包括:所述待优化模型中的一个网络层;
模型训练模块2554,用于基于所述配置搜索空间和所述待优化模型,对所述超模型进行训练,得到所述待优化模型对应的收敛超模型;
模型搜索模块2555,用于从所述收敛超模型中搜索得到所述待优化模型对应的优化模型。
在本申请的一些实施例中,所述数据封装模块2552,还用于依据所述待优化模型中的模型算子之间的连接关系,将所述待优化模型的所述模型算子划分为多个算子集合;针对每个所述算子集合,确定对应的封装变量;利用所述封装变量对每个所述算子集合中的模型算子进行封装,得到每个所述算子集合的所述模型算子所对应的封装算子;所述封装算子的空间结构是动态的;将利用所述封装算子拼接得到的模型,确定为所述待优化模型对应的所述超模型。
在本申请的一些实施例中,所述数据封装模块2552,还用于依据所述待优化模型中的模型算子之间的连接关系,确定所述模型算子对应的输出算子;所述输出算子的输入数据是所述模型算子的输出数据;利用所述输出算子,将所述待优化模型的所述模型算子划分为多个所述算子集合;其中,同一个所述算子集合中的模型算子存在相同的输出算子。
在本申请的一些实施例中,所述空间结构参数包括:输出通道数;所述数据封装模块2552,还用于将所述封装变量与每个所述算子集合中的模型算子的输出通道数进行融合,得到每个所述算子集合的所述模型算子所对应的封装算子。
在本申请的一些实施例中,所述模型优化装置255还包括:算子合并模块2556;所述算子合并模块2556,用于获取待优化模型和控制参数之后,通过对所述模型算子进行封装,确定所述待优化模型对应的超模型之前,从所述待优化模型中,解析得到所述待优化模型的卷积层,以及所述卷积层对应的附属网络层;其中,所述附属网络层至少包括:池化层和激活层;将所述卷积层和所述卷积层所对应的附属网络层,合并为所述待优化模型的所述模型算子。
在本申请的一些实施例中,所述控制参数包括:多个子模型配置参数;所述空间配置模块2553,还用于利用多个所述子模型配置参数,对每个所述模型算子的空间结构参数分别进行调整,得到每个所述模型算子对应的多个更新结构参数;将利用每个所述模型算子对应的多个所述更新结构参数所构成的搜索空间,确定为所述待优化模型对应的所述配置搜索空间。
在本申请的一些实施例中,所述模型训练模块2554,还用于将所述待优化模型的副本,确定为教师模型;通过迭代i进行以下处理,1≤i≤N,N为迭代总次数:对所述配置搜索空间进行第i次采样,得到第i个模型配置信息;利用第i个所述模型配置信息,从所述超模型中创建出与第i个所述模型配置信息相对应的子模型;基于所述教师模型,对所述子模型进行训练,得到第i个所述模型配置信息对应的收敛子模型;当完成对i的迭代时,将N个所述模型配置信息对应的所述收敛子模型的集合,确定为所述收敛超模型。
在本申请的一些实施例中,所述模型训练模块2554,还用于基于所述子模型对获取到的训练数据的第一预测结果、所述教师模型对所述训练数据的第二预测结果,以及所述训练数据的标签信息,确定第i个所述模型配置信息对应训练损失值;利用第i个所述模型配置信息对应所述训练损失值,对所述子模型的参数进行调整,并在参数调整完成时,得到第i个所述模型配置信息对应的所述收敛子模型。
在本申请的一些实施例中,所述模型训练模块2554,还用于针对所述子模型对所述训练数据的所述第一预测结果,以及所述训练数据的标签信息进行差异计算,得到第一差异值;针对所述子模型对所述训练数据的所述第一预测结果,以及所述教师模型对所述训练数据的第二预测结果进行差异计算,得到第二差异值;将所述第一差异信息和所述第二差异信息的融合结果,确定为所述训练损失值。
在本申请的一些实施例中,所述模型搜索模块2555,还用于从所述收敛超模型中,筛选预测准确度与所述待优化模型的预测准确度相同的子模型,作为初始压缩模型;从所述初始压缩模型中,搜索所述预测速度大于所述待优化模型的预测速度的子模型,作为所述待优化模型对应的所述优化模型。
在本申请的一些实施例中,所述模型搜索模块2555,还用于从所述收敛超模型中,筛选预测速度与所述待优化模型的预测速度相同的子模型,作为初始调优模型;从所述初始调优模型中,搜索所述预测准确度大于所述待优化模型的预测准确度的子模型,作为所述待优化模型对应的所述优化模型。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的模型优化方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的模型优化方法,例如,如图4示出的模型优化方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备(模型优化设备)上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例,模型优化设备是先确定出模型算子的通道数是动态可变的超模型,然后利用配置搜索空间和待优化模型,对超模型进行训练,从而仅通过一次训练,就能够得到能够用于搜索预测效果或预测效率更好的收敛超模型,减少了生成可选的模型的次数,也就降低了模型优化时所消耗的计算资源;利用同一个收敛超模型,同时实现对待优化模型的模型结构压缩和模型结构搜索,从而无需再针对模型结构压缩和模型结构搜索分别进行模型训练,使得模型优化的通用性更强,也更加容易部署到实际应用场景中。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种模型优化方法,其特征在于,所述模型优化方法包括:
获取待优化模型和控制参数;所述待优化模型是经过训练的模型;
通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型;其中,所述超模型的空间结构是动态变化的;
依据所述模型算子和所述控制参数,确定所述待优化模型对应的配置搜索空间;所述模型算子至少包括:所述待优化模型中的一个网络层;
基于所述配置搜索空间和所述待优化模型,对所述超模型进行训练,得到所述待优化模型对应的收敛超模型;
从所述收敛超模型中搜索得到所述待优化模型对应的优化模型。
2.根据权利要求1所述的方法,其特征在于,所述通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型,包括:
依据所述待优化模型中的模型算子之间的连接关系,将所述待优化模型的所述模型算子划分为多个算子集合;
针对每个所述算子集合,确定对应的封装变量;
利用所述封装变量对每个所述算子集合中的模型算子进行封装,得到每个所述算子集合的所述模型算子所对应的封装算子;所述封装算子的空间结构是动态的;
将利用所述封装算子拼接得到的模型,确定为所述待优化模型对应的所述超模型。
3.根据权利要求2所述的方法,其特征在于,所述依据所述待优化模型中的模型算子之间的连接关系,将所述待优化模型的所述模型算子划分为多个算子集合,包括:
依据所述待优化模型中的模型算子之间的连接关系,确定所述模型算子对应的输出算子;所述输出算子的输入数据是所述模型算子的输出数据;
利用所述输出算子,将所述待优化模型的所述模型算子划分为多个所述算子集合;其中,同一个所述算子集合中的模型算子存在相同的输出算子。
4.根据权利要求2所述的方法,其特征在于,所述利用所述封装变量对每个所述算子集合中的模型算子进行封装,得到每个所述算子集合的所述模型算子所对应的封装算子,包括:
将所述封装变量与每个所述算子集合中的模型算子的输出通道数进行融合,得到每个所述算子集合的所述模型算子所对应的封装算子。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述获取待优化模型和控制参数之后,所述通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型之前,所述方法还包括:
从所述待优化模型中,解析得到所述待优化模型的卷积层,以及所述卷积层对应的附属网络层;其中,所述附属网络层至少包括:池化层和激活层;
将所述卷积层和所述卷积层所对应的附属网络层,合并为所述待优化模型的所述模型算子。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述控制参数包括:多个子模型配置参数;所述依据所述模型算子和所述控制参数,确定所述待优化模型对应的配置搜索空间,包括:
利用多个所述子模型配置参数,对每个所述模型算子的空间结构参数分别进行调整,得到每个所述模型算子对应的多个更新结构参数;
将利用每个所述模型算子对应的多个所述更新结构参数所构成的搜索空间,确定为所述待优化模型对应的所述配置搜索空间。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述配置搜索空间和所述待优化模型,对所述超模型进行训练,得到所述待优化模型对应的收敛超模型,包括:
将所述待优化模型的副本,确定为教师模型;
通过迭代i进行以下处理,1≤i≤N,N为迭代总次数:
对所述配置搜索空间进行第i次采样,得到第i个模型配置信息;
利用第i个所述模型配置信息,从所述超模型中创建出与第i个所述模型配置信息相对应的子模型;
基于所述教师模型,对所述子模型进行训练,得到第i个所述模型配置信息对应的收敛子模型;
当完成对i的迭代时,将N个所述模型配置信息对应的所述收敛子模型的集合,确定为所述收敛超模型。
8.根据权利要求7所述的方法,其特征在于,所述基于所述教师模型,对所述子模型进行训练,得到第i个所述模型配置信息对应的收敛子模型,包括:
基于所述子模型对获取到的训练数据的第一预测结果、所述教师模型对所述训练数据的第二预测结果,以及所述训练数据的标签信息,确定第i个所述模型配置信息对应训练损失值;
利用第i个所述模型配置信息对应所述训练损失值,对所述子模型的参数进行调整,并在参数调整完成时,得到第i个所述模型配置信息对应的所述收敛子模型。
9.根据权利要求8所述的方法,其特征在于,所述基于所述子模型对获取到的训练数据的第一预测结果、所述教师模型对所述训练数据的第二预测结果,以及所述训练数据的标签信息,确定第i个所述模型配置信息对应训练损失值,包括:
针对所述子模型对所述训练数据的所述第一预测结果,以及所述训练数据的标签信息进行差异计算,得到第一差异值;
针对所述子模型对所述训练数据的所述第一预测结果,以及所述教师模型对所述训练数据的第二预测结果进行差异计算,得到第二差异值;
将所述第一差异信息和所述第二差异信息的融合结果,确定为所述训练损失值。
10.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述收敛超模型中搜索得到所述待优化模型对应的优化模型,包括:
从所述收敛超模型中,筛选预测准确度与所述待优化模型的预测准确度相同的子模型,作为初始压缩模型;
从所述初始压缩模型中,搜索所述预测速度大于所述待优化模型的预测速度的子模型,作为所述待优化模型对应的所述优化模型。
11.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述收敛超模型中搜索得到所述待优化模型对应的优化模型,包括:
从所述收敛超模型中,筛选预测速度与所述待优化模型的预测速度相同的子模型,作为初始调优模型;
从所述初始调优模型中,搜索所述预测准确度大于所述待优化模型的预测准确度的子模型,作为所述待优化模型对应的所述优化模型。
12.一种模型优化装置,其特征在于,所述模型优化装置包括:
数据获取模块,用于获取待优化模型和控制参数;所述待优化模型是经过训练的模型;
数据封装模块,用于通过对所述待优化模型中的模型算子进行封装,确定所述待优化模型对应的超模型;其中,所述超模型的空间结构是动态变化的;
空间配置模块,用于依据所述模型算子和所述控制参数,确定所述待优化模型对应的配置搜索空间;所述模型算子至少包括:所述待优化模型中的一个网络层;
模型训练模块,用于基于所述配置搜索空间和所述待优化模型,对所述超模型进行训练,得到所述待优化模型对应的收敛超模型;
模型搜索模块,用于从所述收敛超模型中搜索得到所述待优化模型对应的优化模型。
13.一种模型优化设备,其特征在于,所述模型优化设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的模型优化方法。
14.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至11任一项所述的模型优化方法。
15.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至11任一项所述的模型优化方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210171877.1A CN114492765B (zh) | 2022-02-24 | 2022-02-24 | 一种模型优化方法、装置、设备及存储介质、程序产品 |
PCT/CN2022/134391 WO2023160060A1 (zh) | 2022-02-24 | 2022-11-25 | 一种模型优化方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
US18/455,717 US20230401450A1 (en) | 2022-02-24 | 2023-08-25 | Model optimization method and apparatus, electronic device, computer-readable storage medium, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210171877.1A CN114492765B (zh) | 2022-02-24 | 2022-02-24 | 一种模型优化方法、装置、设备及存储介质、程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114492765A true CN114492765A (zh) | 2022-05-13 |
CN114492765B CN114492765B (zh) | 2024-09-13 |
Family
ID=81485402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210171877.1A Active CN114492765B (zh) | 2022-02-24 | 2022-02-24 | 一种模型优化方法、装置、设备及存储介质、程序产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230401450A1 (zh) |
CN (1) | CN114492765B (zh) |
WO (1) | WO2023160060A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160060A1 (zh) * | 2022-02-24 | 2023-08-31 | 腾讯科技(深圳)有限公司 | 一种模型优化方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117668622B (zh) * | 2024-02-01 | 2024-05-10 | 山东能源数智云科技有限公司 | 设备故障诊断模型的训练方法、故障诊断方法及装置 |
CN118411155B (zh) * | 2024-07-01 | 2024-09-03 | 北京国华世纪电子科技有限公司 | 一种用电安全管理服务系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563592A (zh) * | 2020-05-08 | 2020-08-21 | 北京百度网讯科技有限公司 | 基于超网络的神经网络模型生成方法和装置 |
CN111582452A (zh) * | 2020-05-09 | 2020-08-25 | 北京百度网讯科技有限公司 | 生成神经网络模型的方法和装置 |
CN112200218A (zh) * | 2020-09-10 | 2021-01-08 | 浙江大华技术股份有限公司 | 一种模型训练方法、装置及电子设备 |
CN112380319A (zh) * | 2020-11-12 | 2021-02-19 | 平安科技(深圳)有限公司 | 一种模型训练的方法及相关装置 |
WO2021190451A1 (zh) * | 2020-03-24 | 2021-09-30 | 华为技术有限公司 | 训练图像处理模型的方法和装置 |
US20210334440A1 (en) * | 2020-04-28 | 2021-10-28 | Mitsubishi Heavy Industries, Ltd. | Model optimization device, model optimization method, and program |
CN113704082A (zh) * | 2021-02-26 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 模型评测方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401516B (zh) * | 2020-02-21 | 2024-04-26 | 华为云计算技术有限公司 | 一种神经网络通道参数的搜索方法及相关设备 |
CN111783937A (zh) * | 2020-05-19 | 2020-10-16 | 华为技术有限公司 | 一种神经网络构建方法以及系统 |
CN111797983A (zh) * | 2020-05-25 | 2020-10-20 | 华为技术有限公司 | 一种神经网络构建方法以及装置 |
US20210383223A1 (en) * | 2020-06-03 | 2021-12-09 | Google Llc | Joint Architecture And Hyper-Parameter Search For Machine Learning Models |
CN114492765B (zh) * | 2022-02-24 | 2024-09-13 | 腾讯科技(深圳)有限公司 | 一种模型优化方法、装置、设备及存储介质、程序产品 |
-
2022
- 2022-02-24 CN CN202210171877.1A patent/CN114492765B/zh active Active
- 2022-11-25 WO PCT/CN2022/134391 patent/WO2023160060A1/zh unknown
-
2023
- 2023-08-25 US US18/455,717 patent/US20230401450A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021190451A1 (zh) * | 2020-03-24 | 2021-09-30 | 华为技术有限公司 | 训练图像处理模型的方法和装置 |
US20210334440A1 (en) * | 2020-04-28 | 2021-10-28 | Mitsubishi Heavy Industries, Ltd. | Model optimization device, model optimization method, and program |
CN111563592A (zh) * | 2020-05-08 | 2020-08-21 | 北京百度网讯科技有限公司 | 基于超网络的神经网络模型生成方法和装置 |
CN111582452A (zh) * | 2020-05-09 | 2020-08-25 | 北京百度网讯科技有限公司 | 生成神经网络模型的方法和装置 |
CN112200218A (zh) * | 2020-09-10 | 2021-01-08 | 浙江大华技术股份有限公司 | 一种模型训练方法、装置及电子设备 |
CN112380319A (zh) * | 2020-11-12 | 2021-02-19 | 平安科技(深圳)有限公司 | 一种模型训练的方法及相关装置 |
CN113704082A (zh) * | 2021-02-26 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 模型评测方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
LIU Y ET AL.: "superpruner:automatic neural network pruning via super network", 《SCIENTIFIC PROGRAMMING》, vol. 5, 4 September 2021 (2021-09-04), pages 1 - 11 * |
李锐: "基于神经网络架构搜索的医学超声图像分类和分割", 《中国优秀硕士学位论文全文数据库 医学卫生科技辑》, no. 10, 15 October 2021 (2021-10-15), pages 060 - 14 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160060A1 (zh) * | 2022-02-24 | 2023-08-31 | 腾讯科技(深圳)有限公司 | 一种模型优化方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2023160060A1 (zh) | 2023-08-31 |
US20230401450A1 (en) | 2023-12-14 |
CN114492765B (zh) | 2024-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111626430B (zh) | 一种数据处理方法及相关产品 | |
KR102173555B1 (ko) | 머신 러닝 기반 네트워크 모델 구축 방법 및 장치 | |
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
CN107450902B (zh) | 用于可视化建模的方法和系统 | |
CN114492765B (zh) | 一种模型优化方法、装置、设备及存储介质、程序产品 | |
Bohlin et al. | Community detection and visualization of networks with the map equation framework | |
CN112199086B (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN117170685B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN112463159B (zh) | 编译方法、装置、电子设备和存储介质 | |
CN114005055A (zh) | 算法应用元生成方法、装置、设备及计算机可读存储介质 | |
WO2024139703A1 (zh) | 对象识别模型的更新方法、装置、电子设备、存储介质及计算机程序产品 | |
WO2024046458A1 (zh) | 层次化系统、运算方法、装置、电子设备及存储介质 | |
CN117216537A (zh) | 集成模型的训练方法、装置、设备、存储介质及程序产品 | |
CN114330353B (zh) | 虚拟场景的实体识别方法、装置、设备、介质及程序产品 | |
US20230186074A1 (en) | Fabricating data using constraints translated from trained machine learning models | |
CN115794400A (zh) | 深度学习模型的内存管理方法、装置、设备及存储介质 | |
JP7428006B2 (ja) | システム構成導出装置、方法およびプログラム | |
Belyaev et al. | LuNA-ICLU compiler for automated generation of iterative fragmented programs | |
CN114721930A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
Fernandez et al. | Java2SDG: stateful big data processing for the masses | |
CN116781965B (zh) | 虚拟物品合成方法、装置、电子设备和计算机可读介质 | |
WO2024046459A1 (zh) | 模型管理装置及用于神经网络运算的层次化系统 | |
CN118692693B (zh) | 一种基于文本分析的康养服务需求挖掘方法及系统 | |
US11809849B1 (en) | Global modulo allocation in neural network compilation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067585 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |