CN111461286A - 基于进化神经网络的Spark参数自动优化系统和方法 - Google Patents

基于进化神经网络的Spark参数自动优化系统和方法 Download PDF

Info

Publication number
CN111461286A
CN111461286A CN202010045384.4A CN202010045384A CN111461286A CN 111461286 A CN111461286 A CN 111461286A CN 202010045384 A CN202010045384 A CN 202010045384A CN 111461286 A CN111461286 A CN 111461286A
Authority
CN
China
Prior art keywords
neural network
model
spark
training
parameter
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.)
Granted
Application number
CN202010045384.4A
Other languages
English (en)
Other versions
CN111461286B (zh
Inventor
石宣化
金海�
李明玉
胡振宇
张一鹏
宗玉芬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202010045384.4A priority Critical patent/CN111461286B/zh
Publication of CN111461286A publication Critical patent/CN111461286A/zh
Application granted granted Critical
Publication of CN111461286B publication Critical patent/CN111461286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明公开了一种基于进化神经网络的Spark参数自动优化系统和方法,属于大数据处理系统性能优化领域。包括:收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,所述训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;使用性能预测模型,通过遗传算法搜索Spark最优配置参数。本发明采用进化神经网络,通过优化网络结构,使神经网络的结构尽可能简单,使用进化策略在现有的神经元中挑选优秀的作为下一代的起点,不断更迭。使用进化策略的神经网络能够更好地避免陷入局部最优,比起梯度下降,进化理论中的算法能够并行,大大减少训练时间。

Description

基于进化神经网络的Spark参数自动优化系统和方法
技术领域
本发明属于大数据处理系统性能优化领域,更具体地,涉及基于进化神经网络的Spark参数自动优化系统和方法。
背景技术
Apache Spark是当前应用最广泛的通用大数据处理系统,它是由加州大学伯克利分校AMP实验室设计并用于大规模数据处理的快速通用计算引擎,也是一个开源通用并行框架。Spark支持多种大数据应用,它提供了大量功能强大的库函数,包括SparkSQL、MLlib、GraphX、SparkStreaming等。在Spark中,不同的大数据应用程序对参数配置有不同的要求。即使在相同的大数据应用程序中,如果处理数据的规模不同,所需的参数配置也各不相同。
为了能兼顾各方面的应用,Spark提供了超过180个配置参数,并为每个参数设定了一个默认值。但是,Spark框架给出的默认配置往往只能保证作业能够开始执行,至于作业执行的效率和能否顺利执行完成作业并不关心。在如此大参数空间中,参数间的交互复杂,手工调节参数既费时又费力。此外,手工参数调优要想取得良好的效果,还需要系统管理人员熟练掌握Spark的底层框架知识和内部运行机制。由于Spark的手工参数调优存在诸多限制,因此设计一种对Spark参数的自动调优方法尤为重要。
由于手工调节Spark配置参数有诸多不便,Spark配置参数自动优化问题引起了大量学者的研究兴趣。之前的研究工作可以分为两类:基于搜索的方法和基于机器学习的方法。
基于搜索的方法是将Spark的配置参数优化看作一个黑盒优化问题,根据特定的规则探索最优的参数配置。例如:BestConfig方法中通过Divide-and-Diverge Sampling(DDS)和Recursive Bound-and-Search(RBS)算法,在给定的Spark集群资源下探索最优的配置参数。基于搜索的方法适用于多种大数据框架的参数优化问题,不需要深入了解框架相关知识,但需要大量的时间对样本进行统计分析和迭代搜索参数空间。
基于机器学习的方法分为三个阶段:首先利用收集模型收集训练数据;其次利用训练数据和不同的机器学习算法训练出性能预测模型;最后搜索模型利用性能预测模型预测出每组配置的运行时间,使用搜索算法找到最优的参数配置组。例如,喻之斌等人提出了一个由层次建模(HM)和遗传算法(GA)组成的DAC系统来自动优化Spark配置参数,其中HM使用回归树算法创建。在基于机器学习的方法中,只需要考虑应用程序的配置和执行时间,而忽略内部运行流程的细节。因此,此方法可用于多个框架的参数调优。然而,要找到一种机器学习算法来创建一个高精度且结构简单的性能预测模型比较困难。
发明内容
针对现有技术中基于搜索的方法中的花费大量时间迭代搜索Spark配置参数空间,基于机器学习的方法中难找到高精度且结构简单的性能预测模型两个技术缺陷,本发明提供了基于进化神经网络的Spark参数自动优化系统和方法,它能够找到一个结构简单且精度高的性能预测模型,且在搜索模型中优化的遗传算法能够快速收敛。该系统的目的在于在Spark上实现配置参数的自动调优,对给定的工作负载,寻找到一组能充分利用现有的Spark集群资源的参数配置,有效提高Spark集群的整体性能。
为实现上述目的,按照本发明的第一方面,提供了一种基于进化神经网络的Spark参数自动优化系统,所述系统包括:
训练数据收集模块,用于收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,训练集中训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;
建模模块,用于使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;
参数空间搜索模块,用于使用性能预测模型,通过遗传算法搜索Spark最优配置参数。
优选地,所述Spark配置参数通过以下方式获取:
(1)从Spark配置参数空间中选择N个目标配置参数;
(2)在各个目标配置参数的取值范围内,随机生成该目标配置参数的值;
(3)将选择的目标配置参数按照数值类型,分为整型目标配置参数集、浮点型目标配置参数集和布尔型目标配置参数集。
优选地,所述采用遗传进化的思想训练神经网络模型,得到性能预测模型的方式如下:
(1)种群P中每一个个体为一个神经网络,种群大小Psize为神经网络数量;
(2)固定输入层和输出层,随机选择隐藏层的每层神经元个数、网络层数、激活函数、优化器,搭建Psize个神经网络以初始化种群P;
(3)训练Psize个神经网络,得到每个神经网络的预测准确率,将Psize个神经网络按预测准确率排序,取预测准确率高的前
Figure BDA0002367418140000031
个神经网络作为种群下一代的父辈P';
(4)从P′任选m个网络,m为随机产生的整数,固定输入层和输出层,从m个神经网络中每一个神经网络任意选择一层作为隐藏层构建一个新神经网络,重复Psize次得到新的种群P″;
(5)重复步骤(3)~(4),直到种群中80%的神经网络预测准确率超过90%结束循环,进入步骤(6);
(6)选出当前种群中预测准确率最高的神经网络作为性能预测模型。
优选地,所述建模模块通过以下方式得到性能预测模型:
(1)将训练数据收集模块收集到训练集按照数据类型切分为三个子集TDint、TDfloat、TDbool
(2)利用进化神经网络分别训练三个性能预测子模型Modelint、Modelfloat、Modelbool
(3)性能预测模型Tall=l1×Tint+l2×Tfloat+l3×Tbool,其中,l1、l2、l3分别为Modelint、Modelfloat、Modelbool的系数,取值范围为[0,1],且l1+l2+l3=1,通过线性规划得到,Tin、Tfloat、Tbool分别表示通过Modelint、Modelfloat、Modelbool预测出的运行时间。
优选地,所述遗传算法将随机变异操作替换为在Spark集群资源实际范围内做线性加法变异操作。
优选地,所述线性加法变异操作具体如下:
(1)在[0,N]范围内随机选择参数j;
(2)判断Ci[j]是布尔型、整型或是浮点型,如果是布尔型,进入步骤(3);如果是整型,进入步骤(4);如果是浮点型,进入步骤(5),其中,Ci[j]表示第i组中第j个目标配置参数的值,i∈[1,K],j∈[1,N],K表示训练集中训练数据的数量;
(3)直接变异为相反的值;
(4)将变异位置的参数Ci[j]加上一个整型常量Consint,即Ci[j]=Ci[j]+Consint,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consint,否则,Ci[j]保持不变;
(5)将变异位置的参数Ci[j]加上浮点型常量Consfloat,即Ci[j]=Ci[j]+Consfloat,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consfloat,否则,Ci[j]保持不变。
优选地,Consint=2,Consfloat=0.2。
为实现上述目的,按照本发明的第二方面,提供了一种基于进化神经网络的Spark参数自动优化方法,所述方法包括:
S1.收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,所述训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;
S2.使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;
S3.使用性能预测模型,通过遗传算法搜索Spark最优配置参数。
优选地,所述采用遗传进化的思想训练神经网络模型,得到性能预测模型的方式如下:
(1)种群P中每一个个体为一个神经网络,种群大小Psize为神经网络数量;
(2)固定输入层和输出层,随机选择隐藏层的每层神经元个数、网络层数、激活函数、优化器,搭建Psize个神经网络以初始化种群P;
(3)训练Psize个神经网络,得到每个神经网络的预测准确率,将Psize个神经网络按预测准确率排序,取预测准确率高的前
Figure BDA0002367418140000051
个神经网络作为种群下一代的父辈P′;
(4)从P′任选m个网络,m为随机产生的整数,固定输入层和输出层,从m个神经网络中每一个神经网络任意选择一层作为隐藏层构建一个新神经网络,重复Psize次得到新的种群P″;
(5)重复步骤(3)~(4),直到种群中80%的神经网络预测准确率超过90%结束循环,进入步骤(6);
(6)选出当前种群中预测准确率最高的神经网络作为性能预测模型。
优选地,所述遗传算法将随机变异操作替换为在Spark集群资源实际范围内做线性加法变异操作;所述线性加法变异操作具体如下:
(1)在[0,N]范围内随机选择参数j;
(2)判断Ci[j]是布尔型、整型或是浮点型,如果是布尔型,进入步骤(3);如果是整型,进入步骤(4);如果是浮点型,进入步骤(5),其中,Ci[j]表示第i组中第j个目标配置参数的值,i∈[1,K],j∈[1,N],K表示训练集中训练数据的数量;
(3)直接变异为相反的值;
(4)将变异位置的参数Ci[j]加上一个整型常量Consint,即Ci[j]=Ci[j]+Consint,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consint,否则,Ci[j]保持不变;
(5)将变异位置的参数Ci[j]加上浮点型常量Consfloat,即Ci[j]=Ci[j]+Consfloat,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consfloat,否则,Ci[j]保持不变。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明采用进化神经网络,通过遗传进化思想优化网络结构,使神经网络的结构尽可能简单,使用进化策略在现有的神经元中挑选优秀的作为下一代的起点,不断更迭。使用进化策略的神经网络能够更好地避免陷入局部最优,比起梯度下降,进化理论中的算法能够并行,大大减少训练时间。
(2)本发明根据经验划定参数的范围,在给定的范围内随机生成参数组,这样能够最大程度地减少非法参数组,提高收集的训练数据质量。同时将参数根据数据类型的不同分为三种类型:整型,浮点型和布尔类型,简化了参数间复杂的相互作用。
(3)本发明使用了优化的遗传算法对Spark的参数空间进行搜索,得到最优的参数配置。本发明中的遗传算法结合了Spark的框架,对传统遗传算法中的关键操作做出优化,如变异操作和交叉操作,将算法调优的先验知识和遗传算法以及Spark框架紧密结合,提高搜索的效率。
(4)本发明松耦合于Spark框架,可作为一个独立的系统,用户不需要对Spark深入了解,就可以为运行在Spark上的作业提供一组至少优于默认配置的配置参数,具有很强的可移植性。
附图说明
图1为本发明实施例提供的基于进化神经网络(ENN)的Spark配置参数自动优化系统结构示意图;
图2为本发明实施例提供的参数空间搜索模块搜索最优的配置参数流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提供了一种基于进化神经网络的Spark参数自动优化系统,该系统包括:
训练数据收集模块,用于收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;
建模模块,用于使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;
参数空间搜索模块,用于使用性能预测模型,通过遗传算法搜索Spark最优配置参数。
训练数据收集模块
训练数据收集模块能够在给定的范围内随机产生足够多的参数配置组,并且提交给Spark集群上运行后,收集这些不同配置下相同workload的运行时间,为建模模块提供训练数据。为了收集到不同配置下相同workload的运行时间,需要由几个主要的功能部件组成,每个功能部件各有不同的作用:
参数生成器:Spark的参数空间很大,不可能列举出每一组参数配置,只能结合硬件资源的实际情况,在允许的范围内采用随机采样的方法产生随机的参数配置Ci={ci1,ci2,…,ciN}。每一组Ci中都包含选取的N个参数,对每个workload,每个Ci可得到一个对应的性能值ti,ti作为后续参数空间搜索模型中的度量一组配置的重要指标。
负载和配置提交器:将工作负载和参数配置打包提交给Spark集群执行,并收集各组配置参数和工作负载对应的执行时间。
数据集大小:Spark对作业的输入数据集的大小比较敏感,所以在收集训练数据的时候也将处理的数据集大小考虑在参数中。
优选地,Spark配置参数通过以下方式获取:
(1)从Spark配置参数空间中选择N个目标配置参数。
Spark有超过180个参数,部分参数对性能没有影响,不需要进行调优,所以,N的取值范围为[1,180]。本实施案例选择了对性能影响较大的21个常用参数,即N=21。
(2)在各个目标配置参数的取值范围内,随机生成该目标配置参数的值。
根据先验知识给定参数的范围,在给定的范围内使用参数生成器随机生成参数组,C={Cint,Cfloat,Cbool,Dsize},其中,
Figure BDA0002367418140000081
为整型参数,
Figure BDA0002367418140000091
为浮点型参数,
Figure BDA0002367418140000092
为布尔型参数,Dsize为数据集大小。
(3)将选择的目标配置参数按照数值类型,分为整型目标配置参数集、浮点型目标配置参数集和布尔型目标配置参数集。
按照这些参数的取值类型将这N个参数分为3类:整型、浮点型、布尔型。它们的参数个数分别用Nint、Nfloat、Nbool表示,Nint+Nfloat+Nbool=N。取值为字符串的参数可以抽象为整型。例如,spark.io.compression.codec的取值为:lz4、lzf、snappy,则可用整数1,2,3代替,这样能够简化参数间复杂的相互作用。
对同一个工作负载,同一个数据集(即Dsize大小相同),随机生成K组配置参数Conf={C1,C2,…,CK}。将这这个工作负载和K组配置提交到Spark集群执行,每组配置Ci得到一个对应的执行时间ti。其中,K的取值理论上越大越好,但K取值越大,Spark集群执行的时间越长,需要根据实际情况权衡,本实施案例中K=1000。
将每一组参数配置和其对应的执行时间组成一个N+2维的向量TDi={Ci,ti},即一组完整的训练数据。一个工作负载的所有训练数据可以表示为TD={TD1,TD2,…,TDK}。
建模模块
使用进化神经网络(ENN)方法训练性能预测模型。能够利用训练数据收集模块收集的训练数据和进化神经网络训练出一个神经网络模型,该模型对任意一组输入的配置参数,在给定的作业负载上,预测出一个准确的作业运行时间,为参数空间搜索模型提供搜索依据。在本实施案例中,选取全连接的深度神经网络模型,采用遗传进化策略,对深度神经网络的层数、每层的神经元个数、每层神经网络使用的激活函数和优化器、以及训练过程中的学习率等进行遗传筛选,选择优秀的神经网络结构进行交叉和变异操作,不断更迭,找到精度高且尽可能简单的神经网络结构。使用进化策略的神经网络能够更好地避免陷入局部最优,比起梯度下降,进化理论中的算法能够并行可以大大减少训练时间。
优选地,采用遗传进化的思想训练神经网络模型,得到性能预测模型的方式如下:
(1)将种群设定为P,种群中每一个个体为一个神经网络,种群大小Psize=800为神经网络数量。
(2)固定输入层和输出层,随机选择隐藏层的每层神经元个数、网络层数、激活函数、优化器,搭建Psize个神经网络初始化种群。
(3)训练Psize个神经网络,得到每个神经网络的预测准确率,将Psize个神经网络按预测准确率排序,取预测准确率高的前200个神经网络作为种群下一代的父辈P′。
(4)从P′任选m个网络,m为随机产生的整数,固定输入层和输出层,从m个神经网络中每一个神经网络任意选择一层作为隐藏层构建一个新神经网络,重复Psize次得到新的种群P″。
(5)重复步骤(3)~(4),直到种群中80%的神经网络预测准确率达到0.9结束循环。
(6)选出当前种群中预测准确率最高的神经网络作为性能预测模型。
优选地,建模模块通过以下方式得到性能预测模型:
(1)将训练数据收集模块收集到训练集按照数据类型切分为三个子集TDint、TDfloat、TDbool
(2)利用进化神经网络分别训练三个性能预测子模型Modelint、Modelfloat、Modelbool
(3)性能预测模型Tall=l1×Tint+l2×Tfloat+l3×Tbool,其中,l1、l2、l3分别为Modelint、Modelfloat、Modelbool的系数,取值范围为[0,1],且l1+l2+l3=1,通过线性规划得到,Tint、Tfloat、Tbool分别表示通过Modelint、Modelfloat、Modelbool预测出的运行时间。
首先,定义公式性能公式:t=f(r,d,w,c),用它来衡量系统的性能,r代表计算平台的(硬件和软件)资源,d代表数据集大小,w代表作业类型,c代表参数配置,t代表作业执行时间。在相同软硬件环境下,对同一个作业,执行时间越少,通常就认为系统性能越好。由于算法模型本身的限制,得到的预测值往往和真实值有一定的差距,为了量化这个差距,定义错误率公式:
Figure BDA0002367418140000111
其中,tall代表一个作业的预测执行时间,treal代表作业的实际执行时间,err代表了两者之间的相对差异,err越小,表示模型的预测执行时间越接近实际执行时间,即预测模型越精确。
参数空间搜索模块
参数空间搜索模块能够利用改进的遗传算法来搜索Spark的参数空间,为给定的工作负载搜索到最优的配置参数。大数据处理框架Spark有超过180个参数,在如此巨大的参数空间中,无法使用枚举的方法来列出所有参数组合。因此,需要使用启发式算法在参数空间中搜索最优解。在搜索模块中,先使用训练数据收集模块中的参数生成器生成参数配置,即初始化种群,然后利用性能预测模块中训练的性能预测模型计算出种群的适度值,根据适度值,使用遗传算法中的选择操作来选择下一代。对选择的个体进行交叉和变异操作,再次使用性能预测模型预测得到的新种群的适度值,继续新一轮的选择、交叉、变异操作,直到循环结束,得到最优的参数组合。
如图2所示,首先用参数生成器生成M组配置,初始化种群P={C1,C2,…,CM},使用性能预测模型Model预测出每一组配置Ci的执行时间ti,然后利用轮盘赌算法计算出每一组配置Ci的适度值fi。按照适度值从大到小排序种群P,选择前n个配置进行交叉和变异操作。得到新种群P′={C′1,C′2,...,CM′,},再利用预测模型Model预测出每一组配置Ci′的执行时间ti′,计算适度值fi′,再次进行交叉和变异操作。循环上述操作直到找到满足条件的最优的配置Coptimal
优选地,遗传算法将随机变异操作替换为在Spark集群资源实际范围内做线性加法变异操作,以便能充分利用Spark集群资源,提高系统性能。在变异操作中,修改了传统遗传算法中的随机变异操作,在资源的实际数量范围内做线性加法变异操作,这个优化操作能够加快遗传算法的收敛,同时能够使得到的参数配置充分利用现有的Spark集群资源。
优选地,线性加法变异操作为:
(1)在[0,N]范围内随机选择参数j;
(2)判断Ci[j]是布尔型、整型或是浮点型,如果是布尔型,进入步骤(3);如果是整型,进入步骤(4);如果是浮点型,进入步骤(5),其中,Ci[j]表示第i组中第j个目标配置参数的值,i∈[1,K],j∈[1,N],K表示训练集中训练数据的数量;
(3)直接变异为相反的值;
(4)将变异位置的参数Ci[j]加上一个整型常量Consint,即Ci[j]=Ci[j]+Consint,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consint,否则,Ci[j]保持不变;
(5)将变异位置的参数Ci[j]加上浮点型常量Consfloat,即Ci[j]=Ci[j]+Consfloat,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consfloat,否则,Ci[j]保持不变。
在本实施案例中,Consint=2,Consfloat=0.2。用参数生成器生成M=3000组配置,初始化种群P={C1,C2,...,CM},即种群大小为M=3000,使用性能预测模型Model预测出每一组配置Ci的执行时间ti,然后利用轮盘赌算法计算出每一组配置Ci的适度值fi。按照适度值从大到小排序种群P,选择前
Figure BDA0002367418140000131
个配置进行交叉和变异操作。得到新种群P′={C′1,C′2,...,CM′},再利用预测模型Model预测出每一组配置Ci′的执行时间ti′,计算适度值fi′,再次进行交叉和变异操作。设定循环次数Loop=800,循环上述操作找到的最优的配置Coptimal
对应地,本发明提供了一种基于进化神经网络的Spark参数自动优化方法,该方法包括:
S1.收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;
S2.使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;
S3.使用性能预测模型,通过遗传算法搜索Spark最优配置参数。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于进化神经网络的Spark参数自动优化系统,其特征在于,所述系统包括:
训练数据收集模块,用于收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,训练集中训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;
建模模块,用于使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;
参数空间搜索模块,用于使用性能预测模型,通过遗传算法搜索Spark最优配置参数。
2.如权利要求1所述的系统,其特征在于,所述Spark配置参数通过以下方式获取:
(1)从Spark配置参数空间中选择N个目标配置参数;
(2)在各个目标配置参数的取值范围内,随机生成该目标配置参数的值;
(3)将选择的目标配置参数按照数值类型,分为整型目标配置参数集、浮点型目标配置参数集和布尔型目标配置参数集。
3.如权利要求1或2所述的系统,其特征在于,所述采用遗传进化的思想训练神经网络模型,得到性能预测模型的方式如下:
(1)种群P中每一个个体为一个神经网络,种群大小Psize为神经网络数量;
(2)固定输入层和输出层,随机选择隐藏层的每层神经元个数、网络层数、激活函数、优化器,搭建Psize个神经网络以初始化种群P;
(3)训练Psize个神经网络,得到每个神经网络的预测准确率,将Psize个神经网络按预测准确率排序,取预测准确率高的前
Figure FDA0002367418130000011
个神经网络作为种群下一代的父辈P′;
(4)从P′任选m个网络,m为随机产生的整数,固定输入层和输出层,从m个神经网络中每一个神经网络任意选择一层作为隐藏层构建一个新神经网络,重复Psize次得到新的种群P″;
(5)重复步骤(3)~(4),直到种群中80%的神经网络预测准确率超过90%结束循环,进入步骤(6);
(6)选出当前种群中预测准确率最高的神经网络作为性能预测模型。
4.如权利要求1至3任一项所述的系统,其特征在于,所述建模模块通过以下方式得到性能预测模型:
(1)将训练数据收集模块收集到训练集按照数据类型切分为三个子集TDint、TDfloat、TDbool
(2)利用进化神经网络分别训练三个性能预测子模型Modelint、Modelfloat、Modelbool
(3)性能预测模型Tall=l1×Tint+l2×Tfloat+l3×Tbool,其中,l1、l2、l3分别为Modelint、Modelfloat、Modelbool的系数,取值范围为[0,1],且l1+l2+l3=1,通过线性规划得到,Tint、Tfloat、Tbool分别表示通过Modelint、Modelfloat、Modelbool预测出的运行时间。
5.如权利要求2所述的系统,其特征在于,所述遗传算法将随机变异操作替换为在Spark集群资源实际范围内做线性加法变异操作。
6.如权利要求5所述的系统,其特征在于,所述线性加法变异操作具体如下:
(1)在[0,N]范围内随机选择参数j;
(2)判断Ci[j]是布尔型、整型或是浮点型,如果是布尔型,进入步骤(3);如果是整型,进入步骤(4);如果是浮点型,进入步骤(5),其中,Ci[j]表示第i组中第j个目标配置参数的值,i∈[1,K],j∈[1,N],K表示训练集中训练数据的数量;
(3)直接变异为相反的值;
(4)将变异位置的参数Ci[j]加上一个整型常量Consint,即Ci[j]=Ci[j]+Consint,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consint,否则,Ci[j]保持不变;
(5)将变异位置的参数Ci[j]加上浮点型常量Consfloat,即Ci[j]=Ci[j]+Consfloat,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consfloat,否则,Ci[j]保持不变。
7.如权利要求6所述的系统,其特征在于,Consint=2,Consfloat=0.2。
8.一种基于进化神经网络的Spark参数自动优化方法,其特征在于,所述方法包括:
S1.收集不同Spark配置参数下相同Spark应用程序的运行时间,得到训练集,训练集中训练数据包括:Spark配置参数、Spark应用程序的输入数据集大小和对应运行时间;
S2.使用训练集,采用遗传进化的思想训练神经网络模型,得到性能预测模型;
S3.使用性能预测模型,通过遗传算法搜索Spark最优配置参数。
9.如权利要求8所述的方法,其特征在于,所述采用遗传进化的思想训练神经网络模型,得到性能预测模型的方式如下:
(1)种群P中每一个个体为一个神经网络,种群大小Psize为神经网络数量;
(2)固定输入层和输出层,随机选择隐藏层的每层神经元个数、网络层数、激活函数、优化器,搭建Psize个神经网络以初始化种群P;
(3)训练Psize个神经网络,得到每个神经网络的预测准确率,将Psize个神经网络按预测准确率排序,取预测准确率高的前
Figure FDA0002367418130000031
个神经网络作为种群下一代的父辈P′;
(4)从P′任选m个网络,m为随机产生的整数,固定输入层和输出层,从m个神经网络中每一个神经网络任意选择一层作为隐藏层构建一个新神经网络,重复Psize次得到新的种群P″;
(5)重复步骤(3)~(4),直到种群中80%的神经网络预测准确率超过90%结束循环,进入步骤(6);
(6)选出当前种群中预测准确率最高的神经网络作为性能预测模型。
10.如权利要求8或9所述的方法,其特征在于,所述遗传算法将随机变异操作替换为在Spark集群资源实际范围内做线性加法变异操作;所述线性加法变异操作具体如下:
(1)在[0,N]范围内随机选择参数j;
(2)判断Ci[j]是布尔型、整型或是浮点型,如果是布尔型,进入步骤(3);如果是整型,进入步骤(4);如果是浮点型,进入步骤(5),其中,Ci[j]表示第i组中第j个目标配置参数的值,i∈[1,K],j∈[1,N],K表示训练集中训练数据的数量;
(3)直接变异为相反的值;
(4)将变异位置的参数Ci[j]加上一个整型常量Consint,即Ci[j]=Ci[j]+Consint,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consint,否则,Ci[j]保持不变;
(5)将变异位置的参数Ci[j]加上浮点型常量Consfloat,即Ci[j]=Ci[j]+Consfloat,并判断新的Ci[j]是否超出设定的范围,若是,则Ci[j]=Ci[j]-Consfloat,否则,Ci[j]保持不变。
CN202010045384.4A 2020-01-15 2020-01-15 基于进化神经网络的Spark参数自动优化系统和方法 Active CN111461286B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010045384.4A CN111461286B (zh) 2020-01-15 2020-01-15 基于进化神经网络的Spark参数自动优化系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010045384.4A CN111461286B (zh) 2020-01-15 2020-01-15 基于进化神经网络的Spark参数自动优化系统和方法

Publications (2)

Publication Number Publication Date
CN111461286A true CN111461286A (zh) 2020-07-28
CN111461286B CN111461286B (zh) 2022-03-29

Family

ID=71683156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010045384.4A Active CN111461286B (zh) 2020-01-15 2020-01-15 基于进化神经网络的Spark参数自动优化系统和方法

Country Status (1)

Country Link
CN (1) CN111461286B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540849A (zh) * 2020-12-11 2021-03-23 清华大学 一种分布式计算作业的参数配置优化方法及系统
CN113111668A (zh) * 2021-04-18 2021-07-13 沈阳雅译网络技术有限公司 一种用于翻译任务的语言建模系统结构搜索方法
WO2022111125A1 (zh) * 2020-11-27 2022-06-02 深圳先进技术研究院 一种基于随机森林的图数据处理框架自动调优方法
WO2023029155A1 (zh) * 2021-09-03 2023-03-09 中国科学院深圳先进技术研究院 一种Spark GraphX参数调优方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122521A1 (en) * 2000-02-01 2001-08-08 Setrix AG Method and apparatus for monitoring an analog meter
CN101706335A (zh) * 2009-11-11 2010-05-12 华南理工大学 一种基于遗传算法优化bp神经网络的风电功率预测方法
CN103106545A (zh) * 2013-02-06 2013-05-15 浙江工业大学 散堆填料塔液泛气速预测的集成方法
CN103617114A (zh) * 2013-10-23 2014-03-05 江苏大学 基于条件与参数变异的第三方构件脆弱性测试方法
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统
CN104866904A (zh) * 2015-06-16 2015-08-26 中电科软件信息服务有限公司 一种基于spark的遗传算法优化的BP神经网络并行化方法
CN106648654A (zh) * 2016-12-20 2017-05-10 深圳先进技术研究院 一种数据感知的Spark配置参数自动优化方法
CN106951983A (zh) * 2017-02-27 2017-07-14 浙江工业大学 基于采用多父代遗传算法的人工神经网络的喷射器性能预测方法
CN107656152A (zh) * 2017-09-05 2018-02-02 西安工程大学 一种基于ga‑svm‑bp变压器故障诊断方法
CN110298434A (zh) * 2019-05-27 2019-10-01 湖州师范学院 一种基于模糊划分和模糊加权的集成深度信念网络

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122521A1 (en) * 2000-02-01 2001-08-08 Setrix AG Method and apparatus for monitoring an analog meter
CN101706335A (zh) * 2009-11-11 2010-05-12 华南理工大学 一种基于遗传算法优化bp神经网络的风电功率预测方法
CN103106545A (zh) * 2013-02-06 2013-05-15 浙江工业大学 散堆填料塔液泛气速预测的集成方法
CN103617114A (zh) * 2013-10-23 2014-03-05 江苏大学 基于条件与参数变异的第三方构件脆弱性测试方法
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统
CN104866904A (zh) * 2015-06-16 2015-08-26 中电科软件信息服务有限公司 一种基于spark的遗传算法优化的BP神经网络并行化方法
CN106648654A (zh) * 2016-12-20 2017-05-10 深圳先进技术研究院 一种数据感知的Spark配置参数自动优化方法
CN106951983A (zh) * 2017-02-27 2017-07-14 浙江工业大学 基于采用多父代遗传算法的人工神经网络的喷射器性能预测方法
CN107656152A (zh) * 2017-09-05 2018-02-02 西安工程大学 一种基于ga‑svm‑bp变压器故障诊断方法
CN110298434A (zh) * 2019-05-27 2019-10-01 湖州师范学院 一种基于模糊划分和模糊加权的集成深度信念网络

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
İCLAL ÖZCAN等: "spark genetic algorithm parameters", 《2018 INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND DATA PROCESSING (IDAP)》 *
金鑫等: "基于Spark框架和PSO优化算法的电力通信网络安全态势预测", 《计算机科学》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022111125A1 (zh) * 2020-11-27 2022-06-02 深圳先进技术研究院 一种基于随机森林的图数据处理框架自动调优方法
CN112540849A (zh) * 2020-12-11 2021-03-23 清华大学 一种分布式计算作业的参数配置优化方法及系统
CN112540849B (zh) * 2020-12-11 2022-07-26 清华大学 一种分布式计算作业的参数配置优化方法及系统
CN113111668A (zh) * 2021-04-18 2021-07-13 沈阳雅译网络技术有限公司 一种用于翻译任务的语言建模系统结构搜索方法
WO2023029155A1 (zh) * 2021-09-03 2023-03-09 中国科学院深圳先进技术研究院 一种Spark GraphX参数调优方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111461286B (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
CN111461286B (zh) 基于进化神经网络的Spark参数自动优化系统和方法
Min et al. Multiproblem surrogates: Transfer evolutionary multiobjective optimization of computationally expensive problems
Wang et al. Multi-objective optimization of turbomachinery using improved NSGA-II and approximation model
Nguyen et al. Filter based backward elimination in wrapper based PSO for feature selection in classification
CN109886464B (zh) 基于优化奇异值分解生成特征集的低信息损失短期风速预测方法
Kwon et al. A learning-based recommender system for autotuning design flows of industrial high-performance processors
US20170330078A1 (en) Method and system for automated model building
Bao et al. Learning-based automatic parameter tuning for big data analytics frameworks
CN111127246A (zh) 一种输电线路工程造价的智能预测方法
CN110571792A (zh) 一种电网调控系统运行状态的分析评估方法及系统
Xie et al. BenchENAS: A benchmarking platform for evolutionary neural architecture search
Mohammadi Jenghara et al. Dynamic protein–protein interaction networks construction using firefly algorithm
Wang et al. Neural-architecture-search-based multiobjective cognitive automation system
Cheng et al. Tuning configuration of apache spark on public clouds by combining multi-objective optimization and performance prediction model
CN116629352A (zh) 一种亿级参数寻优平台
CN113887694A (zh) 一种注意力机制下基于特征表征的点击率预估模型
Pan et al. Neural architecture search based on evolutionary algorithms with fitness approximation
Wen et al. MapReduce-based BP neural network classification of aquaculture water quality
Cheng et al. Swiftnet: Using graph propagation as meta-knowledge to search highly representative neural architectures
CN117334271A (zh) 一种基于指定属性生成分子的方法
CN113032367A (zh) 面向动态负载场景的大数据系统跨层配置参数协同调优方法和系统
CN112783852A (zh) 基于大数据的网络安全分析系统
Dong et al. Heterogeneous Graph Neural Architecture Search with GPT-4
CN111160715A (zh) 基于bp神经网络新旧动能转换绩效评价方法和装置
CN110942149B (zh) 一种基于信息变化率及条件互信息的特征变量选择方法

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
GR01 Patent grant
GR01 Patent grant