掌桥专利:专业的专利平台
掌桥专利
首页

一种超参数调优方法、装置及存储介质

文献发布时间:2023-06-19 11:32:36


一种超参数调优方法、装置及存储介质

技术领域

本申请涉及深度学习技术领域,特别是涉及一种超参数调优方法、装置及存储介质。

背景技术

目前,深度学习被应用于大数据分析、计算机视觉和自然语言处理等各种领域。为了现实中的复杂问题,深度学习模型往往结构复杂,且需要以极大的数据量训练网络,而训练和推理都需要大量的计算资源才能快速运行。

深度学习模型的超参数调优是以计算资源替代专家经验,设定若干超参数建立深度学习模型,对深度学习模型进行训练,将深度学习模型效果最好的那一组超参数设定为最终超参数。上述过程中,每一组超参数都需要对应一个深度学习模型,并进行训练结果对比,所以对计算资源提出了要求,若大量减少计算量,则会降低深度学习模型的精度,因此训练精度与计算资源产生矛盾。

由此可见,如何平衡训练精度与计算资源之间的关系是本领域技术人员亟待解决的问题。

发明内容

本申请的目的是提供一种超参数调优方法、装置及存储介质,根据具体场景中可用的计算资源选择不同的超参数调优策略,能够平衡训练精度与计算资源之间的关系。

为解决上述技术问题,本申请提供一种超参数调优方法,包括:

预先存储计算资源的资源量与超参数调优策略的对应关系;

获取当前可用的所述计算资源;

调用所述对应关系,并依据所述对应关系确定当前可用的所述计算资源对应的超参数调优策略;

根据所述超参数调优策略对超参数进行调优。

优选地,所述依据所述对应关系确定当前可用的所述计算资源对应的超参数调优策略,具体包括:

若当前可用的所述计算资源的资源量不小于第一预设阈值,则所述超参数调优策略为对全部所述超参数进行并行调优;

若当前可用的所述计算资源的资源量小于所述第一预设阈值且大于第二预设阈值,则所述超参数调优策略为对全部所述超参数进行并行调优并在调优过程中采用早停策略;

若当前可用的所述计算资源的资源量不大于所述第二预设阈值,则所述超参数调优策略为对全部所述超参数进行降维,并对降维后的所述超参数进行调优;

其中,所述第一预设阈值大于所述第二预设阈值。

优选地,所述对全部所述超参数进行降维,并对降维后的所述超参数进行调优具体为:

对全部所述超参数进行分组;

对各组所述超参数进行并行调优。

优选地,所述对全部所述超参数进行降维,并对降维后的所述超参数进行调优具体为:

按照对于超参数调优结果的影响由大到小的顺序对全部所述超参数进行排序;

按照所述超参数的顺序,选取至少一个所述超参数进行调优。

优选地,在所述按照所述超参数的顺序,选取至少一个所述超参数进行调优之后,还包括:

判断是否有剩余所述计算资源;

若有,则返回所述按照所述超参数的顺序,选取至少一个所述超参数进行调优的步骤。

优选地,在所述根据所述超参数调优策略对超参数进行调优之后,还包括:

获取超参数调优结果;

依据所述超参数调优结果更新所述对应关系。

优选地,所述对全部所述超参数进行并行调优具体为:

采用贝叶斯优化算法对全部所述超参数进行并行调优。

为解决上述技术问题,本申请还提供一种超参数调优装置,包括:

存储模块,用于预先存储计算资源的资源量与超参数调优策略的对应关系;

获取模块,用于获取当前可用的所述计算资源;

确定模块,用于调用所述对应关系,并依据所述对应关系确定当前可用的所述计算资源对应的超参数调优策略;

调优模块,用于根据所述超参数调优策略对超参数进行调优。

为解决上述技术问题,本申请还提供一种超参数调优装置,包括存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如所述的超参数调优方法的步骤。

为解决上述技术问题,本申请还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的超参数调优方法的步骤。

本申请所提供的超参数调优方法,由于预先存储了计算资源的资源量与超参数调优策略的对应关系,因此在获取到当前可用的计算资源时,可以依据对应关系选择当前可用的计算资源对应的超参数调优策略,然后根据该超参数调优策略对超参数进行调优。应用以上技术方案,根据具体场景中可用的计算资源选择不同的超参数调优策略,能够最大限度的利用现有计算资源,达到最优的调优效果,尽可能的满足训练精度的要求。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种超参数调优方法的流程图;

图2为本申请实施例提供的一种超参数调优装置的结构示意图;

图3为本申请另一实施例提供的超参数调优装置的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。

在深度学习中,深度学习模型的训练是一个非常消耗计算资源的过程,为了现实中的复杂问题,深度学习模型往往结构复杂,且需要极大的数据量训练网络,尽管有很多新的加速器被开发出来致力于优化深度学习的训练速度,但是深度学习模型训练始终都需要大量的计算资源才能运行。

