具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
自动调参:自动调参指对算法、工具的内部超参数依据特定策略进行自动调节,以最大程度提升算法、工具的性能。
黑盒优化:黑盒优化算法用于求解优化目标函数无解析形式、无梯度信息的优化问题。该类算法将目标函数看作一个黑盒模型,使用优化目标函数的输入和对应输出观测值的序列来学习和推断解空间的结构,进而对全局目标解进行高效的搜索。
优化求解器:优化求解器作为一类集成了数学优化技术和算法的软件工具,可对实际问题建模出的数学优化问题进行高效求解。优化求解器被广泛应用于包括电力、物流、交通、金融等日常生活生产中的各个领域。优化求解器可通过大量可调超参数控制内部不同算法模块的使用与交互。
Kubernetes(K8S):弹性伸缩是云计算场景一种常见的根据服务器或容器上的负载、按一定的规则、进行资源上增减的功能,在保证服务稳定性的同时可提升资源利用率。Kubernetes,是一个容器编排引擎,支持自动化部署、大规模可伸缩、应用容器化管理。使用Kubernetes可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问。
蒙特卡洛树搜索(MCTS,MonteCarlo tree search):是一种用于人工智能问题中目标决策制定的方法,它结合了随机模拟的一般性和树搜索的准确性,是高维搜索空间场景下较有效的启发式搜索算法。
持续学习:持续学习(Continual Learning),又名终身学习(LifelongLearning),用来解决机器学习场景中算法在面对多任务(数据集)时出现的旧知识被新知识覆盖的“灾难性遗忘”难题。
随着计算机技术的发展,算法模型、算法工具等受到了越来越多的关注,而在复杂算法模型、算法工具的设计中通常包含众多可调超参数,通过对这些超参数的调整,能够对算法模型、算法工具内部复杂的模块流程进行控制,使得算法模型、算法工具可以在不同场景中实现性能最大化。因此,超参调优是算法在上线使用前的一个重要步骤。
由于算法单次运行成本较高,参数规模较大,人工调参往往会是一个繁琐低效的流程。因此,可以利用自动调参工具节省了人们在手动调参上所消耗的时间,降低了调参的人力成本。自动调参工具本质上是在求解一个黑盒优化问题,通过不断地在参数空间中对超参数的取值进行采样,观测算法在对应参数设置下的性能指标,迭代搜索目标参数。
自动调参中较基本的方法包括随机搜索和网格搜索。随机搜索根据指定概率分布在搜索空间内进行一定数量的独立随机采样,其效果受采样规模的影响,容易使得目标结果仅在局部有效。网格搜索对搜索空间进行网格划分,依次对每个网格点对应的候选参数进行评估,采样复杂度随参数数量呈指数增长,时间成本较高。进一步地,自动调参算法还可以包括遗传进化类算法、基于代理模型的贝叶斯优化方法以及最早用于求解决策规划问题的蒙特卡洛树搜索算法。
然而,上述算法在实际使用中经常面对同一类型但统计上存在差异的多组数据,使用同一组超参数的算法在不同数据上的表现可能存在明显差异。因此,为了得到一组具有一定泛化性的超参数组合,人们往往需要针对多个问题数据集对目标算法进行参数优化。如何提升多数据调参的效果和效率一直是自动调参算法所面对的一大难题。
目前,可以通过以下方式进行调参:第一种方式:可以采用黑盒优化中的贝叶斯优化算法,使用基于高斯过程(GP,GaussianProcess)和随机森林(RF,Random Forest)相结合的代理模型对调参目标函数进行拟合。但贝叶斯优化中高斯过程代理模型的更新耗时以采样点数以立方的数量级增长,因此随采样数量增加,调参算法运行效率会显著降低。第二种方式:基于蒙特卡洛树搜索算法,利用树模型对参数空间进行划分,通过对选择、扩展、模拟、反向传播四个步骤的循环迭代使得目标参数在搜索树生成的过程中得到。但该方法缺少针对多任务自动调参的设计,没有配套的云上调参系统支持。第三种方法:持续比较局部搜索得到的候选参数与当前目标参数在多个数据上所得到的调参目标值,进而对当前目标参数进行更新,同时以当前目标参数的调参目标值为参照提前终止较差候选参数的评估。但该方法在原理上基于局部搜索因而受初始搜索点(初始参数)影响较大,较易使得目标结果仅在局部有效,作为一种无模型的随机搜索的方法,其对于高维调参问题往往采样复杂度较高。第四种方法:通过贝叶斯优化算法与迁移学习进行结合以应对多任务调参场景。但用户需要在本地创建脚本调用相关的应用程序编程接口(API,ApplicationProgrammingInterface)实现循环采样流程,用户工作量大。第五种方法:在远程服务器上利用贝叶斯优化算法生成参数,但对参数的评估仍需要在本地完成。用户需要在本地创建脚本调用相关的API实现循环采样流程,用户工作量大且效率低。
本说明书实施例中,提供了一种适应多数据场景的算法自动调参方法,在对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率。并且,本说明书实施例还提供了一种基于集群弹性资源的云端调参系统,通过一个调度单元的设计实现容器资源随任务负载变化的自动扩缩容,有效提升了云端调参系统的资源利用率。
具体地,本说明书实施例提供了一种云端调参系统,包括调度单元和容器集群;调度单元,被配置为响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带调参配置信息;调参算法容器,被配置为根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元;调度单元,还被配置为将多组候选超参分别发送至各组候选超参对应的目标算法容器;目标算法容器,被配置为根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器;调参算法容器,还被配置为从各目标算法容器发送的参数指标中确定目标超参。通过根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,实现了对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率和准确率。并且,由于每组候选超参对应一个目标算法容器,从而实现了容器资源随着调参任务负载的变化自动扩缩容,有效提升了云端调参系统的资源利用率与稳定性。
在本说明书中,提供了一种云端调参系统,本说明书同时涉及一种调参方法,一种调参系统,一种电力调参系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了本说明书一个实施例提供的一种云端调参系统的架构图,云端调参系统包括调度单元102和容器集群104;
调度单元102,被配置为响应于针对目标调参任务的执行指令,在容器集群104中确定调参算法容器1042,其中,执行指令携带调参配置信息。
本说明书一个或多个实施例中,云端调参系统中包括调度单元,该调度单元可以理解为集群调度管理器,通过调度单元,可以利用容器集群实现自动调参。
具体地,目标调参任务是指需要通过云端调参系统进行参数调优的任务,目标调参任务可以是不同场景下的调参任务,包括但不限于电力调参任务、物流调参任务、交通调参任务、金融调参任务等等,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。容器的本质是一个视图隔离、资源可限制、独立文件系统的进程集合,容器可以将系统的其他资源隔离开来,具有自己独立的资源视图。“视图隔离”指的是能够看到部分进程、有独立的主机名。“资源可限制”指的是可以限制内存大小、核心处理器(CPU,CentralProcessing Unit)的使用个数等。调参配置信息也可以理解为任务配置信息,调参配置信息包括但不限于调参任务名称、调参原始算法、原始算法数据路径、参数定义文件、最大并发度、调参算法设置等,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。参数定义文件中包括参数的可取值范围、参数类型、参数名称、初始值等信息。最大并发度是指调参时可以同时并行执行算法的数量。比如在调参过程中某一时刻有10组候选超参要评估,如果最大并发度是10,则可以并行地在10台机器上运行算法,每台机器上的算法分别使用其中一组参数设置。调参算法设置是指调参任务相关的参数设置,比如调参总时长,调参所使用的是树搜索方法还是随机搜索方法等。
实际应用中,调度单元在接收到针对目标调参任务的执行指令之后,在容器集群中确定调参算法容器的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。本说明书一种可能的实现方式中,每执行一个目标调参任务,调度单元可以在容器集群中随机选择任一容器作为调参算法容器,不同的目标调参任务对应的调参算法容器可能不同。本说明书另一种可能的实现方式中,调度单元可以将容器集群中的指定容器作为调参算法容器,不同的目标调参任务对应的调参算法容器相同。
需要说明的是,调度单元在容器集群中确定调参算法容器之后,可以在调参算法容器中加载调参工具,并将目标调参任务对应的调参配置信息传入调参算法容器,启动目标调参任务。
调参算法容器1042,被配置为根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元102。
本说明书一个或多个实施例中,调度单元响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器之后,进一步地,调参算法容器可以根据调参配置信息,构建目标调参任务对应的参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元。
具体地,超参也即超参数(Hyperparameter),在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给机器学习模型选择一组目标超参数,以提高学习的性能和效果。
实际应用中,针对多数据场景,若在调参过程中直接地依次在每个数据上对每一组候选超参数进行评估会导致调参效率较低下,调参成本较高。因此,以蒙特卡洛树搜索为例,调参算法容器可以通过以下两种方式中的任一种生成目标调参任务对应的多组候选超参。
本说明书一种可能的实现方式中,可以直接使用蒙特卡洛树搜索算法通过一定轮次的迭代搜索,创建参数搜索树,使用参数搜索树的结构对目标调参任务进行表征,基于参数搜索树确定多组候选超参。
本说明书另一种可能的实现方式中,可以使用其他调参任务的搜索树对其他调参任务进行表征。进一步地,可以计算其他调参任务与目标调参任务之间的相似度指标,根据相似度指标获得与目标调参任务相关的关联调参任务。利用相关性高的关联调参任务对应的关联搜索树中各变量节点上的已有信息,对目标调参任务的参数搜索树内对应变量节点的分数进行更新,获得更新后的参数搜索树,基于更新后的参数搜索树确定多组候选超参,从而实现调参任务间的经验迁移。其中,其他调参任务可以包括已完成搜索树创建的调参任务,还可以包括未完成搜索树创建的调参任务。
需要说明的是,对调参任务进行迭代搜索所用到的调参算法,除蒙特卡洛树搜索方法之外,还可以使用如贝叶斯优化算法等其他的黑盒优化算法,调参算法具体根据实际情况进行选择,本说明书实施例对此不作任何限定。计算相似度指标时,可以将搜索树的层数,每层的节点数用一个向量记录,通过比较向量间的距离衡量数据的相似性。
调度单元102,还被配置为将多组候选超参分别发送至各组候选超参对应的目标算法容器1044。
本说明书一个或多个实施例中,调度单元响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,调参算法容器根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元之后,进一步地,调度单元可以将多组候选超参分别发送至各组候选超参对应的目标算法容器。
需要说明的是,调度单元在将多组候选超参分别发送至各组候选超参对应的目标算法容器之前,可以从容器集群中确定目标算法容器。目标算法容器的数量与候选超参的数量一一对应,可以是一个,也可以是多个,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
示例性地,假设调参算法容器根据调参配置信息,构建参数搜索树;基于参数搜索树确定四组候选超参,这四组候选超参分别为候选超参1、候选超参2、候选超参3和候选超参4。则调度单元根据候选超参的数量4对应确定四个目标算法容器,将候选超参1发送至目标算法容器A、将候选超参2发送至目标算法容器B、将候选超参3发送至目标算法容器C、将候选超参4发送至目标算法容器D。
实际应用中,若候选超参的数量大于容器集群中的容器数量,则任一目标算法容器生成当前候选超参对应的参数指标之后,可以处理其他候选超参。例如容器集群中共有3个容器,假设候选超参数量为4,则将候选超参1发送至目标算法容器A、将候选超参2发送至目标算法容器B、将候选超参3发送至目标算法容器C。目标算法容器C优先生成候选超参3对应的参数指标之后,可以将候选超参4发送至目标算法容器C。
目标算法容器1044,被配置为根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器1042。
本说明书一个或多个实施例中,调度单元响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,调参算法容器根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元,调度单元将多组候选超参分别发送至各组候选超参对应的目标算法容器之后,进一步地,目标算法容器可以根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器。
具体地,目标调参任务对应的原始算法包括但不限于优化求解器、深度学习模型,原始算法数据包括但不限于模型文件、数据集,参数指标是指候选超参对应的算法性能指标,包括但不限于准确率、调参时长,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
需要说明的是,目标算法容器根据候选超参,调整目标调参任务对应的原始算法,获得目标算法,根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标之前,需要获取目标调参任务对应的原始算法和原始算法数据。本说明书实施例中,获取目标调参任务对应的原始算法和原始算法数据的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。本说明书一种可能的实现方式中,目标算法容器可以接收调度单元发送的目标调参任务对应的原始算法和原始算法数据。本说明书另一种可能的实现方式中,目标算法容器可以从云端调参系统中的共享存储空间中加载目标调参任务对应的原始算法和原始算法数据。
调参算法容器1042,还被配置为从各目标算法容器1044发送的参数指标中确定目标超参。
本说明书一个或多个实施例中,调度单元响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,调参算法容器根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元,调度单元将多组候选超参分别发送至各组候选超参对应的目标算法容器,目标算法容器根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器之后,进一步地,调参算法容器可以从各目标算法容器发送的参数指标中确定目标超参。
需要说明的是,调参算法容器从各目标算法容器发送的参数指标中确定目标超参时,对各目标算法容器发送的参数指标进行排序,选择参数指标排序靠前候选超参作为目标超参。进一步地,调参算法容器还可以从参数指标超过预设指标阈值的候选超参中随机选择目标超参,确定目标超参的方式具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
实际应用中,在确定目标超参之后,可以直接将目标超参打包发送至前端,进一步地,还可以根据目标超参和目标调参任务对应的原始算法,获得目标算法,将目标算法打包生成目标算法文件,并将目标算法文件发送至前端。当然,还可以向前端发送目标超参或目标算法对应的下载地址,以供用户下载使用。
应用本说明书实施例的方案,调度单元,被配置为响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带调参配置信息;调参算法容器,被配置为根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元;调度单元,还被配置为将多组候选超参分别发送至各组候选超参对应的目标算法容器;目标算法容器,被配置为根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器;调参算法容器,还被配置为从各目标算法容器发送的参数指标中确定目标超参。通过根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,实现了对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率和准确率。并且,由于每组候选超参对应一个目标算法容器,从而实现了容器资源随着调参任务负载的变化自动扩缩容,有效提升了云端调参系统的资源利用率与稳定性。
本说明书一种可选的实施例中,上述云端调参系统包括任务管理单元和数据存储单元;
任务管理单元,被配置为接收用户通过前端输入的针对目标调参任务的任务创建指令,并将任务创建指令携带的调参配置信息存储至数据存储单元。
具体地,任务管理单元可以理解为任务管理器,数据存储单元可以理解为数据库。任务管理器接收携带调参配置信息的任务创建指令之后,可以将调参配置信息存储至数据存储单元,在后续用户选择执行目标调参任务时,无需再向任务管理单元发送调参配置信息,任务管理单元可以直接从数据库中获取目标调参任务对应的调参配置信息。
示例性地,假设用户向任务管理单元发送目标调参任务1的任务创建指令1和目标调参任务2的任务创建指令2。任务管理单元将目标调参任务1对应的调参配置信息1、目标调参任务2对应的调参配置信息2存储至数据存储单元。之后,用户向任务管理单元发送目标调参任务1的执行指令,执行指令中可以只包括目标调参任务1的标识,无需携带调参配置信息1,任务管理器即可从数据存储单元中获取调参配置信息1。
需要说明的是,用户可以通过交互界面或命令行向任务管理单元发送针对目标调参任务的任务创建指令,本说明书一种可能的实现方式中,任务创建指令中可以直接携带调参配置信息。本说明书另一种可能的实现方式中,用户向任务管理单元发送任务创建指令,前端可以显示调参配置信息配置界面,以供用户通过配置界面输入或者选择对应的调参配置信息。
应用本说明书实施例的方案,任务管理单元接收用户通过前端输入的针对目标调参任务的任务创建指令,并将任务创建指令携带的调参配置信息存储至数据存储单元,在后续用户选择执行目标调参任务时,无需再向任务管理单元发送调参配置信息,任务管理单元可以直接从数据库中获取目标调参任务对应的调参配置信息,减少了数据传输量,提高了调参效率。
本说明书一种可选的实施例中,上述云端调参系统包括任务管理单元;
任务管理单元,被配置为接收用户通过前端输入的针对目标调参任务的执行指令,将执行指令发送至调度单元。
需要说明的是,任务管理单元在接收用户通过前端输入的针对目标调参任务的执行指令之后,可以将执行指令发送至调度单元,同时,任务管理单元在向调度单元发送执行指令时,可以将调参配置信息发送至调度单元,以使调度单元根据调参配置信息,利用容器集群实现自动调参。
应用本说明书实施例的方案,任务管理单元接收用户通过前端输入的针对目标调参任务的执行指令,将执行指令发送至调度单元,实现了根据用户需求进行调参,保证了调参任务的准确性。
本说明书一种可选的实施例中,调参配置信息包括预设并行度;
调参算法容器,还被配置为根据预设并行度和参数搜索树,异步并行生成多组候选超参。
具体地,预设并行度是指预先设置的机器并行数量,也可理解为最大并发度。比如在调参过程中预设并行度是10,则可以并行地在10台机器上对参数搜索树进行分析,异步并行生成10组候选超参。
应用本说明书实施例的方案,调参算法容器根据预设并行度和参数搜索树,异步并行生成多组候选超参,提高了获得候选超参的效率。
本说明书一种可选的实施例中,上述调参算法容器,还被配置为根据调参配置信息,确定目标调参任务对应的关联调参任务;根据关联调参任务的关联参数搜索树,更新参数搜索树;基于更新后的参数搜索树,对目标调参任务的参数数据进行迭代搜索,确定多组候选超参。
需要说明的是,调参任务可以分为两类,一类是与目标调参任务相似的关联调参任务,一类是与目标调参任务差异较大的非关联调参任务。适用于与目标调参任务相似的关联调参任务的参数可能有助于目标调参任务的进行,因此,可以根据调参配置信息,确定与目标调参任务相似的关联调参任务,根据关联调参任务的关联参数搜索树,更新目标调参任务对应的参数搜索树,基于更新后的参数搜索树,对目标调参任务的参数数据进行迭代搜索,确定多组候选超参。进一步地,可以利用与目标调参任务差异较大的非关联调参任务的参数对目标调参任务的调参过程进行验证,在调参过程中找到一组在所有数据上综合表现较好的参数,使得最终确定的超参具有一定的泛化性。
参见图2,图2示出了本说明书一个实施例提供的一种云端调参系统中蒙特卡洛树搜索算法的处理流程图,可以基于蒙特卡洛树搜索的调参算法通过搜索树的扩展生成多组候选超参,其中,候选超参也可以理解为待评估的超参数。搜索树中每一层对应于一个类别参数或整数参数,该层中每个节点对应于一个可行的取值,每条从根节点到叶节点的链路对应于一组待评估的超参数,每个节点对应的数值与包含该节点的超参数组合的评估结果相关。如图2所示,开始处理后,算法在每一次迭代中依次完成“选择”(selection)、“拓展”(expansion)、“仿真”(simulation)、“反向传播”(backpropagation)四个步骤,使搜索树向更有可能存在目标参数组合的参数空间拓展。在“选择”步骤中,算法会从根节点开始,根据指定策略选择目标子节点,直到到达叶节点。其中,指定策略包括但不限于信心上限数(UCT,UpperConfidence Bound Apply to Tree)算法、最右子节点选择算法,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。在“拓展”步骤中,算法通过尝试参数未被评估过的取值对搜索树进行扩展。在“仿真”步骤中,算法首先对连续类型参数进行采样,进而对完备的超参数组合进行评估。具体的评估任务由调度单元分配至目标算法容器完成。最后“反向传播”步骤使用评估得到的参数指标对连接根节点链路上的每一个节点的分数进行更新,判断是否满足终止条件,若否,则返回“选择”步骤;若是,则输出候选超参,结束生成候选超参。
应用本说明书实施例的方案,调参算法容器根据调参配置信息,确定目标调参任务对应的关联调参任务;根据关联调参任务的关联参数搜索树,更新参数搜索树;基于更新后的参数搜索树,对目标调参任务的参数数据进行迭代搜索,确定多组候选超参。通过在对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率。
本说明书一种可选的实施例中,调度单元,还被配置为对多组候选超参进行验证,在验证通过的情况下,将多组候选超参分别发送至各组候选超参对应的目标算法容器。
需要说明的是,在生成多组候选超参之后,调参算法容器会将每组候选超参及执行对应算法的命令信息发送至调度单元,再由调度单元将候选超参分发到目标算法容器中进行执行。为了减少目标算法容器的工作量,并保证调参过程的安全性,调度单元可以对多组候选超参进行验证。在验证时,可以验证命令信息中设计参数名称的关键词是否在可选范围内、是否包含无效或潜在有安全风险的关键词字段等等,验证方式具体根据实际情况进行选择,本说明书实施例对此不作任何限定。若设计参数名称的关键词在可选范围内、名称中不包含无效或潜在有安全风险的关键词字段等,则认为验证通过,调度单元可以将多组候选超参分别发送至各组候选超参对应的目标算法容器。若设计参数名称的关键词不在可选范围内、名称中包含无效或潜在有安全风险的关键词字段等,则认为验证不通过,调度单元可以直接过滤验证不通过的候选超参。
应用本说明书实施例的方案,调度单元对多组候选超参进行验证,在验证通过的情况下,将多组候选超参分别发送至各组候选超参对应的目标算法容器,减少目标算法容器的工作量,并保证调参过程的安全性。
本说明书一种可选的实施例中,上述云端调参系统还包括共享存储单元;
共享存储单元,被配置为接收用户通过前端发送的调参任务信息,并存储调参任务信息;向用户反馈调参任务信息对应的存储信息;
目标算法容器,还被配置为从共享存储单元中获取目标调参任务对应的调参任务信息,其中,调参任务信息包括原始算法和原始算法数据;将目标调参任务对应的调参日志发送至调参算法容器。
需要说明的是,云端调参系统中还包括共享存储单元,共享存储单元也可以理解共享数据存储空间,共享存储单元给调参工具提供了一个数据存储的介质。调参的过程中调参算法会陆续生成上百甚至上千组参数进行评估,每次评估时机器需要加载原始算法和原始算法对应的原始算法数据,数据传输量很大且需要多次传输,因此,每次用户从本地发送数据和算法是不实际的。本说明书实施例中,提供了云端共享存储单元,用户只需创建调参任务,并上传调参任务对应的调参任务信息,后续的调参工作无需用户再次参与,可以由云端调参系统直接完成。
进一步地,目标算法容器响应于调度单元发送的命令信息,从共享存储单元中获取目标调参任务对应的调参任务信息,随即执行算法运行命令,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,将参数指标和目标调参任务对应的调参日志发送至调参算法容器,由调参算法容器从各目标算法容器发送的参数指标中确定目标超参。
应用本说明书实施例的方案,共享存储单元接收用户通过前端发送的调参任务信息,并存储调参任务信息;向用户反馈调参任务信息对应的存储信息;目标算法容器从共享存储单元中获取目标调参任务对应的调参任务信息,其中,调参任务信息包括原始算法和原始算法数据;将目标调参任务对应的调参日志发送至调参算法容器,节省了数据传输量和调参效率,提高了用户调参过程的体验度。
参见图3,图3示出了本说明书一个实施例提供的一种调参方法中原始算法上传界面的界面示意图,参见图4,图4示出了本说明书一个实施例提供的一种调参方法中原始算法数据上传界面的界面示意图。调参任务开始前,用户可以在具有网络连接环境的本地计算设备上安装并登录云端调参系统。使用交互界面或命令行上传调参任务所需的调参任务信息至共享存储单元,其中,调参任务信息包括原始算法和原始算法数据,原始算法可以理解为原始算法文件,包括但不限于可执行文件、算法代码包等,原始算法数据可以理解为原始算法所需数据,包括但不限于问题模型文件、数据集等。
参见图3,上传原始算法时,用户可以指定算法名称、版本号、运行环境等,还可以浏览本地文件,选择本地路径上传原始算法文件,通过“上传”、“取消”控件完成数据上传。参见图4,上传原始算法数据时,用户可以指定算法数据名称,还可以浏览本地文件,选择本地路径上传原始算法数据文件,通过“上传”、“取消”控件完成数据上传,同时,上传原始算法数据后,上传界面可以显示原始算法数据文件在共享存储单元内的存储路径,也即共享空间路径。在后续调参任务中系统可以依据原始算法的相关信息将对应的原始算法下载到目标算法容器中,依据用户提供的存储路径将对应的原始算法数据下载到目标算法容器中。
本说明书一种可选的实施例中,上述调参配置信息包括预设调参停止条件;
调参算法容器,还被配置为对各目标算法容器发送的调参日志进行分析,并返回执行根据调参配置信息,构建参数搜索树,基于参数搜索树确定多组候选超参的步骤,在达到预设调参停止条件的情况下,从各目标算法容器发送的参数指标中确定目标超参。
具体地,预设调参停止条件包括但不限于预设调参时长、预设迭代次数,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
需要说明的是,在调参算法容器中,可以使用基于树搜索的黑盒优化算法对目标调参任务对应的超参数进行调优,其中,黑盒优化算法包括但不限于蒙特卡洛树搜索算法、贝叶斯优化算法。黑盒优化算法依据一定的策略规则生成候选超参,送入黑盒目标函数中进行评估,再将评估获得的参数指标返回到黑盒算法中对策略规则进行更新后生成下一轮待评估的候选超参。在算法调参问题中黑盒目标函数定义为原始算法在使用一组特定超参数时运行所得到的性能指标。
值得说明的是,在从各目标算法容器发送的参数指标中确定目标超参之后,进一步可以使用局部搜索方法在目标超参附近做领域搜索,获得效果更佳的超参数。
应用本说明书实施例的方案,调参算法容器对各目标算法容器发送的调参日志进行分析,并返回执行根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参的步骤,在达到预设调参停止条件的情况下,从各目标算法容器发送的参数指标中确定目标超参,实现了根据用户需求进行定制化调参,提高了目标超参的准确性。
本说明书一种可选的实施例中,上述云端调参系统包括数据存储单元;
调参算法容器,还被配置为根据目标超参和目标调参任务对应的原始算法,获得目标算法;将目标算法和目标算法对应的调参日志存储至数据存储单元。
需要说明的是,调参算法容器从各目标算法容器发送的参数指标中确定目标超参之后,可以直接将目标超参存储至数据存储单元,或者将目标超参发送至前端。进一步地,调参算法容器还可以根据目标超参调整目标调参任务对应的原始算法,获得目标算法,将目标算法存储至数据存储单元,或者将目标算法对应的目标算法文件发送至前端。
应用本说明书实施例的方案,调参算法容器根据目标超参和目标调参任务对应的原始算法,获得目标算法;将目标算法和目标算法对应的调参日志存储至数据存储单元。无需用户在本地通过目标超参调整原始算法,提高了获得目标算法的效率。
本说明书一种可选的实施例中,上述云端调参系统包括任务管理单元和数据存储单元;
任务管理单元,被配置为接收用户通过前端输入的针对目标调参任务的调参结果查询指令;从数据存储单元中查找目标调参任务对应的目标算法,并将目标算法对应的目标算法文件发送至前端。
需要说明的是,用户可以通过交互页面或命令行向任务管理单元发送调参结果查询指令,任务管理单元可以从数据存储单元中提取目标调参任务对应的结果文件,并将结果文件发送至前端,以折线统计图、饼图等可视化方式将调参效果展示给用户,或者向用户提供相关文件的下载链接。其中,结果文件包括但不限于目标超参、目标算法、目标超参下目标算法得到的效果、相比调参前的提升效果、每个参数的重要性,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
应用本说明书实施例的方案,任务管理单元接收用户通过前端输入的针对目标调参任务的调参结果查询指令;从数据存储单元中查找目标调参任务对应的目标算法,并将目标算法对应的目标算法文件发送至前端,高效、准确地获得目标算法。
本说明书一种可选的实施例中,上述调度单元,还被配置为接收用户通过前端输入的针对目标超参的调整超参,并将调整超参作为目标调参任务对应的初始超参。
需要说明的是,在对目标调参任务进行调参时,可以对调参配置信息中的参数定义文件进行分析,提取目标调参任务对应的超参初始值,也即初始超参,还可以由云端调参系统随机生成目标调参任务对应的初始超参。确定初始超参之后,调参算法容器可以在初始超参的基础上,生成多组候选超参,进一步由调参算法容器从多组候选超参对应的参数指标中确定目标超参。用户查看目标超参之后,可以直接使用目标超参对相应的算法文件进行调整,还可以对目标超参进行修改,并将修改后的调整超参上传至云端调参系统。云端调参系统在接收到调整超参之后,可以根据调整超参,更新共享存储单元中目标调参任务的调参配置信息。在后续执行目标调参任务或与目标调参任务类似的任务时,可以将调整超参作为初始超参,在调整超参的基础上进行调参任务。
应用本说明书实施例的方案,调度单元接收用户通过前端输入的针对目标超参的调整超参,并将调整超参作为目标调参任务对应的初始超参,使得后续可以在调整超参的基础上进行调参,提高了调参的效率以及准确性。
参见图5,图5示出了本说明书一个实施例提供的一种调参方法的流程图,调参方法应用于云端调参系统的调度单元,云端调参系统包括调度单元和容器集群,该方法具体包括以下步骤:
步骤502:响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带调参配置信息,调参配置信息用于调参算法容器构建参数搜索树;基于参数搜索树确定多组候选超参。
步骤504:接收调参算法容器发送的多组候选超参。
步骤506:将多组候选超参分别发送至各组候选超参对应的目标算法容器,以使目标算法容器,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,其中,参数指标用于调参算法容器确定目标超参。
需要说明的是,步骤502、步骤504、步骤506的具体实现方式与上述图1所提供的云端调参系统的处理方案相同,本说明书实施例便不再进行赘述。
应用本说明书实施例的方案,响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带调参配置信息,调参配置信息用于调参算法容器构建参数搜索树;基于参数搜索树确定多组候选超参;接收调参算法容器发送的多组候选超参;将多组候选超参分别发送至各组候选超参对应的目标算法容器,以使目标算法容器,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,其中,参数指标用于调参算法容器确定目标超参。通过根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,实现了对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率和准确率。并且,由于每组候选超参对应一个目标算法容器,从而实现了容器资源随着调参任务负载的变化自动扩缩容,有效提升了云端调参系统的资源利用率与稳定性。
参见图6,图6示出了本说明书一个实施例提供的一种调参系统的架构图,调参系统包括客户端600和服务端700,服务端700包括调度单元702和容器集群704;
客户端600,被配置为接收用户输入的针对目标调参任务的执行指令,并将执行指令发送至服务端700,其中,执行指令携带调参配置信息;
调度单元702,被配置为响应于针对目标调参任务的执行指令,在容器集群704中确定调参算法容器7042,其中,调参配置信息用于调参算法容器7042构建参数搜索树;基于参数搜索树确定多组候选超参;接收调参算法容器7042发送的多组候选超参;将多组候选超参分别发送至各组候选超参对应的目标算法容器7044,以使目标算法容器7044,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,其中,参数指标用于调参算法容器7042确定目标超参;将目标超参发送至客户端600。
应用本说明书实施例的方案,客户端,被配置为接收用户输入的针对目标调参任务的执行指令,并将执行指令发送至服务端,其中,执行指令携带调参配置信息;调度单元,被配置为响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,调参配置信息用于调参算法容器构建参数搜索树;基于参数搜索树确定多组候选超参;接收调参算法容器发送的多组候选超参;将多组候选超参分别发送至各组候选超参对应的目标算法容器,以使目标算法容器,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,其中,参数指标用于调参算法容器确定目标超参;将目标超参发送至客户端。通过根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,实现了对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率和准确率。并且,由于每组候选超参对应一个目标算法容器,从而实现了容器资源随着调参任务负载的变化自动扩缩容,有效提升了云端调参系统的资源利用率与稳定性。
参见图7,图7示出了本说明书一个实施例提供的另一种调参系统的架构图,该系统可以包括服务端700以及多个客户端600。多个客户端600之间通过服务端700可以建立通信连接,在参数调整场景中,服务端700即用来在多个客户端600之间提供调参服务,多个客户端600可以分别作为发送端或接收端,通过服务端700实现实时通信。
用户通过客户端600可与服务端700进行交互以接收其它客户端600发送的数据,或将数据发送至其它客户端600等。在参数调整场景中,可以是用户通过客户端600向服务端700发布数据流,服务端700根据该数据流生成目标超参,并将目标超参推送至其他建立通信的客户端中。
其中,客户端600与服务端700之间通过网络建立连接。网络为客户端与服务端之间提供了通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。客户端600所传输的数据可能需要经过编码、转码、压缩等处理之后才发布至服务端700。
客户端600可以为浏览器、APP(Application,应用程序)、或网页应用如H5(HyperText Markup Language5,超文本标记语言第5版)应用、或轻应用(也被称为小程序,一种轻量级应用程序)或云应用等,客户端600可以基于服务端提供的相应服务的软件开发工具包(SDK,SoftwareDevelopment Kit),如基于实时通信(RTC,RealTimeCommunication)SDK开发获得等。客户端600可以部署在电子设备中,需要依赖设备运行或者设备中的某些APP而运行等。电子设备例如可以具有显示屏并支持信息浏览等,如可以是个人移动终端如手机、平板电脑、个人计算机等。在电子设备中通常还可以配置各种其它类应用,例如人机对话类应用、模型训练类应用、文本处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
服务端700可以包括提供各种服务的服务器,例如为多个客户端提供通信服务的服务器,又如为客户端上使用的模型提供支持的用于后台训练的服务器,又如对客户端发送的数据进行处理的服务器等。需要说明的是,服务端700可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDeliveryNetwork)、以及大数据和人工智能平台等基础云计算服务的云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
参见图8,图8示出了本说明书一个实施例提供的一种电力调参系统的架构图,电力调参系统,电力调参系统包括调度单元802和容器集群804;
调度单元802,被配置为响应于针对目标电力调参任务的执行指令,在容器集群804中确定调参算法容器8042,其中,执行指令携带电力调参配置信息;
调参算法容器8042,被配置为根据电力调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元802;
调度单元802,还被配置为将多组候选超参分别发送至各组候选超参对应的目标算法容器8044;
目标算法容器8044,被配置为根据候选超参,调整目标电力调参任务对应的原始算法,获得目标算法;根据目标电力调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器8042;
调参算法容器8042,还被配置为从各目标算法容器8044发送的参数指标中确定目标超参。
需要说明的是,上述电力调参系统的具体实现方式与上述云端调参系统的实现方式相同,本说明书实施例便不再进行赘述。实际应用中,目标电力调参任务对应的原始算法包括但不限于电力优化求解器、电力调度信息生成模型,目标电力调参任务对应的原始算法数据包括但不限于优化求解算例文件、模型文件、训练集、测试集等等,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
应用本说明书实施例的方案,电力调参系统包括调度单元和容器集群;调度单元,被配置为响应于针对目标电力调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带电力调参配置信息;调参算法容器,被配置为根据电力调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,并将多组候选超参发送至调度单元;调度单元,还被配置为将多组候选超参分别发送至各组候选超参对应的目标算法容器;目标算法容器,被配置为根据候选超参,调整目标电力调参任务对应的原始算法,获得目标算法;根据目标电力调参任务对应的原始算法数据运行目标算法,获得参数指标,并将参数指标发送至调参算法容器;调参算法容器,还被配置为从各目标算法容器发送的参数指标中确定目标超参。通过根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,实现了对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率和准确率。并且,由于每组候选超参对应一个目标算法容器,从而实现了容器资源随着调参任务负载的变化自动扩缩容,有效提升了电力调参系统的资源利用率与稳定性。
本说明书一种可选的实施例中,上述调参算法容器,还被配置为根据目标超参和目标电力调参任务对应的原始算法,获得目标算法。
需要说明的是,调参算法容器从各目标算法容器发送的参数指标中确定目标超参之后,可以直接将目标超参存储至数据存储单元,或者将目标超参发送至前端。进一步地,调参算法容器还可以根据目标超参调整目标电力调参任务对应的原始算法,获得目标算法,将目标算法存储至数据存储单元,或者将目标算法对应的目标算法文件发送至前端。
示例性地,假设目标电力调参任务对应的原始算法为电力调度信息生成模型,在获得目标电力调参任务对应的目标超参之后,可以根据目标超参对电力调度信息生成模型进行调整,获得调整后的电力调度信息生成模型,进一步地,将调整后电力调度信息生成模型的模型参数发送至客户端,以使用户根据调整后电力调度信息生成模型的模型参数构建电力调度信息生成模型,利用电力调度信息生成模型的生成电力调度信息。
应用本说明书实施例的方案,调参算法容器根据目标超参和目标电力调参任务对应的原始算法,获得目标算法,将用户在本地通过目标超参调整原始算法的任务转为云端实现,节省了用户的操作流程,提高了获得目标算法的效率。
参见图9,图9示出了本说明书一个实施例提供的一种云端调参系统的处理过程流程图,云端调参系统包括任务管理器、共享数据存储空间、数据库、集群调度管理器、K8S容器集群;调参任务开始前,用户可以在具有网络连接环境的本地计算设备上安装并登录云端调参系统。使用交互界面或命令行上传调参任务所需的调参任务文件至共享数据存储空间。用户通过交互界面或命令行向任务管理器发出调参任务创建指令,用户在创建任务时可以指定调参配置信息。这些调参配置信息将被写入到数据库中。当用户触发执行任务后,任务管理器将向集群调度管理器发送任务执行指令。集群调度管理器在收到任务执行指令后,首先在K8S容器集群中创建一个调参算法容器,并在容器内加载调参工具,传入任务配置信息,并启动调参任务。调参过程中,调参算法容器中通过蒙特卡洛树搜索方法,异步并行生成多组待评估的候选超参。调参算法容器会将每组候选超参及执行对应算法的相关命令信息发送至集群调度管理器,由集群调度管理器对命令信息进行验证后分发到K8S容器集群的目标算法容器中进行执行。集群调度管理器可以根据算法执行命令队列的实时长度对K8S容器集群中的目标算法容器进行自动扩缩容,以提高资源的利用率。K8S容器集群中的每个目标算法容器在创建后首先会根据集群调度管理器传入的算法执行命令信息从共享数据存储空间加载原始算法及所需的数据文件,随即执行算法运行命令。算法运行过程中及结束后生成的日志文件将被调参算法容器收集。调参中断或结束后,调参算法容器会将结果文件和日志文件写入数据库。在收到客户端的结果查询指令后,客户端交互页面或命令行将通过任务管理器从数据库中提取结果文件,对结果数据进行展示,并提供相关文件的下载链接。
需要说明的是,本说明书实施例中的容器集群还可以是K8S以外的其他分布式框架,如机器学习分布式框架Ray,Ray实现的自动扩缩容与K8S有类似的特性,可以根据集群负载情况自动调整集群规模,区别在于Ray和K8S在扩缩规则和扩缩粒度有所差异。容器集群具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
应用本说明书实施例的方案,利用了云计算的并行能力助力算法调参任务,可使调参效率获得数量级的提升,有效保证了资源利用率,避免了任务空闲时的计算资源闲置和任务忙碌时的计算资源短缺,同时,弹性扩缩容集群调度管理使得云上资源的利用率更高,云上调参的服务稳定性更高。通过蒙特卡洛树搜索方法可以更直接地处理类别变量和整数变量,不需要做凑整(rounding)或编码(encoding)的处理,在相应调参场景下可以减少一定的重复采样,避免编码导致的维度增长。并且,蒙特卡洛树搜索算法中搜索树的结构本质上反映了搜索空间分布上的特征,可以刻画不同数据集的相似性和差异性,进而可用来在多数据调参场景中进行类似特征数据调参任务间的经验迁移,使得调参算法在面对多数据集场景时可以更有效地共享在不同数据集上的参数评估信息,提升调参质量与效率。
需要说明的是,本说明书实施例提供的云端调参系统,可以广泛应用于优化求解器调参、深度学习模型调参、推荐系统调参、库存系统调参、硬件设计调参等不同的调参场景。
参见图10a,图10a示出了本说明书一个实施例提供的第一种云端调参系统中的参数调整流程图。如图10a所示,调参算法容器下载调参配置信息,获取调参配置信息中的超参初始值或随机生成超参初始值,利用蒙特卡洛树搜索算法生成多组候选超参,将各组候选超参及候选超参对应的算法执行命令发送至调度单元。调度单元进行容器调度,确定各组候选超参对应的目标算法容器,将多组候选超参分别发送至各组候选超参对应的目标算法容器。目标算法容器从共享存储单元下载目标调参任务对应的原始算法数据和原始算法,根据候选超参,调整原始算法,获得目标算法,根据原始算法数据运行目标算法,获得调参日志,将调参日志发送至调参算法容器。调参算法容器对各目标算法容器发送的调参日志进行日志解析,并返回执行利用蒙特卡洛树搜索算法生成多组候选超参的步骤,在达到预设调参停止条件的情况下,从各目标算法容器发送的参数指标中确定目标超参。
参见图10b,图10b示出了本说明书一个实施例提供的第二种云端调参系统中的参数调整流程图。如图10b所示,本说明书实施例提供的云端调参系统,可直接用于优化求解器的超参数调优场景中。调参算法容器下载调参配置信息,获取调参配置信息中的超参初始值或随机生成超参初始值,利用蒙特卡洛树搜索算法生成多组候选超参,将各组候选超参及候选超参对应的算法执行命令发送至调度单元。调度单元进行容器调度,确定各组候选超参对应的目标算法容器,将多组候选超参分别发送至各组候选超参对应的目标算法容器。目标算法容器从共享存储单元下载优化求解器和包含数据的文件,文件为算例文件或模型文件(例如mps格式算例、lp格式算例),根据候选超参,调整优化求解器的可执行文件,获得目标可执行文件,根据包含数据的算例文件或模型文件运行目标可执行文件,获得调参日志,将调参日志发送至调参算法容器。调参算法容器对各目标算法容器发送的调参日志进行日志解析,如分析求解时间,并返回执行利用蒙特卡洛树搜索算法生成多组候选超参的步骤,在达到预设调参停止条件的情况下,从各目标算法容器发送的参数指标中确定目标超参。
参见图10c,图10c示出了本说明书一个实施例提供的第三种云端调参系统中的参数调整流程图。如图10c所示,本说明书实施例提供的云端调参系统,可直接用于深度学习模型的超参数调优场景中。调参算法容器下载调参配置信息,获取调参配置信息中的超参初始值或随机生成超参初始值,利用蒙特卡洛树搜索算法生成多组候选超参,将各组候选超参及候选超参对应的算法执行命令发送至调度单元。调度单元进行容器调度,确定各组候选超参对应的目标算法容器,将多组候选超参分别发送至各组候选超参对应的目标算法容器。目标算法容器从共享存储单元下载深度学习模型和训练、测试数据,根据候选超参,调整深度学习模型,获得目标深度学习模型,根据训练、测试数据运行目标深度学习模型,获得调参日志,将调参日志发送至调参算法容器。调参算法容器对各目标算法容器发送的调参日志进行日志解析,如分析模型预测准确率,并返回执行利用蒙特卡洛树搜索算法生成多组候选超参的步骤,在达到预设调参停止条件的情况下,从各目标算法容器发送的参数指标中确定目标超参。
参见图10d,图10d示出了本说明书一个实施例提供的第四种云端调参系统中的参数调整流程图。如图10d所示,本说明书实施例提供的云端调参系统,可以用于电力调参场景中。调参算法容器下载电力调参配置信息,获取电力调参配置信息中的超参初始值或随机生成超参初始值,利用蒙特卡洛树搜索算法生成多组候选超参,将各组候选超参及候选超参对应的算法执行命令发送至调度单元。调度单元进行容器调度,确定各组候选超参对应的目标算法容器,将多组候选超参分别发送至各组候选超参对应的目标算法容器。目标算法容器从共享存储单元下载电力优化求解器、建模工具和电网相关数据,将电网相关数据输入建模工具中,通过建模工具对电网相关数据进行处理,获得电力优化求解器对应的可执行文件,根据候选超参,调整电力优化求解器,获得目标电力优化求解器,根据目标电力优化求解器运行可执行文件,获得调参日志,将调参日志发送至调参算法容器。调参算法容器对各目标算法容器发送的调参日志进行日志解析,如分析求解时间,并返回执行利用蒙特卡洛树搜索算法生成多组候选超参的步骤,在达到预设调参停止条件的情况下,从各目标算法容器发送的参数指标中确定目标超参。
参见图11,图11示出了本说明书一个实施例提供的一种参数调整结果的可视化界面图,如图11所示,参数调整结果可视化界面包括采样列表页面、结果可视化页面以及文件下载页面,还包括“任务名称:XXX”、“开始时间:XXX”、“结束时间:XXX”、“结束状态:XXX”。在结果可视化页面中,可以以饼图的形式展示不同任务的调参时间,还可以以折线统计图的形式显示目标超参下算法的效果,当然,还可以以其他可视化方式显示调参结果,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
用户交互界面的功能设计可以在任务创建和结果查询方面给用户提供更好的便利体验。
需要说明的是,上述方法实施例中所涉及的调参配置信息、历史调参任务、调参任务信息等信息和数据,均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
与上述调参方法实施例相对应,本说明书还提供了调参装置实施例,图12示出了本说明书一个实施例提供的一种调参装置的结构示意图。如图12所示,该装置应用于云端调参系统的调度单元,云端调参系统包括调度单元和容器集群,该装置包括:
确定模块1202,被配置为响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带调参配置信息,调参配置信息用于调参算法容器构建参数搜索树;基于参数搜索树确定多组候选超参;
接收模块1204,被配置为接收调参算法容器发送的多组候选超参;
发送模块1206,被配置为将多组候选超参分别发送至各组候选超参对应的目标算法容器,以使目标算法容器,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,其中,参数指标用于调参算法容器确定目标超参。
应用本说明书实施例的方案,响应于针对目标调参任务的执行指令,在容器集群中确定调参算法容器,其中,执行指令携带调参配置信息,调参配置信息用于调参算法容器构建参数搜索树,基于参数搜索树确定多组候选超参;接收调参算法容器发送的多组候选超参;将多组候选超参分别发送至各组候选超参对应的目标算法容器,以使目标算法容器,根据候选超参,调整目标调参任务对应的原始算法,获得目标算法;根据目标调参任务对应的原始算法数据运行目标算法,获得参数指标,其中,参数指标用于调参算法容器确定目标超参。通过根据调参配置信息,构建参数搜索树;基于参数搜索树确定多组候选超参,实现了对新数据进行调参时选择性地利用其他数据上调参时所积累的信息,保证调参泛化性的同时提升调参效率和准确率。并且,由于每组候选超参对应一个目标算法容器,从而实现了容器资源随着调参任务负载的变化自动扩缩容,有效提升了云端调参系统的资源利用率与稳定性。
上述为本实施例的一种调参装置的示意性方案。需要说明的是,该调参装置的技术方案与上述的调参方法的技术方案属于同一构思,调参装置的技术方案未详细描述的细节内容,均可以参见上述调参方法的技术方案的描述。
图13示出了本说明书一个实施例提供的一种计算设备的结构框图。该计算设备1300的部件包括但不限于存储器1310和处理器1320。处理器1320与存储器1310通过总线1330相连接,数据库1350用于保存数据。
计算设备1300还包括接入设备1340,接入设备1340使得计算设备1300能够经由一个或多个网络1360通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephoneNetwork)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备1340可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Card))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,Wireless LocalArea Networks)无线接口、全球微波互联接入(Wi-MAX,World InteroperabilityforMicrowave Access)接口、以太网接口、通用串行总线(USB,UniversalSerial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,NearField Communication)接口,等等。
在本说明书的一个实施例中,计算设备1300的上述部件以及图13中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图13所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1300可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,PersonalComputer)的静止计算设备。计算设备1300还可以是移动式或静止式的服务器。
其中,处理器1320用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述调参方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的调参方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述调参方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述调参方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的调参方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述调参方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述调参方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的调参方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述调参方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。