CN108564164B - 一种基于spark平台的并行化深度学习方法 - Google Patents
一种基于spark平台的并行化深度学习方法 Download PDFInfo
- Publication number
- CN108564164B CN108564164B CN201810015428.1A CN201810015428A CN108564164B CN 108564164 B CN108564164 B CN 108564164B CN 201810015428 A CN201810015428 A CN 201810015428A CN 108564164 B CN108564164 B CN 108564164B
- Authority
- CN
- China
- Prior art keywords
- parameter
- node
- training
- service control
- information
- 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.)
- Active
Links
Images
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的方法针对现有的深度学习方法参数同步模式在大规模集群中可能会存在的问题,在Spark环境中引入了参数存储节点和参数服务控制节点这一编程框架,将集群中的节点分为计算节点、参数存储节点和参数服务控制节点,参数服务控制节点负责参数的收发以及参数更新机制的实现。参数存储节点和参数服务控制节点的出现使得异步通信成为可能,计算节点只需要在某次迭代的伊始向参数服务控制节点请求权重,在迭代的末尾向参数服务控制节点发送权重即可,大幅降低了通信时间、通信量以及节点闲置时间,使得在大数据环境下的深度学习训练任务的效率大幅提升。
Description
技术领域
本发明涉及深度学习技术领域,更具体地,涉及一种基于SPARK平台的并行化深度学习方法。
背景技术
随着人工智能的兴起,神经网络的应用扩展到了各个生活场景中,用以解决实际问题。由于应用场景越来越复杂,建模困难越来越大,导致神经网络(比如Lenet-5)的层数越来越深,层与层之间相连的参数越来越多,因而计算任务耗时越来越长,成本巨大。虽然近年来单机硬件水平不断提高,CPU与GPU运算速度不断提升,但是传统的单机多卡(GPU)的模式仍不能很好地解决这一问题,所以大多数厂商的解决方案是利用集群协作来完成神经网络的前向与后向传播以及参数同步。这样一来,计算时间得以大幅度减少,然而由于木桶效应的存在,最终同步时间和通讯时间的长短取决于集群中性能最差的节点,会造成某些节点长时间处于空闲状态,浪费资源。
发明内容
本发明的目的在于解决现有技术存在资源浪费的缺陷,提供了一种基于SPARK平台的并行化深度学习方法。
为实现以上发明目的,采用的技术方案是:
一种基于SPARK平台的并行化深度学习方法,包括以下步骤:
S1.在多个节点上分别安装SPARK平台,然后进行相关的环境变量设置;
S2.令多个节点中的部分节点为计算节点,剩余的节点中,一部分为参数存储节点,另一部分为参数服务控制节点;
S3.在各个计算节点上分别初始化一个训练模型;
S4.判断所有的计算节点的训练模型的状态是否都已触发触发器,若是则执行步骤S7,否则执行步骤S5;
S5.将训练数据进行划分后平均分配给各个计算节点,各个计算节点上的训练模型利用分配的数据进行前向传播计算和后向传播计算,得到训练模型的参数信息后将参数信息通过参数服务控制节点回传至参数存储节点进行存储;然后同步更新训练模型的相关状态;
S6.判断各个计算节点的一代训练是否完成,若否则直接执行步骤S4;若是则输出总时间,并且使每个计算节点向参数服务控制节点请求对应计算节点最新的参数信息,请求得到最新的参数信息对训练模型进行配置后,执行步骤S4;
S7.结束。
优选地,所述训练模型为Lenet-5卷积神经网络。
优选地,所述训练数据加载在SparkContext中,其在分配前经过预处理。
优选地,所述预处理的具体过程如下:
1)将训练数据尺寸为32×32位图转换为28×28的灰度图表示形式;
2)根据事先设定好的图片灰度值的均值和标准差对进行训练数据中的样本进行直方图均衡化处理;
3)对训练数据中的样本进行混洗处理,随机地将图片信息重新排列,最大程度上减少偶然性误差;
4)对混洗后的训练数据进行重新分区的处理,使得分区数等于参与训练的总核数,方便后续的数据分发。
优选地,所述计算节点上传的参数信息以块的形式存储在参数存储节点中,每个块都会有唯一的标识,块的标识由两部分组成:
1)任务标识:每次创建训练任务时,会对每个任务分配唯一的任务标识;
2)训练线程标识:每次训练开始前,会根据配置的总核数来创建相应数目的训练线程,每个线程之间相互独立,每个线程都有唯一的标识信息;
将以上两部分信息组合在一起形成块标识,与参数存储节点中的物理存储空间一一对应。
优选地,所述计算节点计算得到参数信息后,会向参数服务控制节点发送Push请求上传参数,参数服务控制节点根据计算节点上传的块标识信息回复路由信息,计算节点根据该路由信息向参数存储节点发送参数,参数存储节点再对接收的参数信息进行存储。
优选地,计算节点在需要获取最新的参数信息时,会向参数服务控制节点发送Pull请求,参数服务控制节点根据块标识信息将存储在参数存储节点本地的参数信息发送给计算节点。
优选地,参数服务控制节点对参数存储节点、计算节点进行注册登记,并生成相应的路由信息记录到路由表中。
优选地,所述上传的参数信息在存储时具有备份有3个副本,分别存储在不同的参数存储节点中。
与现有技术相比,本发明的有益效果是:
本发明提供的方法针对现有的深度学习方法参数同步模式在大规模集群中可能会存在的问题,在Spark环境中引入了参数存储节点和参数服务控制节点这一编程框架,将集群中的节点分为计算节点、参数存储节点和参数服务控制节点,参数服务控制节点负责参数的收发以及参数更新机制的实现。参数存储节点和参数服务控制节点的出现使得异步通信成为可能,计算节点只需要在某次迭代的伊始向参数服务控制节点请求权重,在迭代的末尾向参数服务控制节点发送权重即可,大幅降低了通信时间、通信量以及节点闲置时间,使得在大数据环境下的深度学习训练任务的效率大幅提升。
附图说明
图1为方法的流程示意图。
图2为计算节点、参数存储节点和参数服务控制节点的数据交互图。
图3为Push请求的示意图。
图4为Pull请求的示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
Spark是一个用来实现快速而通用的集群计算的平台,提供了分布式的内存抽象,是海量大数据处理的主要平台之一。Spark扩展了广泛使用的MapReduce计算模型,而且高效地支持更多计算模型,包括交互式查询和流处理。Spark另一个鲜明特点是采用了内存计算,提前将数据缓存在内存中,计算过程中的I/O操作全部发生在内存中,大大减少了内存与外存之间I/O交互所需的大量时间。在集群管理方面,Spark支持原生的Standalone调度器、Hadoop自带的YARN调度以及Mesos调度器,用户只需要分别在多台节点上安装Spark,并进行简单的配置就可以启动Spark集群,且无需担心具体计算任务怎样在各个节点间分配,Spark调度器会将计算任务拆分成多个jobs、tasks、stages从而分配个各个节点。总的来说,Spark适用于各种各样原先需要多种不同的分布式平台的场景。
如图1、2所示,本发明提供的方法包括有以下步骤:
S1.在多个节点上分别安装SPARK平台,然后进行相关的环境变量设置;
S2.令多个节点中的部分节点为计算节点,剩余的节点中,一部分为参数存储节点,另一部分为参数服务控制节点;
S3.在各个计算节点上分别初始化一个训练模型;
S4.判断所有的计算节点的训练模型的状态是否都已触发触发器,若是则执行步骤S7,否则执行步骤S5;
S5.将训练数据进行划分后平均分配给各个计算节点,各个计算节点上的训练模型利用分配的数据进行前向传播计算和后向传播计算,得到训练模型的参数信息后将参数信息通过参数服务控制节点回传至参数存储节点进行存储;然后同步更新训练模型的相关状态;参数信息包括参数权重和梯度;
S6.判断各个计算节点的一代训练是否完成,若否则直接执行步骤S4;若是则输出总时间,并且使每个计算节点向参数服务控制节点请求对应计算节点最新的参数信息,请求得到最新的参数信息对训练模型进行配置后,执行步骤S4;
S7.结束。
上述方案中,训练模型为Lenet-5卷积神经网络。
其中,训练数据加载在SparkContext中,其在分配前经过预处理;预处理的具体过程如下:
1)将训练数据尺寸为32×32位图转换为28×28的灰度图表示形式;
2)根据事先设定好的图片灰度值的均值和标准差对进行训练数据中的样本进行直方图均衡化处理;
3)对训练数据中的样本进行混洗处理,随机地将图片信息重新排列,最大程度上减少偶然性误差;
4)对混洗后的训练数据进行重新分区的处理,使得分区数等于参与训练的总核数,方便后续的数据分发。
本实施例中,计算节点上传的参数信息以块的形式存储在参数存储节点中,每个块都会有唯一的标识,块的标识由两部分组成:
1)任务标识:每次创建训练任务时,会对每个任务分配唯一的任务标识;
2)训练线程标识:每次训练开始前,会根据配置的总核数来创建相应数目的训练线程,每个线程之间相互独立,每个线程都有唯一的标识信息;
将以上两部分信息组合在一起形成块标识,与参数存储节点中的物理存储空间一一对应。
本实施例中,如图3所示,所述计算节点计算得到参数信息后,会向参数服务控制节点发送Push请求上传参数,参数服务控制节点根据计算节点上传的块标识信息回复路由信息,计算节点根据该路由信息向参数存储节点发送参数,参数存储节点再对接收的参数信息进行存储。同样地,如图4所示,计算节点在需要获取最新的参数信息时,会向参数服务控制节点发送Pull请求,参数服务控制节点根据块标识信息将存储在参数存储节点本地的参数信息发送给计算节点。
每个参数存储节点只负责自己分到的参数。当参数服务控制节点向参数存储节点发送更新参数或获取参数指令时,参数存储节点只需要根据提供的块标识寻找对应物理位置存储的数据即可。
本实施例中,参数服务控制节点对参数存储节点、计算节点进行注册登记,并生成相应的路由信息记录到路由表中。路由表存储在参数服务控制节点中,保障整个参数服务器系统路由功能的实现。示例表格3、4所示:
表1存储节点路由表
存储节点1 | IP地址11,192.168.x.x | 下一跳点12,192.168.x.x | …… |
存储节点2 | IP地址21,192.168.x.x | 下一跳点22,192.168.x.x | …… |
…… | …… | …… | …… |
表2块标识与存储位置映射表
块标识1 | 存储节点11 | 存储分区12 | …… |
块标识2 | 存储节点21 | 存储分区22 | …… |
…… | …… | …… | …… |
计算节点在每次访问和更新参数前,会先向参数服务控制节点询问最新的路由信息,然后根据自身所持有的块标识信息(BlockID),找到发送目的地存储节点和相应分区,再根据存储节点路由表中的信息进行路由,将本地参数按目标位置拆分发送。
同时,所述上传的参数信息在存储时具有备份有3个副本,分别存储在不同的参数存储节点中。在具体实施的时候,其中的一个节点会被选为首选节点,来提供针对某个参数的服务。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (3)
1.一种基于SPARK平台的并行化深度学习方法,其特征在于:包括以下步骤:
S1.在多个节点上分别安装SPARK平台,然后进行相关的环境变量设置;
S2.令多个节点中的部分节点为计算节点,剩余的节点中,一部分为参数存储节点,另一部分为参数服务控制节点;
S3.在各个计算节点上分别初始化一个训练模型,所述训练模型为Lenet-5卷积神经网络;
S4.判断所有的计算节点的训练模型的状态是否都已触发触发器,若是则执行步骤S7,否则执行步骤S5;
S5.将训练数据进行划分后平均分配给各个计算节点,各个计算节点上的训练模型利用分配的数据进行前向传播计算和后向传播计算,得到训练模型的参数信息后将参数信息通过参数服务控制节点回传至参数存储节点进行存储;然后同步更新训练模型;
所述训练数据加载在SparkContext中,其在分配前经过预处理;
所述预处理的具体过程如下:
1)将训练数据尺寸为32×32位图转换为28×28的灰度图表示形式;
2)根据事先设定好的图片灰度值的均值和标准差对进行训练数据中的样本进行直方图均衡化处理;
3)对训练数据中的样本进行混洗处理,随机地将图片信息重新排列;
4)对混洗后的训练数据进行重新分区的处理,使得分区数等于参与训练的总核数;
所述计算节点上传的参数信息以块的形式存储在参数存储节点中,每个块都会有唯一的标识,块的标识由两部分组成:
1)任务标识:每次创建训练任务时,会对每个任务分配唯一的任务标识;
2)训练线程标识:每次训练开始前,会根据配置的总核数来创建相应数目的训练线程,每个线程之间相互独立,每个线程都有唯一的标识信息;
将以上两部分信息组合在一起形成块标识,与参数存储节点中的物理存储空间一一对应;
S6.判断各个计算节点的一代训练是否完成,若否则直接执行步骤S4;若是则输出总时间,并且使每个计算节点向参数服务控制节点请求对应计算节点最新的参数信息,请求得到最新的参数信息对训练模型进行配置后,执行步骤S4;
S7.结束;
所述计算节点计算得到参数信息后,会向参数服务控制节点发送Push请求上传参数,参数服务控制节点根据计算节点上传的块标识信息回复路由信息,计算节点根据该路由信息向参数存储节点发送参数,参数存储节点再对接收的参数信息进行存储;
计算节点在需要获取最新的参数信息时,会向参数服务控制节点发送Pull请求,参数服务控制节点根据块标识信息将存储在参数存储节点本地的参数信息发送给计算节点。
2.根据权利要求1所述的基于SPARK平台的并行化深度学习方法,其特征在于:参数服务控制节点对参数存储节点、计算节点进行注册登记,并生成相应的路由信息记录到路由表中。
3.根据权利要求1所述的基于SPARK平台的并行化深度学习方法,其特征在于:所述上传的参数信息在存储时具有备份有3个副本,分别存储在不同的参数存储节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015428.1A CN108564164B (zh) | 2018-01-08 | 2018-01-08 | 一种基于spark平台的并行化深度学习方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015428.1A CN108564164B (zh) | 2018-01-08 | 2018-01-08 | 一种基于spark平台的并行化深度学习方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108564164A CN108564164A (zh) | 2018-09-21 |
CN108564164B true CN108564164B (zh) | 2022-04-29 |
Family
ID=63530711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810015428.1A Active CN108564164B (zh) | 2018-01-08 | 2018-01-08 | 一种基于spark平台的并行化深度学习方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108564164B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447248A (zh) * | 2018-11-09 | 2019-03-08 | 深圳增强现实技术有限公司 | 深度学习平台及方法 |
CN109710406B (zh) * | 2018-12-21 | 2023-01-17 | 腾讯科技(深圳)有限公司 | 数据分配及其模型训练方法、装置、及计算集群 |
CN111368991B (zh) * | 2018-12-25 | 2023-05-26 | 杭州海康威视数字技术股份有限公司 | 深度学习模型的训练方法、装置及电子设备 |
CN111444309B (zh) * | 2019-01-16 | 2023-04-14 | 阿里巴巴集团控股有限公司 | 用于对图进行学习的系统 |
CN110096346B (zh) * | 2019-03-29 | 2021-06-15 | 广州思德医疗科技有限公司 | 一种多计算节点的训练任务处理方法及装置 |
US11537949B2 (en) * | 2019-05-23 | 2022-12-27 | Google Llc | Systems and methods for reducing idleness in a machine-learning training system using data echoing |
CN110490316B (zh) * | 2019-08-21 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 基于神经网络模型训练系统的训练处理方法、训练系统 |
CN111327692A (zh) * | 2020-02-05 | 2020-06-23 | 北京百度网讯科技有限公司 | 模型训练方法、装置及集群系统 |
CN112306682B (zh) * | 2020-10-29 | 2022-08-16 | 第四范式(北京)技术有限公司 | 一种模型参数的存储方法和系统以及一种参数服务器集群 |
CN112486668B (zh) * | 2020-11-03 | 2024-06-25 | 深圳市中博科创信息技术有限公司 | 一种分布式人工智能计算方法、物联网节点和存储介质 |
CN113065666A (zh) * | 2021-05-11 | 2021-07-02 | 海南善沙网络科技有限公司 | 一种神经网络机器学习模型训练用分布式计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981807A (zh) * | 2012-11-08 | 2013-03-20 | 北京大学 | 一种基于cuda并行环境的gpu程序优化方法 |
CN104269074A (zh) * | 2014-09-04 | 2015-01-07 | 中山大学 | 一种用于十字路口的分布式交通控制机制 |
CN106570565A (zh) * | 2016-11-21 | 2017-04-19 | 中国科学院计算机网络信息中心 | 一种面向大数据的深度学习方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225301B2 (en) * | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
CN102624865B (zh) * | 2012-01-09 | 2014-06-18 | 浙江大学 | 集群负载预测方法及分布式集群管理系统 |
US10425275B2 (en) * | 2015-02-12 | 2019-09-24 | Advanced Micro Devices, Inc. | Centralized distribution of configuration parameters for a cluster server |
CN105188111A (zh) * | 2015-05-21 | 2015-12-23 | 广东志成冠军集团有限公司 | 一种数据传输控制方法及无线传感器网络 |
-
2018
- 2018-01-08 CN CN201810015428.1A patent/CN108564164B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981807A (zh) * | 2012-11-08 | 2013-03-20 | 北京大学 | 一种基于cuda并行环境的gpu程序优化方法 |
CN104269074A (zh) * | 2014-09-04 | 2015-01-07 | 中山大学 | 一种用于十字路口的分布式交通控制机制 |
CN106570565A (zh) * | 2016-11-21 | 2017-04-19 | 中国科学院计算机网络信息中心 | 一种面向大数据的深度学习方法及系统 |
Non-Patent Citations (3)
Title |
---|
Legendre 序列快速生成的 CUDA 实现;赵家威 等;《计算机工程与应用》;20140430;第50卷(第08期);第66-71页 * |
Scaling Distributed Machine Learning;Mu Li et al;《11th USENIX Symposium on Operating Systems Design and Implementation》;20141008;第582-598页 * |
Spark平台下基于深度学习的网络短文本情感分类研究;尚勃;《中国优秀硕士学位论文全文数据库信息科技辑》;20170215(第02期);第I138-4608页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108564164A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108564164B (zh) | 一种基于spark平台的并行化深度学习方法 | |
US11487698B2 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
CN109491790B (zh) | 基于容器的工业物联网边缘计算资源分配方法及系统 | |
CN115248728B (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
CN107818112B (zh) | 一种大数据分析作业系统及任务提交方法 | |
CN109936473B (zh) | 基于深度学习预测的分布计算系统及其运行方法 | |
CN105159610B (zh) | 大规模数据处理系统及方法 | |
CN113037794B (zh) | 计算资源配置调度方法、装置及系统 | |
CN107729138B (zh) | 一种高性能分布式矢量空间数据的分析方法和装置 | |
CN104506669A (zh) | 一种面向分布式网络仿真平台的ip地址分配系统及方法 | |
CN115543626A (zh) | 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 | |
CN117234697B (zh) | 一种保守时间同步并行事件调度计算架构和方法 | |
CN114492052A (zh) | 一种全局流级别网络仿真方法、系统及装置 | |
CN117785490A (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN112463340A (zh) | 基于tensorflow的多任务弹性调度方法及系统 | |
CN110868461B (zh) | 一种Gaia集群中面向节点间异构带宽的数据分发方法 | |
CN116582407A (zh) | 一种基于深度强化学习的容器化微服务编排系统及方法 | |
CN113867736B (zh) | 部署方案生成方法及装置 | |
CN114880079A (zh) | 基于强化学习的Kubernetes集群规模调整方法、系统及设备 | |
CN114839879A (zh) | 一种基于分布式强化学习的自主设备决策控制方法 | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
CN110955497A (zh) | 一种基于任务分割的分布式图计算系统 | |
CN115936095B (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 |