深度学习模型的超参数调优的目的是以计算资源替代专家经验,以某种算法找到最佳超参数组合的过程。超参数为深度学习模型外部的参数,在深度学习模型训练中,超参数的取值一般不会发生变化,在超参数调优过程中,一般由某个算法在超参数取值范围内进行采样,每一组超参数对应一个深度学习模型,然后对各个深度学习模型分别进行训练并进行评估,在训练结束时,对训练结果进行评估,比较最接近预想结果的深度学习模型结果,将最优的深度学习模型使用的一组超参数设为最优超参数组合,因为对于深度学习模型的训练是十分耗费时间的,所以算法对于超参数进行采样以及对于深度学习模型进行评估所消耗的时间几乎是可以忽略不计的,在训练过程中,因为超参数可能有很多组,所以需要训练多个深度学习模型,所以训练时间是十分长的,而并行对深度学习模型进行计算,导致使用的计算资源也是十分巨大的。

在深度学习的超参数调优过程中,计算资源是决定超参数调优过程中十分重要的一环,在超参数调优中,深度学习模型采样也是影响超参数调优过程耗时的一项,深度学习模型采样的超参数数量以及超参数范围,或者直接采取更有效的采样算法来节省计算资源,现有技术中,贝叶斯优化是高效采样算法,贝叶斯优化可以根据算法上一轮的运算结果来决定下一次的超参数采样位置,所以在算法采样过程中可以不断的接近最优,从而提高采样效率。或者采用早停策略,采取提前停止某些深度学习模型的训练,当训练达到某种阶段,若预计此训练可以达到某种效果,则继续进行,若预计此训练不能达到某种效果,则停止训练。或者可以直接减少超参数的数量,将算法采样的超参数数量减少,可以大幅度减少计算量,例如有m个超参数,每个超参数有n个变换方式,总共有n

鉴于目前存在的上述问题,本申请提供一种超参数调优方法、装置及存储介质,根据具体场景中可用的计算资源选择不同的超参数调优策略,能够平衡训练精度与计算资源之间的关系。

为了便于理解,下面对本申请的技术方案所适用的系统架构进行介绍。本申请提供的超参数调优方法应用于服务器,服务器可以是专门实现某一单一业务的专用服务器,也可以是能够实现多种业务的通用服务器,服务器的数量可以是一台,也可以是多台,均不影响本申请技术方案的实现。本申请中,服务器内包括CPU(Central Processing Unit,中央处理器)和/或GPU(Graphics Processing Unit,图像处理器),实际应用中,考虑到深度学习模型的数据集大小以及模型大小,使用多卡GPU服务器的情况比较多,本实施例中以多卡GPU服务器为例进行说明。

本申请中,服务器用于执行超参数调优方法的步骤,包括预先存储计算资源的资源量与超参数调优策略的对应关系;获取当前可用的计算资源;调用对应关系,并依据对应关系确定当前可用的计算资源对应的超参数调优策略;根据超参数调优策略对超参数进行调优。

进一步地,服务器在自动机器学习算法工具平台(AutoML-Suite)中的超参数调优模块(AutoTune)中建立判断的策略,通过计算资源和精度要求来设定选用哪种超参数调优策略,当使用超参数调优模块搜索最优超参数时,可以根据实际需要,为深度学习模型搜索最优的超参数组合,所寻找的超参数包括训练相关超参数、模型结构相关超参数。超参数调优模块可以查询GPU数量以及GPU运算速度,GPU可以执行算法、对深度学习网路进行运算,超参数调优模块设有多种算法,如高效采样算法贝叶斯优化和早停策略。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。

图1为本申请实施例提供的一种超参数调优方法的流程图。参见图1所示,该超参数调优方法包括:

S10:预先存储计算资源的资源量与超参数调优策略的对应关系。

本申请实施例中,计算资源可以是多种类型的资源,例如可以是服务器的个数、GPU的个数、GPU的核数等计算力资源,也可以是表征运行时长的时间资源,例如GPU hour,还可以是表征任务个数的任务资源,本申请中,任务个数为需要调优的超参数的个数,可以理解,超参数可以是与训练相关的,也可以是与模型结构相关的。超参数调优策略即针对不同的计算资源的资源量,选择对不同的超参数进行调优。例如当计算资源的资源量较多时,对全部超参数进行并行调优,当计算资源的资源量较少时,可以适当舍弃一些超参数,对对于超参数调优结果的影响比较关键的超参数进行调优。

需要说明的是,在确定计算资源的资源量与超参数调优策略的对应关系后,为了方便在真正使用过程中对该对应关系进行快速的访问,从而提高判断选择哪个超参数调优策略的快速性。在具体实施中,可将上述对应关系存储于内存或读取速度较快的固态硬盘中。

S11:获取当前可用的计算资源。

S12:调用对应关系,并依据对应关系确定当前可用的计算资源对应的超参数调优策略。

S13:根据超参数调优策略对超参数进行调优。

本实施例中,可以通过与GPU连接的显示装置(例如LED显示屏)快速获取当前可用的计算资源,获取到当前可用的计算资源后,查询到计算资源的资源量,根据资源量的大小为其匹配对应的超参数调优策略,并根据超参数调优策略对超参数进行调优。

本申请所提供的超参数调优方法,由于预先存储了计算资源的资源量与超参数调优策略的对应关系,因此在获取到当前可用的计算资源时,可以依据对应关系选择当前可用的计算资源对应的超参数调优策略,然后根据该超参数调优策略对超参数进行调优。应用以上技术方案,根据具体场景中可用的计算资源选择不同的超参数调优策略,能够最大限度的利用现有计算资源,达到最优的调优效果,尽可能的满足训练精度的要求。

在上述实施例的基础上,作为一种优选地实施例,S12中,依据对应关系确定当前可用的计算资源对应的超参数调优策略,具体包括:

若当前可用的计算资源的资源量不小于第一预设阈值,则超参数调优策略为对全部超参数进行并行调优。

本实施例中,超参数调优方法运行在GPU上,当GPU数量和GPU运算量充足,例如用户将AutoTune部署在多台服务器上,每台服务器设有8张GPU,用户可以接受上千GPU用时的运行时间,将此计算资源设为第一预设阈值,当前可用的计算资源的资源量不小于第一预设阈值时,根据用户需求匹配的超参数调优策略为对全部超参数进行并行调优。在该场景下,可以采用任意采样算法,如网格搜索、随机搜索或者贝叶斯优化,对任意数量的超参数进行调整,可以理解,调优的超参数数目越多,计算资源消耗越大,任务的运行时间越长,最终的超参数调优结果精度越高。

优选地,对全部超参数进行并行调优具体为:

采用贝叶斯优化算法对全部超参数进行并行调优。

在具体实施中,基于后验概率的贝叶斯优化算法是更高效的采样算法,贝叶斯优化能根据上一轮的结果决定下一次采样的位置,所以在采样过程中可以不断接近潜在的最优取值,从而提高采样效率。

若当前可用的计算资源的资源量小于第一预设阈值且大于第二预设阈值,则超参数调优策略为对全部超参数进行并行调优并在调优过程中采用早停策略。

本实施例中,可以将一台设有8张GPU的服务器的计算资源设为第二预设阈值。当GPU数量和GPU运算量较为充足,比如用户将AutoTune部署在两台服务器上,每台服务器设有8张GPU,用户可以接受因为早停策略带来的10%-20%的精度损失,且用户希望节省时间,当前可用的计算资源的资源量小于第一预设阈值且大于第二预设阈值,根据用户需求匹配的超参数调优策略为对全部超参数进行并行调优,并在调优过程中采用早停策略。超参数调优策略根据用户需求采用高效采样算法对超参数进行全局调优,并配合早停策略或者带有早停策略的调参算法。

若当前可用的计算资源的资源量不大于第二预设阈值,则超参数调优策略为对全部超参数进行降维,并对降维后的超参数进行调优;

其中,第一预设阈值大于第二预设阈值。

本实施例中,当GPU数量和GPU运算量极为有限,比如用户将AutoTune部署在一台服务器上,此服务器设有8张GPU,用户希望在较短时间内获得调优结果,并且对于精度没有要求。超参数调优策略根据用户需求对全部超参数进行降维,并对降维后的超参数进行调优。

本申请所提供的超参数调优方法,设置第一预设阈值和第二预设阈值,并且根据具体场景中可用的计算资源选择对应的具体的超参数调优策略,能够最大限度的利用现有计算资源,达到最优的调优效果,满足用户需求。

在上述实施例的基础上,作为一种优选地实施例,对全部超参数进行降维,并对降维后的超参数进行调优具体为:

对全部超参数进行分组;

对各组超参数进行并行调优。

在具体实施中,当有m个超参数需要调整时,每个超参数有n个变换方式,那么总的备选超参数组合数量是n

上述实施例中,对全部超参数无差别进行分组,对于有些对超参数调优结果的影响很小的超参数也进行了调优,造成了计算资源的浪费,作为一种优选地实施例,该方法还包括:对全部超参数进行降维,并对降维后的超参数进行调优具体为:

按照对于超参数调优结果的影响由大到小的顺序对全部超参数进行排序;

按照超参数的顺序,选取至少一个超参数进行调优。

在具体实施中,将需要调整的超参数按照其重要性进行排序,其中,模型结构相关参数对于超参数调优结果的影响大于训练相关参数,顺序依次为:模型的层数、通道数、正则化(模型结构相关参数)、优化器(optimizer)、学习率、动量、与学习率变化相关的其他超参数、与优化器相关的其他超参数,重要性高的超参数对于训练精度影响大于重要性低的超参数。

