CN116415647A - 神经网络架构搜索的方法、装置、设备和存储介质 - Google Patents
神经网络架构搜索的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116415647A CN116415647A CN202111641483.XA CN202111641483A CN116415647A CN 116415647 A CN116415647 A CN 116415647A CN 202111641483 A CN202111641483 A CN 202111641483A CN 116415647 A CN116415647 A CN 116415647A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- neural network
- training data
- training
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000005457 optimization Methods 0.000 claims abstract description 87
- 230000001537 neural effect Effects 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000012549 training Methods 0.000 claims description 226
- 238000003062 neural network model Methods 0.000 claims description 76
- 238000013210 evaluation model Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 23
- 238000013256 Gubra-Amylin NASH model Methods 0.000 claims description 18
- 230000003993 interaction Effects 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 12
- 238000013135 deep learning Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 230000035772 mutation Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000002068 genetic effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction 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/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- 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/0475—Generative 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/08—Learning methods
-
- 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/094—Adversarial learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Physiology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种神经网络架构搜索的方法、装置、设备和存储介质,属于深度学习技术领域。该方法包括:接收优化请求,该优化请求包括待优化模型的模型文件和优化要求,优化要求包括性能要求和硬件要求,基于该模型文件,在搜索空间中进行神经架构搜索处理,获得满足优化要求的神经网络架构,返回该神经网络架构。采用本申请,能够使用模型文件进行神经架构搜索,不仅不需要使用公开数据集进行神经架构搜索,而且使得搜索到神经网络架构适合本地业务。
Description
技术领域
本申请涉及深度学习技术领域,特别涉及一种神经网络架构搜索的方法、装置、设备和存储介质。
背景技术
随着深度学习技术的发展,越来越多的领域使用神经网络模型。在已有神经网络模型无法满足性能要求时,即使对该神经网络模型进行训练也不能满足性能要求,需要更换一个满足性能要求的神经网络模型,但是更换新的神经网络模型时需要进行大量的调试,花费的时长多,并且消耗硬件资源多。此种情况下出现了神经架构搜索(neuralarchitecture search,NAS)技术,在NAS技术下,能够自动化设计神经网络模型的架构,缩短调试新的神经网络模型的时长,以及降低模型优化成本。
目前,NAS技术的原理为:使用公开的数据集,在搜索空间中按照性能要求搜索到神经网络架构。后续用户在使用该神经网络架构时,使用本地业务的数据对该神经网络架构进行训练,获得新的神经网络模型。
目前是使用公开的数据集搜索神经网络架构,公开的数据集与本地业务的数据常常相差比较大,有可能使得搜索到神经网络架构不适合本地业务。
发明内容
本申请提供了一种神经网络架构搜索的方法、装置、设备和存储介质,可以使得搜索到的神经网络架构适合本地业务。
第一方面,本申请提供了一种神经网络架构搜索的方法,该方法包括:
接收优化请求,该优化请求包括待优化模型的模型文件和优化要求,该优化要求包括性能要求和硬件要求;基于该模型文件,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构;返回该神经网络架构。
本申请所示的方案,可以根据待优化模型的模型文件和优化要求,搜索得到满足该优化要求的神经网络架构。相对于现有技术,该方法无需用户输入训练数据集,可基于用户提供的模型文件和用户的优化要求,来完成对原始用户输入模型的优化,能够提高模型架构搜索的便利性和安全性。此外,该方法还基于用户输入的模型获得与用户业务更加匹配的神经网络架构。
在一种可能的实现方式中,该性能要求包括推理时延、召回率和准确率中至少一种,该硬件要求包括优化后的模型部署时的硬件规格和模型占用内存量中至少一种。
在一种可能的实现方式中,该基于该模型文件,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构,包括:基于该模型文件,确定该待优化模型对应的至少一个数据生成模型;通过该至少一个数据生成模型,生成数据集,该数据集包括训练数据,该数据集中的训练数据与获得该待优化模型的训练数据的分布满足相似条件;基于该数据集,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构。
本申请所示的方案,先使用模型文件,确定出待优化模型对应的至少一个数据生成模型,使用该至少一个数据生成模型,生成数据集。然后使用该数据集,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构。这样,由于数据集中的训练数据与获得待优化模型的训练数据的分布满足相似条件,所以相当于使用待优化模型的训练数据进行神经架构搜索处理,使得获得的神经网络架构更适合本地业务。
在一种可能的实现方式中,该基于该模型文件,确定该待优化模型对应的至少一个数据生成模型,包括:基于该模型文件,确定该待优化模型的每个标签类别对应的数据生成模型;该通过该至少一个数据生成模型,生成数据集,包括:通过每个标签类别对应的数据生成模型,生成每个标签类别对应的训练数据,每个标签类别对应的训练数据组成该数据集。
本申请所示的方案,每个标签类别对应一个数据生成模型,使用每个标签类别对应的数据生成模型,生成每个标签类别对应的训练数据,使得进行神经架构搜索处理使用的数据集包括各个标签类别的数据,进而使得搜索到的神经网络架构更适合本地业务。
在一种可能的实现方式中,该基于该模型文件,确定该待优化模型对应的至少一个数据生成模型,包括:对于该待优化模型的目标标签类别,使用该目标标签类别对应的初始数据生成模型,生成该目标标签类别对应的至少一条训练数据,每条训练数据包括输入数据和标定预测值;将每条训练数据的输入数据,分别输入该待优化模型,获得每条训练数据对应的推理结果;基于每条训练数据对应的推理结果和每条训练数据的标定预测值,确定每条训练数据对应的损失值;基于每条训练数据对应的损失值,更新该初始数据生成模型的权重参数;基于更新后的初始数据生成模型,确定该目标标签类别对应的数据生成模型。
本申请所示的方案,对于目标标签类别,使用待优化模型(即期望的模型)输出的推理结果去指导目标标签类别对应的数据生成模型生成的训练数据,并更新该数据生成模型,使得该数据生成模型生成的训练数据越来越接近待优化模型的训练数据。这样,在神经架构搜索时相当于使用待优化模型的训练数据,所以可以使得获得的神经网络架构更适合本地业务。
在一种可能的实现方式中,在生成该目标标签类别对应的至少一条训练数据之前,还包括:获取用于生成数据的目标神经网络模型;对该目标神经网络模型的权重参数进行随机初始化,获得该目标标签类别对应的初始数据生成模型。这样,可以基于随机初始化获取到每个标签类别对应的初始数据生成模型。
在一种可能的实现方式中,该优化要求还包括该待优化模型所推理的推理数据的类型,该推理数据的类型为文本类型或图像类型;该获取用于生成数据的目标神经网络模型,包括:获取生成数据的类型与该推理数据的类型相同的目标神经网络模型。
本申请所示的方案,优化要求还可以包括待优化模型所推理的推理数据的类型,该类型为文本类型或图像类型。在获取得到初始数据生成模型的目标神经网络模型时,获取也能生成该类型的数据的目标神经网络模型,使得生成的数据更可能与待优化模型的训练数据的分布满足相似条件。
在一种可能的实现方式中,该数据生成模型为生成对抗网络(generativeadversarial network,GAN)模型。这样,由于GAN模型能够一次性生成多条数据,所以能够缩短神经网络架构搜索处理的时长。
在一种可能的实现方式中,该基于该数据集,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构,包括:基于该硬件要求,对搜索空间进行优化;使用该数据集对优化后的搜索空间中的超网络进行训练,获得训练完成的超网络;使用该训练完成的超网络,生成多条训练数据,每条训练数据包括神经网络模型与该性能要求指示的性能指标值;使用该多条训练数据对评估模型进行训练,获得训练完成的评估模型;基于该训练完成的评估模型、该多条训练数据和进化算法,搜索获得满足该性能要求的神经网络架构。
本申请所示的方案,通过硬件要求优化搜索空间,能够缩小搜索空间,提高搜索速度。而且使用超网络生成的多条训练数据、评估模型和进化算法,能够获得满足性能要求的神经网络架构。
第二方面,本申请提供了一种神经网络架构搜索的装置,该装置包括一个或多个模型,该一个或多个模块用于实现第一方面所述的神经网络架构搜索的方法。
第三方面,本申请提供了一种神经网络架构搜索的计算设备,所述计算设备包括处理器和存储器,其中:所述存储器中存储有计算机指令;所述处理器执行所述计算机指令,以实现第一方面所述的神经网络架构搜索的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机可读存储介质中的计算机指令被计算设备执行时,使得所述计算设备执行第一方面所述的神经网络架构搜索的方法。
第五方面,本申请提供了一种计算机程序产品,包括计算机指令,当所述计算机指令被计算设备执行时,使得所述计算设备执行第一方面所述的神经网络架构搜索的方法。
附图说明
图1是本申请一个示例性实施例提供的计算设备的结构示意图;
图2是本申请一个示例性实施例提供的搜索装置的结构示意图;
图3是本申请一个示例性实施例提供的用户与云平台的交互示意图;
图4是本申请一个示例性实施例提供的神经网络架构搜索的方法流程示意图;
图5是本申请一个示例性实施例提供的神经网络架构搜索的流程架构图;
图6是本申请一个示例性实施例提供的获得数据生成模型的流程示意图;
图7是本申请一个示例性实施例提供的获得数据生成模型的流程框图;
图8是本申请一个示例性实施例提供的神经架构搜索的流程示意图;
图9是本申请一个示例性实施例提供的训练超网络的流程框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
搜索空间(search space),是NAS中候选的神经网络架构的集合,NAS的最终搜索结果属于该集合。
模型微调(fine-tuning),指神经网络模型使用在其他数据集上训练得到的权重参数,在新的数据集上进行小学习率的训练和调整,从而得到匹配新数据集的模型。学习率用于控制调整权重参数的速率。
预训练(pre-trained),是在大量数据上进行训练得到模型的权重参数的训练过程。通过预训练能够加速本地业务的神经网络模型的训练过程。例如,本地业务是医院影像分类业务,再例如,本地业务是文本识别业务等。
下面描述相关背景。
在一种相关技术中,使用公开的数据集,在搜索空间中按照性能要求搜索到神经网络架构后续用户在使用该神经网络架构时,使用本地业务的数据对该神经架构模型进行训练,获得新的神经网络模型。目前使用公开的数据集搜索神经网络架构,在公开的数据集与本地业务的数据相差比较大时,有可能使得搜索到神经网络架构不适合本地业务。
在另一种相关技术中,用户上传本地业务的训练数据集,使用该训练数据集在搜索空间中按照性能要求搜索到神经网络架构。但是用户出于某些原因(如训练数据是隐私数据)无法提供训练数据集,或者提供的训练数据集的格式不兼容时,便无法搜索获得神经网络架构。
本申请中提供了一种神经网络架构搜索的方法,用户上传待优化模型的模型文件和优化要求,使用该模型文件在搜索空间中进行神经架构搜索处理,获得满足优化要求的神经网络架构。由于模型文件与本地业务相匹配,所以使用模型文件进行神经架构搜索处理,能够获取到适合本地业务的神经网络架构。
下面描述本申请实施例的应用场景和执行主体。
应用场景:本申请实施例可以应用于使用公开的数据集的神经架构搜索场景中,或者应用于优化神经网络模型时用户无法提供训练数据集的场景中,或者应用于优化神经网络模型时用户提供的训练数据集格式不兼容的场景中等。
执行主体:执行主体可以是神经网络架构搜索的装置,简称为搜索装置。在一种实现中,搜索装置可以是硬件装置,如服务器、终端等计算设备,在另一种实现中,搜索装置也可以是软件装置,如可以是运行在硬件装置上的一套软件程序。
在本申请实施例中,用户使用自身的终端设备进行登录,连接到搜索装置,与搜索装置进行交互。例如,用户使用终端设备向搜索装置提交优化请求,优化请求包括待优化模型的模型文件和优化要求,待优化模型可以是任意结构的模型,本申请实施例不进行限定。该搜索装置基于优化请求,为用户提供搜索得到的神经网络架构。
示例性的,在搜索装置为计算设备时,图1提供了计算设备的硬件结构示意图,图1所示的计算设备100包括存储器101、处理器102、通信接口103以及总线104。其中,存储器101、处理器102、通信接口103通过总线104实现彼此之间的通信连接。
存储器101可以是只读存储器(read only memory,ROM),随机存取存储器(randomaccess memory,RAM),硬盘,快闪存储器或其任意组合。存储器101可以存储程序,当存储器101中存储的程序被处理器102执行时,处理器102和通信接口103用于执行神经网络架构搜索的方法。存储器还可以存储数据集等。例如,存储器101中的一部分存储资源用于存储搜索空间等,存储器101中的一部分存储资源用于存储训练数据集等。
处理器102可以采用中央处理器(central processing unit,CPU),应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphicsprocessing unit,GPU)或其任意组合。处理器102可以包括一个或多个芯片。处理器102可以包括人工智能(artificial intelligence,AI)加速器,例如,神经网络处理器(neuralprocessing unit,NPU)。
通信接口103使用例如收发器一类的收发模块,来实现计算设备100与其他设备或通信网络之间的通信。例如,可以通过通信接口103获取优化请求等。
总线104可包括在计算设备100各个部件(例如,存储器101、处理器102、通信接口103)之间传送信息的通路。
示例性的,在搜索装置为软件装置时,图2提供了搜索装置逻辑上的结构示意图,从逻辑上搜索装置包括交互模块210和搜索模块220。例如,交互模块210用于与其它设备进行交互,在本申请实施例中,交互模块210可以用于接收用户上传的优化请求和向用户反馈神经网络架构等,搜索模块220用于使用模型文件获得满足优化要求的神经网络架构。
示例性的,搜索模块220包括数据生成模块221和模型搜索模块222。例如,数据生成模块221用于基于用户上传的模型文件,生成数据集。模型搜索模块222用于基于该数据集,获得满足优化要求的神经网络架构。
示例性的,上述搜索装置可以全部部署在云平台中,云平台指基于硬件资源和软件资源,提供计算、网络和存储能力的平台,云平台也能称为是云计算平台。云平台中包括云服务提供商拥有的大量基础资源(包括计算资源、存储资源和网络资源),该计算资源可以是大量的计算设备,如服务器等。如图3所示,该搜索装置由云服务器提供商在云平台中抽象成一种云服务提供给用户,云平台利用部署在云平台的该搜索装置向用户提供云服务。在使用云服务时,用户可以向云平台上传优化请求。云平台中的该搜索装置基于该优化请求,向用户提供搜索得到的神经网络架构。
示例性的,搜索装置的部署较为灵活,在另一种实现中,搜索装置还可以部署在终端计算设备、边缘环境和云平台中的任意两个或三个环境中。例如,交互模块210部署在终端计算设备,数据生成模块221和模型搜索模块222部署在云平台中。
下面结合图4描述神经网络架构搜索的方法的具体流程,参见步骤401至步骤403,图4中以该方法由搜索装置执行为例进行说明,并且实施环境为云环境。
步骤401,接收优化请求,该优化请求包括待优化模型的模型文件和优化要求,优化要求包括性能要求和硬件要求。
其中,待优化模型可以是用于分类的模型,也可以是用于检测的模型。例如,待优化模型用于对医院影像进行分类,再例如,待优化模型用于识别图像中的目标,目标具体为动物、人等。优化要求包括性能要求和硬件要求。
在本实施例中,用户对某个模型进行优化,该模型称为是待优化模型。用户使用自己的终端设备接入搜索装置,用户选择或者输入待优化模型的模型文件以及优化要求,终端设备生成优化请求,该优化请求包括待优化模型的模型文件和优化要求。终端设备向搜索装置发送该优化请求。搜索装置接收该优化请求,从该优化请求中,解析获得待优化模型的模型文件和优化要求,优化要求包括性能要求和硬件要求。
示例性的,待优化模型的模型文件包括待优化模型的架构以及权重参数等。
示例性的,性能要求包括推理时延、召回率和准确率中至少一种,推理时延指优化后的模型对一定数目个推理数据推理花费的时长,召回率指正样本被识别为正样本的概率,准确率等于被准确识别的样本的数目除以所有样本的数目。硬件要求包括优化后的模型部署时的硬件规格和模型占用内存量中至少一种,硬件规格包括但不限于CPU、GPU或NPU,模型占用内存量指运行优化后的模型所需的内存量。
步骤402,基于该模型文件,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构。
在本实施例中,搜索装置在接收到模型文件和优化要求后,获取搜索空间,使用该模型文件在搜索空间中进行神经架构搜索处理,获得满足优化要求的神经网络架构。此处神经架构搜索也可以称为是神经网络架构搜索。
步骤403,返回该神经网络架构。
在本实施例中,搜索装置搜索获得神经网络架构后,搜索装置向用户使用的设备发送搜索获得的神经网络架构,即向用户返回搜索获得的神经网络架构,向用户返回的神经网络架构可以是一个或多个。例如,经过搜索获得多个神经网络架构,可以向用户返回该多个神经网络架构,也可以向用户返回多个神经网络架构中的某一个的架构。在用户获取到搜索装置返回的神经网络架构后,可以使用本地业务的数据进行充分训练或者模型微调,即获得适合本地业务的神经网络模型。
示例性的,搜索装置在向用户使用的设备返回神经网络架构时,可以发送该架构的编码信息,用户的设备接收到该编码信息后,可以通过编码信息,解析获得神经网络架构。
示例性的,搜索装置还可以向用户返回神经网络架构对应的权重参数,该权重参数是在神经架构搜索中获得的权重参数。用户在本地进行训练时,可以将该权重参数作为初始权重参数。或者,直接将权重参数和神经网络架构结合,作为本地业务对应的神经网络模型。
示例性的,搜索装置还可以向用户返回神经网络架构的性能指标和硬件指标等,硬件指标用于指示该神经网络架构部署时使用的硬件的参数。
基于图4的描述,用户上传待优化模型的模型文件,搜索装置使用模型文件在搜索空间中获取到满足优化要求的神经网络架构。在神经架构搜索时,使用了模型文件进行搜索,由于模型文件是用于本地业务推理的模型文件,所以可以使得获得的神经网络架构能够适合本地业务。
示例性的,在搜索模块220包括数据生成模块221和模型搜索模块222的情况下,图5提供了搜索装置进行神经网络架构搜索的流程框图。在图5中,交互模块210接收优化请求,数据生成模块221使用优化请求中的模型文件,生成数据生成模型,通过数据生成模型生成数据集,模型搜索模块222使用该数据集和优化请求中的优化要求,搜索得到神经网络架构。
在数据生成模型为一个的情况下,步骤402的处理如下:
搜索装置使用模型文件,确定待优化模型对应的一个数据生成模型,通过该一个数据生成模型,生成数据集,该数据集中的训练数据与获得该待优化模型的训练数据的分布满足相似条件;基于该数据集,在搜索空间中进行神经架构搜索处理,获得满足该优化要求的神经网络架构。
在本实施例中,搜索装置获取预设的初始数据生成模型,使用该初始数据生成模型生成至少一条训练数据,每条训练数据包括输入数据和标定预测值。然后将每条训练数据的输入数据分别输入待优化模型,获得每条训练数据对应的推理结果。搜索装置确定每条训练数据对应的推理结果与标定预测值的差值,得到每条训练数据对应的损失值。此处计算损失值的损失函数可以是交叉熵损失函数,本申请实施例对损失函数不做限定。
在至少一条训练数据包括多条训练数据的情况下,搜索装置将多条训练数据对应的损失值相加,获得总损失值。在至少一条训练数据包括一条训练数据的情况下,该一条训练数据的损失值即为总损失值。搜索装置使用该总损失值,更新初始数据生成模型的权重参数,得到更新后的初始数据生成模型。搜索装置使用更新后的初始数据生成模型生成至少一条训练数据,然后重新执行生成至少一条训练数据的过程,直到迭代目标数值次后,获得一个数据生成模型,将该数据生成模型确定为待优化模型对应的数据生成模型。
然后搜索装置通过该数据生成模型生成多条训练数据,多条训练数据组成数据集。由于数据生成模型是基于模型文件获得,所以数据集中的训练数据与获得该待优化模型的训练数据的分布满足相似条件,例如,该数据集与获得待优化模型的训练数据的方差和均值中至少一种相同或接近。搜索装置加载存储的搜索空间,使用数据集在该搜索空间中进行神经架构搜索处理,获得满足优化要求的神经网络架构。
需要说明的是,数据集中包括待优化模型的每个标签类别对应的训练数据。
在数据生成模型为多个,且每个标签类别对应一个数据生成模型的情况下,基于模型文件,获得神经网络架构的流程参见步骤501至步骤503。
步骤501,基于该模型文件,确定待优化模型的每个标签类别对应的数据生成模型。
在本实施例中,搜索装置使用待优化模型的模型文件,为每个标签类别分别确定数据生成模型,得到每个标签类别对应的数据生成模型。例如,待优化模型的标签类别为5类,会生成5个数据生成模型。
示例性的,该数据生成模型可以是GAN模型,该数据生成模型还可以是梦幻(dream)模型等,dream模型是蒸馏或提取(distill)模型中的一种。其中,GAN模型的原理为:GAN模型包括生成模型和判别模型,生成模型用于生成类似真实训练数据的样本,判别模型用于判断生成模型生成的样本是否是真实样本。在生成模型生成的样本被判别模型识别为真实样本时,GAN模型训练完成。
步骤502,通过每个标签类别对应的数据生成模型,每个标签类别对应的训练数据,每个标签类别对应的训练数据组成数据集,该数据集中的训练数据与获得待优化模型的训练数据的分布满足相似条件。
在本实施例中,搜索装置使用每个标签类别对应的数据生成模型,生成每个标签类别对应的训练数据,将所有标签类别对应的训练数据组成数据集。该数据集与获得待优化模型的训练数据的分布满足相似条件。例如,该数据集与获得待优化模型的训练数据的方差和均值中至少一种相同或接近。为了方便描述,后续将获得待优化模型的训练数据简称为原始训练数据。
示例性的,每个标签类别对应的数据生成模型可以一次性生成多条训练数据,也可以每次只生成一条训练数据,本申请实施例不做限定。
步骤503,基于该数据集,在搜索空间中进行神经架构搜索处理,获得满足优化要求的神经网络架构。
在本实施例中,搜索装置加载存储的搜索空间,使用数据集在该搜索空间中进行神经架构搜索处理,获得满足优化要求的神经网络架构。
通过步骤501至步骤503所示的流程,在用户不提供训练数据集的情况下,搜索装置自动生成数据集,由于该数据集与获得待优化模型的训练数据的分布满足相似条件,所以使用该数据集进行神经架构搜索处理,能够获得满足用户本地业务的神经网络架构。
在一种可能的实现方式中,步骤501中数据生成模型的确定方式参见图6,参见步骤601至步骤606,如下以确定目标标签类别对应的数据生成模型为例进行说明。
步骤601,对于待优化模型的目标标签类别,使用目标标签类别对应的初始数据生成模型,生成目标标签类别对应的至少一条训练数据,每条训练数据包括输入数据和标定预测值。
在本实施例中,标签类别指待优化模型对推理数据所能识别的类别。例如,待优化模型用于对8种动物图片进行分类,标签类别一共是8种。每个标签类别对应的初始数据生成模型均是神经网络模型,网络架构相同。
搜索装置获取每个标签类别对应的初始数据生成模型,如从其它设备获取每个标签类别对应的初始数据生成模型。对于待优化模型的某个标签类别(称为是目标标签类别),搜索装置使用目标标签类别对应的初始数据生成模型,生成至少一条训练数据,每条训练数据包括输入数据和标定预测值,标定预测值指示输入数据属于目标标签类别的概率值为1,标定预测值也可以称为是标签。此处,在至少一条训练数据包括多条训练数据的情况下,搜索装置可以一次生成一条训练数据,也可以一次生成多条训练数据。
示例性的,搜索装置还可以基于预设的神经网络模型,得到每个标签类别对应的初始数据生成模型,处理为:
获取用于生成数据的目标神经网络模型,对目标神经网络模型的权重参数进行随机初始化,获得目标标签类别对应的初始数据生成模型。
在本实施例中,搜索装置中存储有用于生成数据的神经网络模型,称为是目标神经网络模型。对于每个标签类别,搜索装置随机初始化目标神经网络模型的权重参数,得到每个标签类别对应的初始数据生成模型。每个标签类别对应的初始数据生成模型的网络架构相同,但是权重参数不相同。
示例性的,为了使得数据生成模型生成的数据与待优化模型更匹配,用户在输入优化要求时,在优化要求中包括待优化模型所推理的推理数据的类型,该类型为文本类型或图像类型。这样,在获取上述目标神经网络模型时,获取生成数据的类型与推理数据的类型相同的目标神经网络模型,使得数据生成模型生成的数据的类型与推理数据的类型相同。例如,待优化模型用于对图像进行分类,目标神经网络模型用于生成图像。
步骤602,将每条训练数据的输入数据,分别输入待优化模型,获得每条训练数据对应的推理结果。
在本实施例中,搜索装置将每条训练数据的输入数据,分别输入到待优化模型中,待优化模型输出每条训练数据对应的推理结果。
步骤603,基于每条训练数据对应的推理结果和每条训练数据的标定预测值,确定每条训练数据对应的损失值。
在本实施例中,搜索装置确定每条训练数据对应的推理结果和对应的标定预测值的差别,得到每条训练数据对应的损失值。此处计算损失值的损失函数可以是交叉熵损失函数,本申请实施例对损失函数不做限定。
步骤604,基于每条训练数据对应的损失值,更新初始数据生成模型的参数,得到本次更新后的数据生成模型。
在本实施例中,在至少一条训练数据包括多条训练数据的情况下,搜索装置将多条训练数据对应的损失值相加,获得总损失值。搜索装置使用该总损失值,更新初始数据生成模型的权重参数,得到本次更新后的数据生成模型。
步骤605,判断是否迭代目标数值次。
步骤606,若迭代目标数值次,则将本次更新后的数据生成模型,确定为目标标签类别对应的数据生成模型,若未迭代目标数值次,则使用本次更新后的数据生成模型继续生成至少一条训练数据,重新执行步骤602至步骤606。
其中,目标数值可以预设,并且存储在搜索装置中。
在本实施例中,搜索装置使用本次更新后的数据生成模型生成至少一条训练数据,然后重新执行步骤602至步骤606,直到迭代目标数值次后,获得一个数据生成模型,将该数据生成模型确定为目标标签类别对应的数据生成模型。这样,获得目标标签类别对应的数据生成模型,其它标签类别对应的数据生成模型均能使用图6的流程的确定。
此处需要说明是,在图6所示的流程中迭代目标数值次后,即停止训练数据生成模型,为了得到更准确的数据生成模型,可以在迭代目标数值次后,确定损失值是否小于或等于预设损失值,若损失值也小于或等于预设损失值,则确定训练完成,若损失值大于预设损失值,则可以继续训练,直到损失值也小于或等于预设损失值。
还需要说明的是,在图6所示的流程中,若待优化模型用于分类,则推理结果包括属于各种标签类别的概率值,计算损失值时,可以直接将标定预测值的概率值与推理结果中的概率值相减。若待优化模型用于检测,则推理结果包括标签类别以及检测框的位置以及面积,计算损失值时,可以将标定预测值的概率值与推理结果中的概率值相减,并且计算检测框的位置的差别,并且计算检测框的面积的差别,将概率值的差值、检测框的位置的差别和检测框的面积的差别加权,得到损失值。
通过图6的流程,待优化模型对数据生成模型生成的训练数据的推理结果与训练数据的标定预测值接近,说明数据生成模型生成的训练数据与原始训练数据相似。这样,基于每个标签类别对应的数据生成模型生成数据集后,该数据集与原始训练数据的分布满足相似条件。
在图6所示的流程中,数据生成模型可以为GAN模型,每个标签类别对应一个GAN模型。图7示出了得到目标标签类别对应的GAN模型的示意图。在图7中,目标标签类别对应的初始GAN模型生成至少一条训练数据。将该至少一条训练数据分别输入待优化模型,得到每条训练数据的推理结果。计算每条训练数据的推理结果与每条训练数据的标签预测值的损失值,使用该损失值更新初始GAN模型。重新执行该更新过程,直到得到目标标签类别对应的GAN模型。这样,对于每个标签类别,使用待优化模型的输出结果和GAN模型生成数据的标定预测值更新GAN模型,使得GAN模型生成的数据越来越接近原始训练数据。
在图6所示的流程中,是使用数据生成模型生成训练数据。另外,每个标签类别对应的数据生成模型还可以生成测试数据,测试数据组成的集合称为是测试集,测试集中测试数据的数目要小于训练数据的数目,如测试集中测试数据的数目与训练数据的数目的比例为20:80或者10:90。在使用训练数据训练获得数据生成模型后,可以使用测试集对训练获得的数据生成模型进行模型预测,用于衡量训练获得的数据生成模型的性能和推理能力。在数据生成模型的性能和推理能力未满足要求时,继续训练数据生成模型,直到使用测试集,获得满足推理能力要求和性能要求的数据生成模型。
另外,在数据生成模型为多个的情况下,也可以是多个标签类别对应一个数据生成模型,获得数据生成模型的过程与前文中获得一个数据生成模型的过程类似,此处不再赘述。
在一种可能实现方式中,在获得数据集后,使用该数据集进行神经架构搜索的处理流程,参见图8,具体参见步骤801至步骤805。图8所示的流程如下:
步骤801,基于硬件要求,对搜索空间进行优化。
其中,搜索空间为NAS中候选的神经网络架构的集合,NAS的最终搜索结果属于该集合。
在本实施例中,搜索装置使用硬件要求中的硬件规格和模型占用内存量,在搜索空间中剔除不满足该硬件要求的神经网络架构,得到优化后的搜索空间。
搜索装置可以对搜索空间中的模型架构进行编码,使得搜索空间中的神经网络架构能够被搜索装置中执行神经架构搜索的模块识别。
步骤802,使用数据集对优化后的搜索空间中的超网络(super net)进行训练,获得训练完成的超网络。
其中,超网络是整个优化后的搜索空间中最大的模型,在优化后的搜索空间中,其它模型均可以看成是该超网络裁剪部分网络架构得到的模型,也就是说搜索空间中的所有模型均是超网络的子集。
在本实施例中,搜索装置使用获得的数据集(例如,步骤503获得的数据集,再例如,使用待优化模型对应的数据生成模型生成的数据集等),对超网络进行训练,在对超网络进行训练时,是采取超网络裁剪得到的各模型共享权重的训练方式,超网络裁剪得到的各模型可以称为是子网络。示例性的,训练过程为:
对超网络进行裁剪得到多个子网络,使用训练数据每次仅更新超网络中该子网络涉及到的部分的权重参数,其它部分的参数保持不变。例如,如图9所示,更新超网络某一层的某个卷积核,从超网络采样出3子网络,每个子网络包括多层,对于第一个子网络中的第一层,仅更新3×3的卷积核,对于第二个子网络中的第一层,更新7×7的卷积核,对于第三个子网络中的第一层,更新5×5的卷积核,依此类推,每一层仅更新子网络包括的权重参数。将训练数据输入多个子网络中,计算各个子网络对应的损失值,将各个子网络的损失值相加,得到总损失值。使用该总损失值更新超网络中各个子网络的权重参数。然后搜索装置重新采样子网络,执行上述流程直至迭代次数达到最大次数,获得训练完成的超网络。
需要说明的是,上述仅是一种示例性的训练超网络的方式,本申请实施例中也可以使用其它方式训练超网络,对训练超网络的方式不进行限定。
步骤803,使用训练完成的超网络,生成多条训练数据,每条训练数据包括神经网络模型与性能要求指示的性能指标值。
在本实施例中,在获得训练完成的超网络后,使用预设的规则选择一个模型集合。例如,将超网络中随机选择神经网络模型组成模型集合等。
搜索装置确定模型集合中每个神经网络模型对应的性能指标值。示例性的,确定每个神经网络模型对应的性能指标值的方式可以是:将数据集中的数据,分别输入每个神经网络模型,得到每个数据对应的推理结果,基于每个数据对应的推理结果和每个数据的标定预测值,就能得到准确率和召回率等,对于推理时延,将每个神经网络模型部署在用户输入的硬件要求的设备上,确定每个神经网络模型对应的推理时延。这样,可以得到神经网络模型与各种性能指标值的对应关系,并且神经网络模型与性能指标值是一一对应的关系。例如,一个神经网络模型与一种性能指标值相对应,为一条训练数据。
步骤804,使用多条训练数据对评估模型进行训练,获得训练完成的评估模型。
在本实施例中,每种性能指标对应一个评估模型,例如,在分类任务中,分类的准确率的预测是一个独立的评估模型,并且推理时延也是一个独立的评估模型。评估模型可以是循环神经网络(recurrent neural network,RNN)。
在使用每种性能指标下,搜索装置使用神经网络模型与性能指标值一一对应的训练数据,对评估模型进行迭代训练,获得训练完成的评估模型。这样,每种性能指标均对应一个训练完成的评估模型。
需要说明的是,在步骤804中,每种性能指标对应一个评估模型,在另一些实现中,可以是多种性能指标共同对应一个评估模型,也就是说将一个神经网络模型输入该一个评估模型后,能够输出该神经网络模型对应的各种性能指标值。
步骤805,基于训练完成的评估模型、多条训练数据和进化算法,搜索获得满足性能要求的神经网络架构。
在本实施例中,进化算法可以是遗传算法(genetic algorithm),遗传算法是模拟达尔文生物进化理论的一种优化模型。
使用遗传算法进行搜索的过程如下:
步骤1,初代设置:搜索装置将训练评估模型的多条训练数据,作为初始代,该初始代的适应值为神经网络模型对应的性能指标值。
步骤2,迭代设置:设置最大迭代次数,并令当前迭代次数g=1。
步骤3,个体选择:设计合适的选择策略来选择神经网络模型,被选择的神经网络模型(可以称为是父代个体)进入交配池中组成父代种群,父代种群用于交叉变异以产生新的个体,即产生新的神经网络模型。此处选择策略可以基于适应值来确定,如在优化的问题为最大值问题时,具有较大适应值的个体被选择的概率相对大一些。例如,选择策略为锦标赛策略等。
在步骤3中,交叉变异过程中,可以使用交叉概率来判断父代个体是否需要进行交叉操作,交叉概率可以预先设置,如0.9。
在步骤3中,在交叉变异过程中,可以使用变异概率来判断父代个体是否需要进行变异操作,变异概率可以预先设置,如0.1。在交叉变异过程中,变异的作用是保持种群的多样性,防止种群陷入局部最优,因此可以设计为随机变异。
步骤4,通过交叉变异操作后,父代种群生成了新的子代种群,令种群迭代次数g=g+1,进行下一轮的迭代操作,即返回步骤3,直到迭代次数达到设置的最大迭代次数,选择最优性能指标值和对应的神经网络模型,作为搜索到的神经网络模型,该神经网络模型的架构即为满足优化要求的神经网络架构。
在搜索过程中,每次获得一个子代的神经网络模型后,可以将该神经网络模型输入评估模型,确定该神经网络模型的性能指标值。
需要说明的是,图8所示的流程仅是神经架构搜索的一种方式,本申请实施例对神经架构搜索的方式不进行限定。
本申请实施例中,用户无需提供训练数据集,只提供待优化模型的模型文件,就能够训练数据生成模型来学习待优化模型的原始训练数据的特征。使用数据生成模型生成的数据集就能为用户提供优化后的神经网络架构,不仅可以使得用户使用云平台优化神经网络架构,而且由于用户未提供训练数据集,所以也可以使得用户的隐私得到保护。而且还可以同时优化多种性能指标,使得优化后的神经网络架构的性能更好。
下面结合两个例子说明本申请实施例的方案的效果。
第一个例子:用户提供了残差网络(residual network,ResNet)26模型,在用户使用私有数据集的分类准确率为88.94%,用户想到提升该模型的分类准确率,但因为隐私问题无法提供训练数据。搜索装置通过GAN模型学习该模型原始训练数据的特征,生成不同标签类别的数据,作为神经架构搜索的数据集。然后从超网络中采样神经网络模型和对应的分类准确率,使用采样得到的神经网络模型和分类准确率,训练一个用于确定分类准确率的评估模型。最后通过神经架构搜索的遗传算法迭代搜索输出准确率最高的神经网络架构。用户获取到该神经网络架构后,使用本地业务的数据集对该神经网络架构进行模型训练,该训练后的模型的分类准确率相比原模型高。在第一个例子中,用户不需要提供数据集,就能够优化神经网络模型。
第二个例子:用户提供了ResNet26模型,在用户使用私有数据集的分类准确率为88.94%,用户想到提升该模型的分类准确率,并且降低推理时延,但因为隐私问题无法提供训练数据。搜索装置通过GAN模型学习该模型原始训练数据的特征,生成不同标签类别的数据,作为神经架构搜索的数据集。然后从超网络中采样神经网络模型和对应的分类准确率,使用采样得到的神经网络模型和分类准确率,训练一个用于确定分类准确率的评估模型。然后再测试这些采样出来的神经网络模型在用户输入的硬件规格的设备上运行时的推理时延,训练一个用于确定推理时延的评估模型。最后通过神经架构搜索的遗传算法迭代搜索输出神经网络架构,该神经网络架构的推理时延低,且分类准确率高。用户获取到该神经网络架构后,使用本地业务的数据集对该神经网络架构进行模型训练,该训练后的模型的分类准确率相比原模型高,并且推理时延也会降低。在第二个子例子中,用户不需要提供数据集,就能够优化神经网络模型,而且还可以同时优化多个维度的性能指标。
上面描述神经网络架构搜索的方法的处理过程,下面描述本申请实施例提供的搜索装置。
图2是本申请实施例提供的搜索装置的结构图,搜索装置是神经网络架构搜索的装置的简称。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4所述的流程,该装置包括:交互模块210和搜索模块220,其中:
交互模块210,用于接收优化请求,所述优化请求包括待优化模型的模型文件和优化要求,所述优化要求包括性能要求和硬件要求,具体可以用于实现步骤401的交互功能以及执行步骤401包含的隐含步骤;
搜索模块220,用于基于所述模型文件,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构,具体可以用于实现步骤402的搜索功能以及执行步骤402包含的隐含步骤;
所述交互模块210,还用于返回所述神经网络架构,具体可以用于实现步骤403的交互功能以及执行步骤403包含的隐含步骤。
在一种可能的实现方式中,所述性能要求包括推理时延、召回率和准确率中至少一种,所述硬件要求包括优化后的模型部署时的硬件规格和模型占用内存量中至少一种。
在一种可能的实现方式中,所述搜索模块220包括数据生成模块221和模型搜索模块222:
所述数据生成模块221,用于基于所述模型文件,确定所述待优化模型对应的至少一个数据生成模型;
通过所述至少一个数据生成模型,生成数据集,所述数据集包括训练数据,所述数据集中的训练数据与获得所述待优化模型的训练数据的分布满足相似条件;
所述模型搜索模块222,用于基于所述数据集,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构。
在一种可能的实现方式中,所述数据生成模块221,用于:
基于所述模型文件,确定所述待优化模型的每个标签类别对应的数据生成模型;
通过每个标签类别对应的数据生成模型,生成每个标签类别对应的训练数据,每个标签类别对应的训练数据组成所述数据集。
在一种可能的实现方式中,所述数据生成模块221,用于:
对于所述待优化模型的目标标签类别,使用所述目标标签类别对应的初始数据生成模型,生成所述目标标签类别对应的至少一条训练数据,每条训练数据包括输入数据和标定预测值;
将每条训练数据的输入数据,分别输入所述待优化模型,获得每条训练数据对应的推理结果;
基于每条训练数据对应的推理结果和每条训练数据的标定预测值,确定每条训练数据对应的损失值;
基于每条训练数据对应的损失值,更新所述初始数据生成模型的权重参数;
基于更新后的初始数据生成模型,确定所述目标标签类别对应的数据生成模型。
在一种可能的实现方式中,所述数据生成模块221,还用于:
在生成所述目标标签类别对应的至少一条训练数据之前,获取用于生成数据的目标神经网络模型;
对所述目标神经网络模型的权重参数进行随机初始化,获得所述目标标签类别对应的初始数据生成模型。
在一种可能的实现方式中,所述优化要求还包括所述待优化模型所推理的推理数据的类型,所述推理数据的类型为文本类型或图像类型;
所述数据生成模块221,还用于:
获取生成数据的类型与所述推理数据的类型相同的目标神经网络模型。
在一种可能的实现方式中,所述数据生成模型为GAN模型。
在一种可能的实现方式中,所述模型搜索模块222,用于:
基于所述硬件要求,对搜索空间进行优化;
使用所述数据集对优化后的搜索空间中的超网络进行训练,获得训练完成的超网络;
使用所述训练完成的超网络,生成多条训练数据,每条训练数据包括神经网络模型与所述性能要求指示的性能指标值;
使用所述多条训练数据对评估模型进行训练,获得训练完成的评估模型;
基于所述训练完成的评估模型、所述多条训练数据和进化算法,搜索获得满足所述性能要求的神经网络架构。
图2所示的搜索装置进行神经网络架构搜索的详细过程请参照前面各个实施例中的描述,在这里不进行重复说明。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是个人计算机,手机,或者网络设备等)或处理器(processor)执行本申请各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例中还提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述所提供的神经网络架构搜索的方法,或者使得所述计算设备实现上述提供的搜索装置的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(digital video disk,DVD)等),或者半导体介质(如固态硬盘等)。
本申请中术语“至少一个”包括“一个”或“多个”两种情况。本申请中术语“和/或”包括三种情况,例如,A和/或B包括A、B以及A和B三种情况。
以上描述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种神经网络架构搜索的方法,其特征在于,所述方法包括:
接收优化请求,所述优化请求包括待优化模型的模型文件和优化要求,所述优化要求包括性能要求和硬件要求;
基于所述模型文件,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构;
返回所述神经网络架构。
2.根据权利要求1所述的方法,其特征在于,所述性能要求包括推理时延、召回率和准确率中至少一种,所述硬件要求包括优化后的模型部署时的硬件规格和模型占用内存量中至少一种。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述模型文件,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构,包括:
基于所述模型文件,确定所述待优化模型对应的至少一个数据生成模型;
通过所述至少一个数据生成模型,生成数据集,所述数据集包括训练数据,所述数据集中的训练数据与获得所述待优化模型的训练数据的分布满足相似条件;
基于所述数据集,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构。
4.根据权利要求3所述的方法,其特征在于,所述基于所述模型文件,确定所述待优化模型对应的至少一个数据生成模型,包括:
基于所述模型文件,确定所述待优化模型的每个标签类别对应的数据生成模型;
所述通过所述至少一个数据生成模型,生成数据集,包括:
通过每个标签类别对应的数据生成模型,生成每个标签类别对应的训练数据,每个标签类别对应的训练数据组成所述数据集。
5.根据权利要求4所述的方法,其特征在于,所述基于所述模型文件,确定所述待优化模型对应的至少一个数据生成模型,包括:
对于所述待优化模型的目标标签类别,使用所述目标标签类别对应的初始数据生成模型,生成所述目标标签类别对应的至少一条训练数据,每条训练数据包括输入数据和标定预测值;
将每条训练数据的输入数据,分别输入所述待优化模型,获得每条训练数据对应的推理结果;
基于每条训练数据对应的推理结果和每条训练数据的标定预测值,确定每条训练数据对应的损失值;
基于每条训练数据对应的损失值,更新所述初始数据生成模型的权重参数;
基于更新后的初始数据生成模型,确定所述目标标签类别对应的数据生成模型。
6.根据权利要求5所述的方法,其特征在于,在生成所述目标标签类别对应的至少一条训练数据之前,还包括:
获取用于生成数据的目标神经网络模型;
对所述目标神经网络模型的权重参数进行随机初始化,获得所述目标标签类别对应的初始数据生成模型。
7.根据权利要求6所述的方法,其特征在于,所述优化要求还包括所述待优化模型所推理的推理数据的类型,所述推理数据的类型为文本类型或图像类型;
所述获取用于生成数据的目标神经网络模型,包括:
获取生成数据的类型与所述推理数据的类型相同的目标神经网络模型。
8.根据权利要求3至7任一项所述的方法,其特征在于,所述数据生成模型为生成对抗网络GAN模型。
9.根据权利要求3至8任一项所述的方法,其特征在于,所述基于所述数据集,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构,包括:
基于所述硬件要求,对搜索空间进行优化;
使用所述数据集对优化后的搜索空间中的超网络进行训练,获得训练完成的超网络;
使用所述训练完成的超网络,生成多条训练数据,每条训练数据包括神经网络模型与所述性能要求指示的性能指标值;
使用所述多条训练数据对评估模型进行训练,获得训练完成的评估模型;
基于所述训练完成的评估模型、所述多条训练数据和进化算法,搜索获得满足所述性能要求的神经网络架构。
10.一种神经网络架构搜索的装置,其特征在于,所述装置包括:
交互模块,用于接收优化请求,所述优化请求包括待优化模型的模型文件和优化要求,所述优化要求包括性能要求和硬件要求;
搜索模块,用于基于所述模型文件,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构;
所述交互模块,还用于返回所述神经网络架构。
11.根据权利要求10所述的装置,其特征在于,所述性能要求包括推理时延、召回率和准确率中至少一种,所述硬件要求包括优化后的模型部署时的硬件规格和模型占用内存量中至少一种。
12.根据权利要求10或11所述的装置,其特征在于,所述搜索模块包括数据生成模块和模型搜索模块:
所述数据生成模块,用于基于所述模型文件,确定所述待优化模型对应的至少一个数据生成模型;
通过所述至少一个数据生成模型,生成数据集,所述数据集包括训练数据,所述数据集中的训练数据与获得所述待优化模型的训练数据的分布满足相似条件;
所述模型搜索模块,用于基于所述数据集,在搜索空间中进行神经架构搜索处理,获得满足所述优化要求的神经网络架构。
13.根据权利要求12所述的装置,其特征在于,所述数据生成模块,用于:
基于所述模型文件,确定所述待优化模型的每个标签类别对应的数据生成模型;
通过每个标签类别对应的数据生成模型,生成每个标签类别对应的训练数据,每个标签类别对应的训练数据组成所述数据集。
14.根据权利要求13所述的装置,其特征在于,所述数据生成模块,用于:
对于所述待优化模型的目标标签类别,使用所述目标标签类别对应的初始数据生成模型,生成所述目标标签类别对应的至少一条训练数据,每条训练数据包括输入数据和标定预测值;
将每条训练数据的输入数据,分别输入所述待优化模型,获得每条训练数据对应的推理结果;
基于每条训练数据对应的推理结果和每条训练数据的标定预测值,确定每条训练数据对应的损失值;
基于每条训练数据对应的损失值,更新所述初始数据生成模型的权重参数;
基于更新后的初始数据生成模型,确定所述目标标签类别对应的数据生成模型。
15.根据权利要求14所述的装置,其特征在于,所述数据生成模块,还用于:
在生成所述目标标签类别对应的至少一条训练数据之前,获取用于生成数据的目标神经网络模型;
对所述目标神经网络模型的权重参数进行随机初始化,获得所述目标标签类别对应的初始数据生成模型。
16.根据权利要求15所述的装置,其特征在于,所述优化要求还包括所述待优化模型所推理的推理数据的类型,所述推理数据的类型为文本类型或图像类型;
所述数据生成模块,还用于:
获取生成数据的类型与所述推理数据的类型相同的目标神经网络模型。
17.根据权利要求12至16任一项所述的装置,其特征在于,所述数据生成模型为生成对抗网络GAN模型。
18.根据权利要求12至17任一项所述的装置,其特征在于,所述模型搜索模块,用于:
基于所述硬件要求,对搜索空间进行优化;
使用所述数据集对优化后的搜索空间中的超网络进行训练,获得训练完成的超网络;
使用所述训练完成的超网络,生成多条训练数据,每条训练数据包括神经网络模型与所述性能要求指示的性能指标值;
使用所述多条训练数据对评估模型进行训练,获得训练完成的评估模型;
基于所述训练完成的评估模型、所述多条训练数据和进化算法,搜索获得满足所述性能要求的神经网络架构。
19.一种神经网络架构搜索的计算设备,其特征在于,所述计算设备包括处理器和存储器,其中:
所述存储器中存储有计算机指令;
所述处理器执行所述计算机指令,以实现所述权利要求1至9任一项权利要求所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机可读存储介质中的计算机指令被计算设备执行时,使得所述计算设备执行所述权利要求1至9任一项权利要求所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111641483.XA CN116415647A (zh) | 2021-12-29 | 2021-12-29 | 神经网络架构搜索的方法、装置、设备和存储介质 |
PCT/CN2022/124950 WO2023124386A1 (zh) | 2021-12-29 | 2022-10-12 | 神经网络架构搜索的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111641483.XA CN116415647A (zh) | 2021-12-29 | 2021-12-29 | 神经网络架构搜索的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116415647A true CN116415647A (zh) | 2023-07-11 |
Family
ID=86997477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111641483.XA Pending CN116415647A (zh) | 2021-12-29 | 2021-12-29 | 神经网络架构搜索的方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116415647A (zh) |
WO (1) | WO2023124386A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117422114A (zh) * | 2023-12-19 | 2024-01-19 | 电子科技大学(深圳)高等研究院 | Ai加速器的优化方法及ai加速器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117611974B (zh) * | 2024-01-24 | 2024-04-16 | 湘潭大学 | 基于多种群交替进化神经结构搜索的图像识别方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111612134B (zh) * | 2020-05-20 | 2024-04-12 | 鼎富智能科技有限公司 | 神经网络结构搜索方法、装置、电子设备及存储介质 |
US11436498B2 (en) * | 2020-06-09 | 2022-09-06 | Toyota Research Institute, Inc. | Neural architecture search system for generating a neural network architecture |
CN113779366B (zh) * | 2020-06-10 | 2023-06-27 | 北京超星未来科技有限公司 | 用于自动驾驶的神经网络架构自动优化部署方法及装置 |
CN112381227B (zh) * | 2020-11-30 | 2023-03-24 | 北京市商汤科技开发有限公司 | 神经网络生成方法、装置、电子设备及存储介质 |
CN113283426A (zh) * | 2021-04-30 | 2021-08-20 | 南京大学 | 基于多目标神经网络搜索的嵌入式目标检测模型生成方法 |
-
2021
- 2021-12-29 CN CN202111641483.XA patent/CN116415647A/zh active Pending
-
2022
- 2022-10-12 WO PCT/CN2022/124950 patent/WO2023124386A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117422114A (zh) * | 2023-12-19 | 2024-01-19 | 电子科技大学(深圳)高等研究院 | Ai加速器的优化方法及ai加速器 |
CN117422114B (zh) * | 2023-12-19 | 2024-04-09 | 电子科技大学(深圳)高等研究院 | Ai加速器的优化方法及ai加速器 |
Also Published As
Publication number | Publication date |
---|---|
WO2023124386A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109919316B (zh) | 获取网络表示学习向量的方法、装置和设备及存储介质 | |
CN111382868B (zh) | 神经网络结构搜索方法和神经网络结构搜索装置 | |
CN112116090B (zh) | 神经网络结构搜索方法、装置、计算机设备及存储介质 | |
WO2023124386A1 (zh) | 神经网络架构搜索的方法、装置、设备和存储介质 | |
WO2020159890A1 (en) | Method for few-shot unsupervised image-to-image translation | |
CN112465043B (zh) | 模型训练方法、装置和设备 | |
CN116664719B (zh) | 一种图像重绘模型训练方法、图像重绘方法及装置 | |
CN113158554B (zh) | 模型优化方法、装置、计算机设备及存储介质 | |
CN113987236B (zh) | 基于图卷积网络的视觉检索模型的无监督训练方法和装置 | |
CN113591892A (zh) | 一种训练数据的处理方法及装置 | |
CN112270334A (zh) | 一种基于异常点暴露的少样本图像分类方法及系统 | |
CN114548382B (zh) | 迁移训练方法、装置、设备、存储介质及程序产品 | |
EP4339843A1 (en) | Neural network optimization method and apparatus | |
KR20240034804A (ko) | 자동 회귀 언어 모델 신경망을 사용하여 출력 시퀀스 평가 | |
CN111935259B (zh) | 目标帐号集合的确定方法和装置、存储介质及电子设备 | |
EP4318318A1 (en) | Information processing device for improving quality of generator of generative adversarial network (gan) | |
CN116028617B (zh) | 资讯推荐方法、装置、设备、可读存储介质及程序产品 | |
US11983240B2 (en) | Meta few-shot class incremental learning | |
CN117010480A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
CN117009556A (zh) | 一种基于评估模型的内容推荐方法及相关装置 | |
KR20240076351A (ko) | 지식 그래프를 생성하는 기법 | |
CN117336359A (zh) | 内容推送方法、相关装置和介质 | |
CN118262136A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN117725979A (zh) | 模型训练方法及装置、电子设备及计算机可读存储介质 | |
CN118035800A (zh) | 模型训练方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |