[发明专利]一种深度学习训练中系统资源和模型超参协同优化的方法有效
申请号: | 202110111227.3 | 申请日: | 2021-01-27 |
公开(公告)号: | CN112836796B | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 韩锐;刘驰;欧阳俊彦 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/063;G06N3/08;G06F9/50 |
代理公司: | 北京中海智圣知识产权代理有限公司 11282 | 代理人: | 杨树芬 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 深度 学习 训练 系统资源 模型 协同 优化 方法 | ||
1.一种深度学习训练中系统资源和模型超参协同优化的方法,其特征在于,包括以下步骤:
步骤1,设计一套针对深度学习训练中系统资源和模型超参协同优化问题的系统且系统包括以下7个模块:
(1)目标程序模块:目标程序模块为训练代码程序,在运行初始需要接收一组模型超参数来决定训练模型方法,所述模型超参数包括:学习率、批大小、期数,每一次迭代后,训练程序能选择性地进行验证并计算出模型在验证集中的准确率;
(2)系统资源分配模块:系统资源分配模块接收来自执行者程序的一组系统资源配置参数并为目标程序分配相应系统资源,当目标程序实际资源使用量超出分配量后,目标程序将强制退出;
(3)试验生成器模块:试验生成器模块根据实验配置中的超参数搜索范围通过使用用户指定的搜索算法选出超参数组合并封装成试验对象,不同搜索算法有不同的试验生成方式,网格或随机搜索算法在最初生成所有试验,贝叶斯搜索算法则需要先生成部分试验并待运行结束后依据试验反馈再生成接续试验;
(4)试验执行器模块:试验执行器模块用于根据试验生成器模块生成的试验对象信息来生成具体的执行者程序,执行者程序将来自试验执行器给出的超参数划分为模型超参数和系统资源配置参数并分别传给目标程序和系统资源分配模块,使目标程序在给定系统资源的环境中运行并通过控制器模块交互,然后试验执行器记录各执行者程序的反馈信息并发送给试验调度器并直至试验终止;
(5)试验调度器模块:试验调度器模块根据执行者程序的反馈来决定是否对试验早停止,具体使用的调度算法是可配置的,返回CONTINUE表示应继续训练,返回STOP表示早停止;
(6)控制器模块:控制器模块控制单个试验的训练过程且其行为包括暂停、继续、终止、获取反馈,控制器模块包括分别内嵌于目标程序模块与执行者模块中的两部分,控制器模块的每一部分都能通过心跳机制检测到另一部分的存活状态;
控制器实际控制端:内嵌于目标程序模块,能够控制目标程序的运行流程,中途反馈信息需要由控制器记录;
控制器执行者端:内嵌于执行者程序,通过调用相应接口向控制器传输命令或者获取反馈信息;
(7)决策器模块:待所有试验结束之后,决策器模块根据实验结果决定最佳超参数;
步骤2,一次调参实验,包括以下步骤:
步骤2.1:配置实验,即确定超参数搜索范围、最大试验数配置;
步骤2.2:当已完成的试验达到最大试验数,则进入步骤2.5,否则,试验生成器模块依据超参数搜索范围与超参数搜索算法生成多组试验对象,新生成的试验数量、已完成试验数量、正在运行的试验数量之和不能超过最大试验数;
步骤2.3:试验执行器模块收到试验生成器模块提供的试验对象,分别启动各执行者程序,各执行者程序也分别依据自身配置向系统资源分配模块申请系统资源并启动对应的目标程序,执行者程序通过控制器模块控制目标程序模型训练行为并获取反馈信息;
步骤2.4:试验调度器模块根据反馈信息,使用调度算法判断相应试验是否能够成为最佳试验,当不能够成为最佳试验,则对试验进行早停止,目标程序运行结束的试验则会被正常停止,转到步骤2.2;
步骤2.5:此时所有试验已经完成,决策器模块根据决策算法选出最佳试验并选出当前最优超参数组;
步骤3,设计针对多目标场景的试验调度算法:
步骤3.1,设计非支配层链表数据结构:
依据非支配层的全序关系设计了一种称为非支配层链表的数据结构并基于此数据结构设计了一种多目标试验调度算法:
首先需要介绍以下两个基本概念:
(1)帕累托理论:即当解A对应的所有目标不差于解B且至少有一个目标优于B时,称为解A支配解B,当A和B之间不存在支配关系时,称为A无差别于B,当解空间中找不到能够支配解A的解,则解A就是帕累托最优解,在此定义下的最优解是一个集合,被称为帕累托前沿;
(2)非支配层:即从一个有限解集中选出帕累托前沿,并分离出来,在剩余解中重复这个过程,直到没有解剩下,每次取出的解构成一个集合,被称为非支配层,某一层里至少存在一个解支配下一层中的某些解,且不存在解会被下一层中的任意解支配,这是一种全序关系;
以下称非支配层中存储的解向量为数据点,简称点;在非支配层链表中,每个链表结点维护了一个非支配层,结点中任意两点间不存在支配关系,从第二个存储解数据的链表结点开始,从任意结点中任取一点,此点必定被前一结点中至少一个点支配且不会被后一结点中的任意点支配;由此建立一种点之间的优劣比较方式,即位于非支配层链表中靠前结点的点优于位于靠后结点的点,维护非支配层链表的关键在于添加点后调整新点以及旧点的位置,维持住链表结点内以及结点间的关系;
步骤3.2,依据非支配层的一个性质设计非支配层链表的添加点操作:
非支配层的性质是将一个非支配点集S添加到一个被维护好的非支配层L,构成一个新的点集,再从点集中取出其帕累托前沿,作为一个新的非支配层Lnew,并将不属于帕累托前沿的点淘汰,这些淘汰的点构成的集合为Se,能够证明,Se也是一个非支配点集;
步骤3.3,为非支配层链表添加点包括以下步骤:
当需要添加一个新点,先将新点加入第一个结点并维护结点,淘汰掉一个非支配点集,将非支配点集加入下一结点并维护结点,又淘汰掉一个非支配点集,以此类推,直到不可淘汰任何点为止;
步骤3.4,给非支配层链表添加点并返回此刻点被添加到的层级索引;
步骤4,依据非支配层链表,设计针对多目标场景的试验调度算法,当用于描述时间的量为T,目标为metric,设定一个起始时间T0,表示开始进行淘汰的时间值,设定一个时间量Tmax,表示任务最多运行的时间,将[T0,Tmax]区间分为k+1个时间段,除去两端,中间各分界点的时间为T1、T2、…、Tk,建立k个空的非支配层链表P1、P2、…、Pk,其中Pi和Ti相对应(1≤i≤k),确定启动的最少试验数Nmin且只有当前已运行试验数超过这个值时则早停止,对于第K个试验运行到某轮时,时间量为TC,在[T0,Tmax]区间设置k个检查阶段,当TC首次超过Ti时,进入第i个检查阶段;当试验调度器在时间TC获得了K号试验的反馈结果,算法的运作过程是返回标志CONTINUE或者STOP时结束所有步骤,CONTINUE标志表示继续进行下一轮训练,STOP表示停止训练。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110111227.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:代码生成方法和装置
- 下一篇:自动调节臭氧浓度的消毒装置