实际应用中,可能并不需要对全部的超参数进行调优。在有限的计算资源下,在所需调整的超参数中优先选择重要性高的超参数进行调优,选择备选超参数中重要性最高1-2个进行调优。其余超参数如已进行了调优,则用调优后的取值;如还未进行调优,则使用默认值。

进一步地,在按照超参数的顺序,选取至少一个超参数进行调优之后,还包括:

判断是否有剩余计算资源;

若有,则返回按照超参数的顺序,选取至少一个超参数进行调优的步骤。

在具体实施中,在对重要性较高的超参数调优完毕之后,判断计算资源是否有剩余,例如GPU hour计算资源还有剩余,则按照重要性的顺序再进行采样,重复上述过程;如计算资源无剩余或剩余较少,则停止,读取现有超参数。需要说明的是,若在对重要性较高的超参数调优的过程无法运行完毕就停止,则现有的超参数就是在当下计算资源条件下最优超参数组合。

本申请所提供的超参数调优方法,直到计算资源耗尽时,重要性比较高的超参数优先经过了调优,而重要性比较低的超参数会采用默认值。

进一步地,在根据超参数调优策略对超参数进行调优之后,还包括:

获取超参数调优结果;

依据超参数调优结果更新对应关系。

本实施例中,在每次调优完成之后,对超参数调优结果进行评估,并且对计算资源的资源量与超参数调优策略的对应关系进行更新和完善,例如动态调整第一预设阈值和第二预设阈值的具体数值,采用更高效率的采用算法及早停策略,变更早停策略开始的时间等,以确保根据计算资源和精度要求提供不同的超参数调优方案,确保每一种场景下的计算资源都可以充分利用。

在上述实施例中,对于超参数调优方法进行了详细描述,本申请还提供超参数调优装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。

图2为本申请实施例提供的一种超参数调优装置的结构示意图。如图2所示,基于功能模块的角度,该装置包括:

存储模块10,用于预先存储计算资源的资源量与超参数调优策略的对应关系;

获取模块11,用于获取当前可用的计算资源;

确定模块12,用于调用对应关系,并依据对应关系确定当前可用的计算资源对应的超参数调优策略;

调优模块13,用于根据超参数调优策略对超参数进行调优。

作为一种优选地实施方式,调优模块具体包括:

第一调优单元,用于若当前可用的计算资源的资源量不小于第一预设阈值,则超参数调优策略为对全部超参数进行并行调优;

第二调优单元,用于若当前可用的计算资源的资源量小于第一预设阈值且大于第二预设阈值,则超参数调优策略为对全部超参数进行并行调优并在调优过程中采用早停策略;

第三调优单元,用于若当前可用的计算资源的资源量不大于第二预设阈值,则超参数调优策略为对全部超参数进行降维,并对降维后的超参数进行调优;

其中,第一预设阈值大于第二预设阈值。

作为一种优选地实施方式,超参数调优装置还包括:

更新模块,用于获取超参数调优结果并依据超参数调优结果更新对应关系。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请所提供的超参数调优装置,由于预先存储了计算资源的资源量与超参数调优策略的对应关系,因此在获取到当前可用的计算资源时,可以依据对应关系选择当前可用的计算资源对应的超参数调优策略,然后根据该超参数调优策略对超参数进行调优。应用以上技术方案,根据具体场景中可用的计算资源选择不同的超参数调优策略,能够最大限度的利用现有计算资源,达到最优的调优效果,尽可能的满足训练精度的要求。

图3为本申请另一实施例提供的超参数调优装置的结构图,如图3所示,基于硬件结构的角度,该装置包括:存储器20,用于存储计算机程序;

处理器21,用于执行计算机程序时实现如上述实施例中超参数调优方法的步骤。

本实施例提供的超参数调优装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。

其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有GPU,GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的超参数调优方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。

在一些实施例中,超参数调优装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。

本领域技术人员可以理解,图3中示出的结构并不构成对超参数调优装置的限定,可以包括比图示更多或更少的组件。

本申请实施例提供的超参数调优装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:由于预先存储了计算资源的资源量与超参数调优策略的对应关系,因此在获取到当前可用的计算资源时,可以依据对应关系选择当前可用的计算资源对应的超参数调优策略,然后根据该超参数调优策略对超参数进行调优。应用以上技术方案,根据具体场景中可用的计算资源选择不同的超参数调优策略,能够最大限度的利用现有计算资源,达到最优的调优效果,尽可能的满足训练精度的要求。

最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种超参数调优方法、装置及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种超参数调优方法、装置及存储介质
  • 一种超参数调优方法、装置及设备
技术分类

06120112966138