CN112486584A - 一种利用强化学习进行大数据平台调参的方法和系统 - Google Patents
一种利用强化学习进行大数据平台调参的方法和系统 Download PDFInfo
- Publication number
- CN112486584A CN112486584A CN201910785445.8A CN201910785445A CN112486584A CN 112486584 A CN112486584 A CN 112486584A CN 201910785445 A CN201910785445 A CN 201910785445A CN 112486584 A CN112486584 A CN 112486584A
- Authority
- CN
- China
- Prior art keywords
- tuning
- tuning parameters
- behaviors
- parameters
- data platform
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000002787 reinforcement Effects 0.000 title claims abstract description 21
- 230000006399 behavior Effects 0.000 claims abstract description 58
- 238000012549 training Methods 0.000 claims abstract description 20
- 238000003062 neural network model Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 3
- 238000013139 quantization Methods 0.000 claims description 3
- 230000007613 environmental effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提供一种利用强化学习进行大数据平台调参的方法和系统。该方法包括:根据调优参数的取值范围描述其多个行为;利用大数据平台执行调优参数的多个行为并根据执行性能情况获得调优参数的多个行为的回报;将调优参数的多个行为和各行为对应的回报输入到深度神经网络模型进行训练,学习获得调优参数的优化行为路径。本发明的方法和系统使用深度强化学习进行环境学习与调参,能够有效地获得多个参数的优化行为路径。
Description
技术领域
本发明涉及大数据信息处理技术领域,尤其涉及一种利用强化学习进行大数据平台调参的方法和系统。
背景技术
大数据平台是指以海量数据处理为目标,实现了多机器之间资源调度、任务分配、同步计算和结果展现的平台。由于需要使用多台机器之间的同步,所以需要利用可以跨平台部署的编程技术。而Java就是一种非常合适的跨平台编程语言,由于使用了JVM作为底层支持,使得平台的部署可以不局限于操作系统和硬件架构,可以在不同架构的机器中实现数据计算,例如,目前最为流行的大数据平台Spark是使用scala语言(一种以Java和JVM为基础的语言)为基础的大数据计算平台。同时,分布式处理拥有许多的细节需要考虑,所以Spark拥有非常多的可供调节的各项参数。
近年来,对Spark的参数调优的研究从来没有停止。例如2018年ASPLOS的一篇论文(Datasize-Aware High Dimensional Configurations Auto-Tuning of In-MemoryCluster Computing),使用梯度回归树为Spark的42个参数进行运行时间的建模,并用遗传算法从模型中寻找最优配置,这种方法需要大量的训练数据;又如2017年SOCC的论文(BestConfig:Tapping the Performance Potential of Systems via AutomaticConfiguration Tuning),通过使用分型和值域分割,从而在短时间内找到数据集的最优配置,这种方法输入空间庞大,也需要大量数据作为支撑,从而导致了大量的时间浪费。
现有技术虽然能够实现最优配置的寻找,但是存在两个问题:1)、需要通过大量执行程序保存数据来进行调参,例如上述第一种方法需要利用执行的数据进行建模,而第二种方法需要多个运行数据来涵盖整个输入空间。2)、仅对Spark本身的参数进行调整,而忽略了Spark底层的JVM参数对运行速度的影响。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种利用强化学习进行大数据平台调参的方法和系统。
根据本发明的第一方面,提供一种利用强化学习进行大数据平台调参的方法。该方法包括以下步骤:
根据调优参数的取值范围描述其多个行为;
利用大数据平台执行调优参数的多个行为并根据执行性能情况获得调优参数的多个行为的回报;
将调优参数的多个行为和各行为对应的回报输入到深度神经网络模型进行训练,学习获得调优参数的优化行为路径。
在一个实施例中,对于调优参数,采用量子化思想基于固定单位数量描述其对应的多个行为。
在一个实施例中,对于数值类型的调优参数,以数值范围的上限值的百分比来描述其多个行为。
在一个实施例中,在执行调优参数的多个行为过程中,将每次从大数据平台获得的调优参数的行为、回报信息放入到记忆库中构成训练样本集。
在一个实施例中,对深度神经网络模型进行训练时,从所述记忆库随机选出批量训练样本,通过更新深度神经网络模型学习到各调优参数的优化行为路径。
在一个实施例中,所述调优参数包括Spark相关参数和JVM相关参数。
在一个实施例中,构建多个深度神经网络模型并行执行多个调优参数的调节,其中每个深度神经网络模型对应一个调优参数的调节。
根据本发明的第二方面,提供一种利用强化学习进行大数据平台调参的系统。该系统包括:
用于根据调优参数的取值范围描述其多个行为的模块;
用于利用大数据平台执行调优参数的多个行为并根据执行性能情况获得调优参数的多个行为的回报的模块;
用于将调优参数的多个行为和各行为对应的回报输入到深度神经网络模型进行训练,学习获得调优参数的优化行为路径的模块。
在一个实施例中,所述执行性能情况包括任务运行时间、资源利用率、JVM性能中的一项或多项。
与现有技术相比,本发明的优点在于:使用无监督的强化学习作为大数据平台调参的手段,避免了大量寻找训练数据的时间。此外,实现了JVM参数和Spark参数的混合调参,具有更大的调优空间,并且通过结合两个层次的参数,能够找到更优的配置。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1是根据本发明一个实施例的利用强化学习进行大数据平台调参方法的流程图;
图2是根据本发明一个实施例的不同类型调优参数的调参操作的示意图;
图3是根据本发明一个实施例的利用强化学习进行大数据平台调参方法的运行原理图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
本发明提供实际可行的,使用深度强化学习DQN(Deep Q-Learing)为基础的大数据平台跨层次的参数调优手段。下文将以Spark平台为例介绍本发明的原理和方法。应理解的是,本发明也适用于其他的大数据平台。
图1是根据本发明一个实施例的基于强化学习进行大数据平台调参方法的流程图,该方法基于深度强化学习(DQN)实现大数据平台的参数优化。具体地,该实施例包括以下步骤:
步骤S110,确定待调优参数并基于调优参数的数据类型描述其多个行为。
影响大数据平台性能的参数众多,以Spark平台为例,通过调节各种参数来优化执行效率,能够提升Spark作业的执行性能。
例如,参数num-executors/spark.executor.instances用于设置Spark作业总共要用多少个Executor(执行器)进程来执行。又如,参数executor-memory/spark.executor.memory用于设置每个Executor进程的内存。
此外,考虑到Spark平台底层的JVM参数对任务执行速度的影响,本发明实施例可进一步调节JVM参数。
在本发明的强化学习中,用各调优参数的取值来描述其行为。例如,在本地保存所有调优参数的可调节的范围,在描述其行为时(即进行调参),并不是直接给出调优参数的取值,而是给出对该调优参数应该进行的操作,例如,参数值变大或变小等。
又如,使用单位化调节来降低迭代次数,参见图2所示,对于数值类型的参数,以取值范围的上限值的百分比描述多个行为,具体取值包括调优参数上限值的1%、-1%、10%、-10%等。对于布尔型的参数,取值包括false和true。对于选择型参数,取值包括“选项1”、“选项2”、“选项3”、“选项4”等。通过这种参数选取方式,能够更快的寻找和迭代到最优配置,并且避免了用深度神经网络模型做回归问题的难点,这种方式对于参数空间过于庞大的大数据平台参数调优效果尤其明显。
在本发明实施例中,待调优参数作为强化学习的状态(state),以参数的取值作为参数的行为(action)。
步骤S120,利用大数据平台执行调优参数的各个行为,获取各行为的执行性能结果。
在本发明实施例的强化学习过程中,学习每个调优参数选择不同行为执行后获得的回报,所获得回报可采用任务执行时间、资源利用率或JVM的GC时间中的一项或多项来衡量,优选地,采用任务执行时间和JVM的GC时间作为回报。
步骤S130,在寻找所调优参数的最优配置过程中,采用记忆库来记录执行过的参数列表。
在本发明实施例中,采用记忆库记录下在寻找最优配置过程中,各个配置情况下的运行状态。由于在同一配置下,同一任务的运行状态趋于稳定,因此可以采用一次运行的结果来代替后续的结果。通过这种方式,能够显著降低重复计算和最优配置搜寻的成本,方便后续的重复训练,并降低训练成本。
例如,将每次从大数据平台(环境)得到调优参数、行为、回报等存储到记忆库中。
步骤S140,训练深度神经网络,学习获得调优参数的优化行为路径。
当记忆库中数据积累到一定程度时,可随机抽取出一批样本对深度神经网络模型进行训练,以获得各调优参数的优化行为路径。
为进一步理解本发明,图3示出了本发明实施例的学习框架和运行原理,该实施例是一个与Spark平台相对独立的强化学习框架,主要由两个部分组成:Actors与记忆库。Actor的本质是一个深度神经网络DNN,其根据输入的数据从多个行动中选取合适的行为执行;记忆库的作用是记录下执行过的参数列表,以此来达到减少重复计算的目的。
结合图3所示,Actor的作用是从输入参数的值中预测出各个参数可以采取的最优行为。因为参数空间过于庞大,使用单位化调节来降低迭代次数,例如,调参时,给出该参数应该进行的操作,操作列表如图2所示。
此外,在该实施例中,采用多Actor并行的设计,由于需要调配的参数维度很高,一个DNN难以完全记忆下这些复杂的信息,采用一个Actor只负责一个参数的调节,在提高网络操作精度的同时,能够显著降低神经网络训练的难度。
进一步地,将JVM参数也引入到参数列表中,能够实现两个层次的同时调参,这种方式具有更大的调参空间,能够获得更优的调参结果。
在图3的实施例中,记忆库的主要功能是记录下在寻找最优配置过程中,各个配置情况下的运行状态。使用数据库记录下运行状态信息后,方便后续的重复训练,其中的执行记录对于机器认识环境有重要意义,降低了系统训练的成本。
在图3的实施例中,输入数据的特点是,能同时调节JVM参数,在Actor的数据输入时,包括一些与JVM表现有关的性能参数,例如,GCtime,YGCtime,NewRatio等。这些参数一定程度上表征了JVM的性能,将这些参数一同作为输入训练,有助于Actor在复杂环境下采取正确的操作。
概括而言,在实际应用中,参数调优的过程包括:获得待调优参数的数值列表;对于每个参数,描述其多个行为;从多个行为中选择一个执行,根据性能变化情况获取此次的回报;将每次从大数据平台得到行为和对应的回报等信息放入到记忆池中,训练时从中随机选出小批量测试样本来训练等。
综上所述,本发明使用DQN进行环境学习与调参,无需使用大量数据进行建模,相对于现有技术的建模和检索式算法花费更少的时间;并且,由于DQN不依赖于环境,能够方便的进行迁移学习;提出状态复用的多Actor的并行调参方法,加快了调参速度;使用单位化调节来降低迭代次数,由于大数据平台参数输入空间理论上是无限的,为了降低探索的时间消耗,使用量子化的思想进行固定单位数量的参数调节;使用记忆库减少重复探索消耗,强化学习过程中存在着大量的重复空间探索,使用记忆库减少这部分探索的时间消耗;此外,同时进行JVM的参数调节,对Spark平台和JVM两个层次的参数进行调节,拥有更大的调参空间和更好的调参结果。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种利用强化学习进行大数据平台调参的方法,包括以下步骤:
根据调优参数的取值范围描述其多个行为;
利用大数据平台执行调优参数的多个行为并根据执行性能情况获得调优参数的多个行为的回报;
将调优参数的多个行为和各行为对应的回报输入到深度神经网络模型进行训练,学习获得调优参数的优化行为路径。
2.根据权利要求1所述的方法,其特征在于,对于调优参数,采用量子化思想基于固定单位数量描述其对应的多个行为。
3.根据权利要求2所述的方法,其特征在于,对于数值类型的调优参数,以数值范围的上限值的百分比来描述其多个行为。
4.根据权利要求1所述的方法,其特征在于,在执行调优参数的多个行为过程中,将每次从大数据平台获得的调优参数的行为、回报信息放入到记忆库中构成训练样本集。
5.根据权利要求4所述的方法,其特征在于,对深度神经网络模型进行训练时,从所述记忆库随机选出批量训练样本,通过更新深度神经网络模型学习到各调优参数的优化行为路径。
6.根据权利要求1所述的方法,其特征在于,所述调优参数包括Spark相关参数和JVM相关参数。
7.根据权利要求1所述的方法,其特征在于,构建多个深度神经网络模型并行执行多个调优参数的调节,其中每个深度神经网络模型对应一个调优参数的调节。
8.一种利用强化学习进行大数据平台调参的系统,包括:
用于根据调优参数的取值范围描述其多个行为的模块;
用于利用大数据平台执行调优参数的多个行为并根据执行性能情况获得调优参数的多个行为的回报的模块;
用于将调优参数的多个行为和各行为对应的回报输入到深度神经网络模型进行训练,学习获得调优参数的优化行为路径的模块。
9.根据权利要求8所述的系统,其特征在于,所述执行性能情况包括任务运行时间、资源利用率、JVM性能中的一项或多项。
10.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910785445.8A CN112486584A (zh) | 2019-08-23 | 2019-08-23 | 一种利用强化学习进行大数据平台调参的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910785445.8A CN112486584A (zh) | 2019-08-23 | 2019-08-23 | 一种利用强化学习进行大数据平台调参的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112486584A true CN112486584A (zh) | 2021-03-12 |
Family
ID=74920284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910785445.8A Pending CN112486584A (zh) | 2019-08-23 | 2019-08-23 | 一种利用强化学习进行大数据平台调参的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486584A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155005A (zh) * | 2016-05-20 | 2019-01-04 | 渊慧科技有限公司 | 使用伪计数的增强学习 |
CN110110862A (zh) * | 2019-05-10 | 2019-08-09 | 电子科技大学 | 一种基于适应性模型的超参数优化方法 |
CN110134697A (zh) * | 2019-05-22 | 2019-08-16 | 南京大学 | 一种面向键值对存储引擎的参数自动调优方法、装置、系统 |
-
2019
- 2019-08-23 CN CN201910785445.8A patent/CN112486584A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155005A (zh) * | 2016-05-20 | 2019-01-04 | 渊慧科技有限公司 | 使用伪计数的增强学习 |
CN110110862A (zh) * | 2019-05-10 | 2019-08-09 | 电子科技大学 | 一种基于适应性模型的超参数优化方法 |
CN110134697A (zh) * | 2019-05-22 | 2019-08-16 | 南京大学 | 一种面向键值对存储引擎的参数自动调优方法、装置、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hernández et al. | Using machine learning to optimize parallelism in big data applications | |
US8224845B2 (en) | Transaction prediction modeling method | |
CN110633153A (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
Balaprakash et al. | Active-learning-based surrogate models for empirical performance tuning | |
JP2017228086A (ja) | 機械学習管理プログラム、機械学習管理方法、および機械学習管理装置 | |
CN110826708B (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
Fekry et al. | To tune or not to tune? in search of optimal configurations for data analytics | |
Ogilvie et al. | Fast automatic heuristic construction using active learning | |
CN111406264A (zh) | 神经架构搜索 | |
CN110663049A (zh) | 神经网络优化器搜索 | |
Breß et al. | Automatic selection of processing units for coprocessing in databases | |
Cheshmi et al. | NASOQ: numerically accurate sparsity-oriented QP solver | |
Fekry et al. | Tuneful: An online significance-aware configuration tuner for big data analytics | |
Lattuada et al. | Performance prediction of deep learning applications training in GPU as a service systems | |
CN111210017B (zh) | 确定布局顺序及数据处理的方法、装置、设备及存储介质 | |
CN114936085A (zh) | 基于深度学习算法的etl调度方法及装置 | |
CN113010312A (zh) | 一种超参数调优方法、装置及存储介质 | |
CN115730507A (zh) | 模型引擎的构建、核函数处理方法、设备及存储介质 | |
CN111832693A (zh) | 神经网络层运算、模型训练方法、装置及设备 | |
CN110069347B (zh) | 一种基于过程重要度的线程划分方法 | |
CN112486584A (zh) | 一种利用强化学习进行大数据平台调参的方法和系统 | |
CN112990461A (zh) | 构建神经网络模型的方法、装置、计算机设备和存储介质 | |
CN113485848B (zh) | 深度神经网络部署方法、装置、计算机设备和存储介质 | |
CN112633516B (zh) | 性能预测和机器学习编译优化方法及装置 | |
Bağbaba et al. | Improving the I/O performance of applications with predictive modeling based auto-tuning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |