CN111105016B - 一种数据处理方法、装置、电子设备及可读存储介质 - Google Patents
一种数据处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111105016B CN111105016B CN201911243326.6A CN201911243326A CN111105016B CN 111105016 B CN111105016 B CN 111105016B CN 201911243326 A CN201911243326 A CN 201911243326A CN 111105016 B CN111105016 B CN 111105016B
- Authority
- CN
- China
- Prior art keywords
- gpu
- node
- controlling
- data
- trained
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种数据处理方法,为克服现有技术缺陷,本申请首先在保持整体仍为PS架构的基础上,将每个worker节点中各GPU的结构改为环状,以通过将每个worker节点的内部结构改为Ring‑allreduce架构来尽可能的缓解原PS架构存在的带宽瓶颈问题。同时,通过将原先仅有一级的PS节点调整为首次两级,并通过首级定期从次级中拉取一级迭代数据的方式尽可能的缓解了异步模式下存在的最优解丢失问题。待训练数据按照本申请提供的新式深度学习分布式训练架构依次进行处理,能够较好的解决上述现有技术缺陷,效果更佳。本申请还同时公开了一种数据处理装置、电子设备及可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及数据处理领域,特别涉及一种数据处理方法、装置、电子设备及可读存储介质。
背景技术
随着信息技术的发展,人们不断追求着信息技术发展对日常生活带来的便利性。其中,人脸识别和语音识别技术作为新式身份识别机制,其以极大的便利性对传统身份识别机制带来了极大的冲击。但由于身份识别机制的重要性,现今的人脸识别和语言识别技术也存在一些漏洞,例如拿录音和人脸图像来骗过验证机制,修补这一漏洞的一个方向是增加验证时的特征判别数量和特征的代表性。
为了能够获取到数量更多的、更具有代表性的人脸图像特征和音频特征,深度神经网络独有的仿生物神经元的架构,使其能够挖掘出更多的特征和更深层次的潜在特征。为实现这一目的,深度神经网络首先需要通过大量的数据进行训练,从而让自己通过不断的学习具有更准确的分辨能力,训练过程也是构建一个实际可用的深度神经网络过程中最为耗时的步骤。为提升训练效率和缩短耗时,又结合了分布式架构形成了新的深度学习分布式训练架构。
但无论是现有的PS架构(Parameter Server Architecture,参数服务器架构),还是Ring-allreduce的架构,均无法同时满足对深度学习分布式训练架构提出的更高要求:既能够在同步或异步模式下运行,又能够尽可能的缓解带宽瓶颈问题和异步模式下的非最优解问题。
因此,如何克服上述现有技术存在的技术缺陷,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据处理方法、装置、电子设备及可读存储介质,旨在提供一种新的深度学习分布式训练架构,能够在同步或异步模式下运行,又能够尽可能的缓解带宽瓶颈问题和异步模式下存在的非最优解问题。
为实现上述目的,本申请提供了一种数据处理方法,包括:
下发待训练数据给各worker节点;
控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果;其中,每个所述worker节点包含的至少三个GPU之间形成环状链路;
控制各所述worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点;其中,每个worker节点分别绑定于其中一个低级PS节点;
控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果;
控制所述高级PS节点对各所述一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据。
可选的,当每个所述worker节点中内含3个GPU时,控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,包括:
控制各所述worker节点将接收到的待训练数据分三部分分别下发给第一GPU、第二GPU以及第三GPU;
控制所述第一GPU对接收到的数据进行处理,并控制所述第一GPU将得到的第一处理结果发送给第二GPU;
控制所述第二GPU对接收到的数据进行处理,并控制所述第二GPU将得到的第二处理结果发送给第三GPU;
控制所述第三GPU对接收到的数据进行处理,并控制所述第三GPU将得到的一级迭代结果发送给所述第一GPU;
其中,所述第一GPU的输出端连接于所述第二GPU的输入端,所述第二GPU的输出端连接于所述第三GPU的输入端,所述第三GPU的输出端连接于所述第一GPU的输入端。
可选的,控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果,包括:
控制所述高级PS节点每隔预设时长分别向每个所述次PS节点发起一级迭代结果查询请求;
控制每个所述次级PS节点将存储的一级迭代数据作为请求响应返回给所述高级PS节点。
可选的,该数据处理方法还包括:
对所述训练后数据执行特征提取操作,得到各基准特征;
根据各所述基准特征生成分类判别器,以利用根据所述分类判别器对后续提取到的实际数据进行分类判别。
为实现上述目的,本申请还提供了一种数据处理装置,包括:
待训练数据下发单元,用于下发待训练数据给各worker节点;
迭代训练单元,用于控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果;其中,每个所述worker节点包含的至少三个GPU之间形成环状链路;
一级迭代结果上传单元,用于控制各所述worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点;其中,每个worker节点分别绑定于其中一个低级PS节点;
异步最优解等待单元,用于控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果;
reduce操作及输出单元,用于控制所述高级PS节点对各所述一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据。
可选的,当每个所述worker节点中内含3个GPU时,所述迭代训练单元包括:
下发子单元,用于控制各所述worker节点将接收到的待训练数据分三部分分别下发给第一GPU、第二GPU以及第三GPU;
第一GPU处理及传递子单元,用于控制所述第一GPU对接收到的数据进行处理,并控制所述第一GPU将得到的第一处理结果发送给第二GPU;
第二GPU处理及传递子单元,用于控制所述第二GPU对接收到的数据进行处理,并控制所述第二GPU将得到的第二处理结果发送给第三GPU;
第三GPU处理及传递子单元,用于控制所述第三GPU对接收到的数据进行处理,并控制所述第三GPU将得到的一级迭代结果发送给所述第一GPU;
其中,所述第一GPU的输出端连接于所述第二GPU的输入端,所述第二GPU的输出端连接于所述第三GPU的输入端,所述第三GPU的输出端连接于所述第一GPU的输入端。
可选的,所述异步最优解等待单元包括:
查询请求发送子单元,用于控制所述高级PS节点每隔预设时长分别向每个所述次PS节点发起一级迭代结果查询请求;
响应数据返回子单元,用于控制每个所述次级PS节点将存储的一级迭代数据作为请求响应返回给所述高级PS节点。
可选的,该数据处理装置还包括:
特征提取单元,用于对所述训练后数据执行特征提取操作,得到各基准特征;
分类判别器生成单元,用于根据各所述基准特征生成分类判别器,以利用根据所述分类判别器对后续提取到的实际数据进行分类判别。
为实现上述目的,本申请还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的数据处理方法的各步骤。
为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的数据处理方法的各步骤。
本申请提供的一种数据处理方法包括:下发待训练数据给各worker节点;控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果;其中,每个所述worker节点包含的至少三个GPU之间形成环状链路;控制各所述worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点;其中,每个worker节点分别绑定于其中一个低级PS节点;控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果;控制所述高级PS节点对各所述一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据。
根据本申请提供的数据处理方法可知,为克服现有技术缺陷,本申请首先在保持整体仍为PS架构的基础上,将每个worker节点中各GPU的结构改为环状,以通过将每个worker节点的内部结构改为Ring-allreduce架构来尽可能的缓解原PS架构存在的带宽瓶颈问题。同时,通过将原先仅有一级的PS节点调整为首次两级,并通过首级定期从次级中拉取一级迭代数据的方式尽可能的缓解了异步模式下存在的最优解丢失问题。待训练数据按照本申请提供的新式深度学习分布式训练架构依次进行处理,能够较好的解决上述现有技术缺陷,效果更佳。
本申请同时还提供了一种数据处理装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为传统PS架构的架构示意图;
图2为传统Ring-allreduce架构的架构示意图;
图3为异步模式下最优解丢失的解精度走向的示意图;
图4为本申请实施例提供的一种数据处理方法的流程图;
图5为与图4所示数据处理方法对应的新式深度学习分布式训练架构的架构示意图;
图6为本申请实施例提供的一种内含3个GPU的worker节点进行迭代处理的流程图;
图7为本申请实施例提供的一种对训练后数据进行处理以生成分类判别器的方法的流程图;
图8为本申请实施例提供的一种具体的数据处理方法的流程示意图;
图9为本申请实施例提供的一种数据处理装置的结构框图。
具体实施方式
本申请的目的是提供一种数据处理方法、装置、电子设备及可读存储介质,旨在提供一种新的深度学习分布式训练架构,能够在同步或异步模式下运行,又能够尽可能的缓解带宽瓶颈问题和异步模式下存在的非最优解问题。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为便于理解本方案,首先对现有技术常用的PS架构和Ring-allreduce架构各自存在的技术缺陷从起结构开始进行说明:
在如图1所示的PS架构示意图中,集群中的节点被分为两类:PS(ParameterServer)节点和worker节点(每个仅由一个GPU构成)。其中PS节点存放模型的参数,而worker节点负责计算参数的梯度。在每个迭代过程,worker节点从PS节点中获得参数,然后将计算出的梯度再返回给PS节点,PS节点聚合从各worker节点传回的梯度,然后更新参数,再将新的参数再次广播给各worker节点。该架构可以选择采用同步模式训练或异步模式训练,不管各worker节点间的加速设备如GPU性能型号是否相同均能试用,均能达到较好的训练效果。然而有一个严重的缺陷是PS节点的通信时间是随着GPU卡数(即worker节点数)的增长而线性增长的,当集群规模较大时,带宽将成为瓶颈。
为了解决PS架构的带宽瓶颈问题,一种新的分布式训练架构Ring-allreduce架构被提出并得到广泛应用。在如图2所示的Ring-allreduce架构示意图中,各个设备都是worker,并且形成一个环。该架构没有中心节点来聚合所有worker节点计算出的梯度。替代的是,在一个迭代过程,每个worker节点完成自己的mini-batch训练,计算出梯度,并将梯度传递给环中的下一个worker节点,同时它也接收从上一个worker节点传来的梯度。对于一个包含N个worker节点的环,各个worker节点需要收到其它N-1个worker节点传来的梯度后就可以更新模型参数。该架构在一定程度上缓解了PS架构的带宽瓶颈问题,然而它只适用于同步数据并行训练模式,当遇到GPU型号性能不一致时,训练效率低下。
PS架构还存在的另一个缺陷是:异步数据并行模式带来的缺陷,即使用异步模式训练的深度学习模型有可能无法达到较优的训练结果,简单来说就是最优解丢失。图3给出了一个具体的样例来说明异步模式的问题。其中黑色曲线展示了模型的损失函数,黑色小球表示了在当前时刻参数所对应的损失函数的大小。假设两个设备d0和d1在时间t0同时读取了参数的取值,那么设备d0和d1计算出来的梯度都会将小黑球向左移动。假设在时间t1设备d0己经完成了反向传播的计算井更新了参数,修改后的参数处于图中小灰球的位置。然而这时的设备d1并不知道参数已经被更新了,所以在时间t2时,设备d1会继续将小球向左移动,使得小球的位置达到图3中小白球的地方。从图中可以看到,当参数被调整到小白球的位置时,将无法达到最优点。
请参见图4和图5,图4为本申请实施例提供的一种数据处理方法的流程图,图5为与图4所示数据处理方法对应的新式深度学习分布式训练架构的架构示意图,图4所示流程图包括以下步骤(应当理解的是,下述步骤的执行主体均为具有运算能力或数据处理能力的电子设备或运算组件,例如大型数据中心的服务器,下述将均以服务器进行举例说明):
S101:下发待训练数据给各worker节点;
本步骤旨在由服务器将上位机发来的待训练数据下发给新架构中的各worker节点,其中,下发给各worker节点的数据应是不同的,除非不同worker节点内置有不同的迭代处理参数。
S102:控制各worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果;
其中,每个worker节点包含的至少三个GPU之间形成环状链路,即类似如图2所示的环。
在S101的基础上,本步骤旨在由服务器控制各worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果。此步骤进行的迭代训练过程类似于Ring-allreduce架构中各worker节点在环中所执行的操作,此处不再一一赘述,可参见如图5示出的各worker节点中的具体内部结构。
S103:控制各worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点;
其中,每个worker节点预先分别绑定于其中一个低级PS节点,该低级PS节点对应标号为PS1的PS节点。可以看出,worker0对应于PS1中编号为para0的低级PS节点,各编号para节点所在的层级统称为低级PS节点。
在S102的基础上,本步骤旨在由服务器控制各worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点,以通过PS架构来实现梯度的汇总和再更新。
S104:控制高级PS节点按周期从各次PS节点中获取各一级迭代结果;
其中,本步骤所描述的高级PS节点即为图5中位于PS1上层的PS2节点,可见,区别于PS1包含的多个para节点,PS2层级节点仅有一个。
在S103的基础上,本步骤旨在由服务器控制高级PS节点按周期从各次PS节点中获取各一级迭代结果,以通过周期性获取来尽可能的减少因工作在异步模式下存在的最优解丢失问题。之所以产生最优解丢失问题,根据对应图3部分的解释说明可视看出,正是因为在异步模式下,每有一个worker节点返回了一级迭代结果,都将触发一次全体的参数更新,无法覆盖更全面的情况。因此,本申请通过将PS节点分成两级,次级PS节点仅用于存储相对应worker节点返回的一级迭代结果,高级PS节点则通过等待的一段时间的能够一次性对尽可能的多的一级迭代结果进行汇总处理,从而尽可能的规避这一问题。
S105:控制高级PS节点对各一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据。
在S104的基础上,本步骤旨在由服务器控制高级PS节点对各一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据。
其中,reduce操作为PS架构中使用的术语,高级PS节点所做的工作是将次级PS节点传入的结果进行reduce,例如求平均,然后再将得到平均值后再分发给各次级PS,这一过程也被称为更新。每次更新完之后会紧接着开始下一次的迭代,最终经过预设次数的更新和迭代之后,将会得到最终输出的训练后数据。
简单来说,训练过程是一个多次循环迭代的过程,各个worker节点不断的从次级PS节点获取经高级PS节点reduce操作后得到的最新权重值,并以此作为指导进行新一轮的计算,直至经过预设轮数后训练结束,最终得到训练数据。
根据本实施例提供的数据处理方法可知,为克服现有技术缺陷,本申请首先在保持整体仍为PS架构的基础上,将每个worker节点中各GPU的结构改为环状,以通过将每个worker节点的内部结构改为Ring-allreduce架构来尽可能的缓解原PS架构存在的带宽瓶颈问题。同时,通过将原先仅有一级的PS节点调整为首次两级,并通过首级定期从次级中拉取一级迭代数据的方式尽可能的缓解了异步模式下存在的最优解丢失问题。待训练数据按照本申请提供的新式深度学习分布式训练架构依次进行处理,能够较好的解决上述现有技术缺陷,效果更佳。
为加深理解,此处本申请还通过图6以每个worker节点包含3个GPU为例,给出了一种具体的计算出一级迭代结果的流程图,包括如下步骤:
S201:控制各所述worker节点将接收到的待训练数据分三部分分别下发给第一GPU、第二GPU以及第三GPU;
即同时下发给每个GPU待训练数据,且下发给每个GPU的待训练数据是不同的。
S202:控制第一GPU对接收到的数据进行处理,并控制第一GPU将得到的第一处理结果发送给第二GPU;
S203:控制第二GPU对接收到的数据进行处理,并控制第二GPU将得到的第二处理结果发送给第三GPU;
S204:控制第三GPU对接收到的数据进行处理,并控制第三GPU将得到的一级迭代结果发送给第一GPU。
其中,第一GPU的输出端连接于第二GPU的输入端,第二GPU的输出端连接于第三GPU的输入端,第三GPU的输出端连接于第一GPU的输入端,即三个GPU通过首位相连的方式形成一个环,待训练数据从任意一个GPU开始首次处理,也将从该GPU最终向上反馈。
进一步的,在上述方案的基础上,结合后续使用过程,此处还通过图7对训练后数据在实际应用场景下的使用方式,给出了其中一种具体的方案,包括如下步骤:
S301:控制高级PS节点对各一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据;
S302:对训练后数据执行特征提取操作,得到各基准特征;
S303:根据各基准特征生成分类判别器,以利用根据分类判别器对后续提取到的实际数据进行分类判别。
可以看出,如图7所示的流程图示出了一种将经过新式深度学习分布式训练架构最终输出的训练数据,依次进行特征提取、生成分类判别器的方式,将训练数据成功转换为可用于对实际数据具体属于哪一类的分类判别器。
具体的,当上述方案具体应用于人脸识别或语音识别领域时,上述方案将具体为(以人脸识别领域为例):
对训练后的人脸图像数据执行特征提取操作,得到各基准人脸图像特征;
根据各基准人脸图像特征生成真实人脸图像分类判别器;
利用该分类判别器对摄像头实际采集到的实际人脸图像进行判别,从而判别出是否为真实的人脸图像,还是使用了截取自视频的影像中的人脸图像,亦或是提取自照片中的静态人脸图像。当然,为了能够实现该效果,训练数据应至少包含三类,即真实人脸图像、截取自视频的影像中的人脸图像,以及提取自照片中的静态人脸图像,以使新式深度学习分布式训练架构通过对上述三种类型训练数据的不断训练和学习,找到区别这三类数据的特征。
语音识别机制类似于上述方案,此处不再一一赘述。
为进一步加深对数据处理过程的理解,本申请还结合实际应用场景从新式深度学习分布式训练架构的各个层次的描述角度出发,给出了一种如图8所示的数据处理流程示意图:
步骤1.设置并启动计时器;
步骤2.ps1的模型参数初始化或模型参数更新;
步骤3.ps2的模型参数初始化或模型参数更新;
步骤4.接下来启动各个worker开始模型训练迭代过程,在各个worker上的计算包括:①从ps2获取对应的模型参数并分发给worker内部的各个GPU设备;②各个GPU设备分别进行前向传播、反向传播计算梯度;③各GPU后向传播计算完成后,进行scatter-reduce和allgather操作完成worker内部的ring-allreduce过程,得到该worker的待更新梯度值;④更新ps2上对应的梯度,然后返回①;
同时根据计时器时间,每隔60s对ps2上的多份参数进行一次聚合操作,将聚合后的值更新到ps1,然后根据ps1最新参数值更新ps2的的各份参数,用于后续训练。
本发明提出了一种改进的深度学习分布式训练架构,将PS架构与Ring-allreduce架构相结合,最终实现了二者的优势互补。具体来说,首先为每个worker节点分配GPU加速设备,每个worker包含m个GPU(m>=2),要求每个worker内部的m个GPU性能型号相同,各worker之间的GPU性能型号可以不同。改进的分布式训练架构采用分层设计,将整个架构分为两层,底层为:单个worker内部的多个GPU之间基于Ring-allreduce采用同步数据并行模式进行训练;而上层,即各个worker之间基于PS架构采用异步数据并行模式进行分布式训练。如此一来,只需要各个worker与ps通信,而不是各个GPU均与PS通信了,在一定程度上缓解了传统ps架构面临的带宽压力。
同时,为了解决上层异步数据并行模式训练时无法得到较优解的问题,设置两级Parameter Server,其中第一级PS1中存储n份参数,每份参数对应一个worker,每个worker只获取和更新自己对应位置上的参数。每隔一段时间,将ps1上的多份参数reduce一次,得到最终的grad更新到ps2,同时从ps2获取最新参数更新ps1上的各份参数。如此一来,解决了异步模式训练可能无法达到较优的训练结果的问题。
改进后的架构既能在一定程度上缓解PS架构面临的带宽压力,又保留了PS架构对不同GPU型号情况的适应能力,同时解决了异步数据并行模式无法得到较优解的问题。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图9,图9为本申请实施例提供的一种数据处理装置的结构框图,该装置可以包括:
待训练数据下发单元100,用于下发待训练数据给各worker节点;
迭代训练单元200,用于控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果;其中,每个所述worker节点包含的至少三个GPU之间形成环状链路;
一级迭代结果上传单元300,用于控制各所述worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点;其中,每个worker节点分别绑定于其中一个低级PS节点;
异步最优解等待单元400,用于控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果;
reduce操作及输出单元500,用于控制所述高级PS节点对各所述一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据。
其中,当每个所述worker节点中内含3个GPU时,该迭代训练单元200可以包括:
下发子单元,用于控制各所述worker节点将接收到的待训练数据分三部分分别下发给第一GPU、第二GPU以及第三GPU;
第一GPU处理及传递子单元,用于控制所述第一GPU对接收到的数据进行处理,并控制所述第一GPU将得到的第一处理结果发送给第二GPU;
第二GPU处理及传递子单元,用于控制所述第二GPU对接收到的数据进行处理,并控制所述第二GPU将得到的第二处理结果发送给第三GPU;
第三GPU处理及传递子单元,用于控制所述第三GPU对接收到的数据进行处理,并控制所述第三GPU将得到的一级迭代结果发送给所述第一GPU;
其中,所述第一GPU的输出端连接于所述第二GPU的输入端,所述第二GPU的输出端连接于所述第三GPU的输入端,所述第三GPU的输出端连接于所述第一GPU的输入端。
其中,该异步最优解等待单元400可以包括:
查询请求发送子单元,用于控制所述高级PS节点每隔预设时长分别向每个所述次PS节点发起一级迭代结果查询请求;
响应数据返回子单元,用于控制每个所述次级PS节点将存储的一级迭代数据作为请求响应返回给所述高级PS节点。
进一步的,该数据处理装置还可以包括:
特征提取单元,用于对所述训练后数据执行特征提取操作,得到各基准特征;
分类判别器生成单元,用于根据各所述基准特征生成分类判别器,以利用根据所述分类判别器对后续提取到的实际数据进行分类判别。
基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
下发待训练数据给各worker节点;
控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到第一迭代结果;其中,每个所述worker节点包含的至少三个GPU之间形成环状链路;
控制各所述worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点,通过PS架构来实现梯度的汇总和再更新;其中,每个worker节点分别绑定于其中一个低级PS节点;
控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果;
控制所述高级PS节点对各所述一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据;
每隔一段时间,对次PS节点上的多份参数进行一次聚合操作,将聚合后的多份参数reduce一次,得到最终的grad更新到高级PS节点,同时从高级PS节点获取最新参数更新次PS节点上的各份参数,用于后续训练。
2.根据权利要求1所述的数据处理方法,其特征在于,当每个所述worker节点中内含3个GPU时,控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,包括:
控制各所述worker节点将接收到的待训练数据分三部分分别下发给第一GPU、第二GPU以及第三GPU;
控制所述第一GPU对接收到的数据进行处理,并控制所述第一GPU将得到的第一处理结果发送给所述第二GPU;
控制所述第二GPU对接收到的数据进行处理,并控制所述第二GPU将得到的第二处理结果发送给所述第三GPU;
控制所述第三GPU对接收到的数据进行处理,并控制所述第三GPU将得到的一级迭代结果发送给所述第一GPU;
其中,所述第一GPU的输出端连接于所述第二GPU的输入端,所述第二GPU的输出端连接于所述第三GPU的输入端,所述第三GPU的输出端连接于所述第一GPU的输入端。
3.根据权利要求1所述的数据处理方法,其特征在于,控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果,包括:
控制所述高级PS节点每隔预设时长分别向每个所述次PS节点发起一级迭代结果查询请求;
控制每个所述次级PS节点将存储的一级迭代数据作为请求响应返回给所述高级PS节点。
4.根据权利要求1至3任一项所述的数据处理方法,其特征在于,还包括:
对所述训练后数据执行特征提取操作,得到各基准特征;
根据各所述基准特征生成分类判别器,以利用根据所述分类判别器对后续提取到的实际数据进行分类判别。
5.一种数据处理装置,其特征在于,包括:
待训练数据下发单元,用于下发待训练数据给各worker节点;
迭代训练单元,用于控制各所述worker节点将接收到的待训练数据通过内含的至少三个GPU进行迭代训练,得到一级迭代结果;其中,每个所述worker节点包含的至少三个GPU之间形成环状链路;
一级迭代结果上传单元,用于控制各所述worker节点分别将各自的一级迭代结果发送给相对应的低级PS节点,通过PS架构来实现梯度的汇总和再更新;其中,每个worker节点分别绑定于其中一个低级PS节点;
异步最优解等待单元,用于控制高级PS节点按周期从各所述次PS节点中获取各所述一级迭代结果;
reduce操作及输出单元,用于控制所述高级PS节点对各所述一级迭代结果执行reduce操作,并输出经预设次数的更新和迭代操作得到的训练后数据;
交互单元,用于每隔一段时间,对次PS节点上的多份参数进行一次聚合操作,将聚合后的多份参数reduce一次,得到最终的grad更新到高级PS节点,同时从高级PS节点获取最新参数更新次PS节点上的各份参数,用于后续训练。
6.根据权利要求5所述的数据处理装置,其特征在于,当每个所述worker节点中内含3个GPU时,所述迭代训练单元包括:
下发子单元,用于控制各所述worker节点将接收到的待训练数据分三部分分别下发给第一GPU、第二GPU以及第三GPU;
第一GPU处理及传递子单元,用于控制所述第一GPU对接收到的数据进行处理,并控制所述第一GPU将得到的第一处理结果发送给所述第二GPU;
第二GPU处理及传递子单元,用于控制所述第二GPU对接收到的数据进行处理,并控制所述第二GPU将得到的第二处理结果发送给所述第三GPU;
第三GPU处理及传递子单元,用于控制所述第三GPU对接收到的数据进行处理,并控制所述第三GPU将得到的一级迭代结果发送给所述第一GPU;
其中,所述第一GPU的输出端连接于所述第二GPU的输入端,所述第二GPU的输出端连接于所述第三GPU的输入端,所述第三GPU的输出端连接于所述第一GPU的输入端。
7.根据权利要求5所述的数据处理装置,其特征在于,所述异步最优解等待单元包括:
查询请求发送子单元,用于控制所述高级PS节点每隔预设时长分别向每个所述次PS节点发起一级迭代结果查询请求;
响应数据返回子单元,用于控制每个所述次级PS节点将存储的一级迭代数据作为请求响应返回给所述高级PS节点。
8.根据权利要求5至7任一项所述的数据处理装置,其特征在于,还包括:
特征提取单元,用于对所述训练后数据执行特征提取操作,得到各基准特征;
分类判别器生成单元,用于根据各所述基准特征生成分类判别器,以利用根据所述分类判别器对后续提取到的实际数据进行分类判别。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1至4任一项所述的数据处理方法的各步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至4任一项所述的数据处理方法的各步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243326.6A CN111105016B (zh) | 2019-12-06 | 2019-12-06 | 一种数据处理方法、装置、电子设备及可读存储介质 |
PCT/CN2020/103738 WO2021109588A1 (zh) | 2019-12-06 | 2020-07-23 | 一种数据处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243326.6A CN111105016B (zh) | 2019-12-06 | 2019-12-06 | 一种数据处理方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111105016A CN111105016A (zh) | 2020-05-05 |
CN111105016B true CN111105016B (zh) | 2023-04-28 |
Family
ID=70422390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911243326.6A Active CN111105016B (zh) | 2019-12-06 | 2019-12-06 | 一种数据处理方法、装置、电子设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111105016B (zh) |
WO (1) | WO2021109588A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111105016B (zh) * | 2019-12-06 | 2023-04-28 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置、电子设备及可读存储介质 |
CN111917579A (zh) * | 2020-07-30 | 2020-11-10 | 云知声智能科技股份有限公司 | 分布式训练方法、装置、设备和存储介质 |
WO2022110160A1 (en) * | 2020-11-30 | 2022-06-02 | Intel Corporation | Method of ring allreduce processing |
CN113592089B (zh) * | 2021-08-04 | 2024-04-02 | 中国科学技术大学 | 一种分布式深度学习训练场景下压缩感知的梯度同步方法 |
CN114884908B (zh) * | 2022-04-29 | 2024-02-13 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN116090551B (zh) * | 2023-03-06 | 2023-07-14 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027938B1 (en) * | 2007-03-26 | 2011-09-27 | Google Inc. | Discriminative training in machine learning |
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN106297774A (zh) * | 2015-05-29 | 2017-01-04 | 中国科学院声学研究所 | 一种神经网络声学模型的分布式并行训练方法及系统 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN110135573A (zh) * | 2018-02-02 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 一种深度学习模型的训练方法、计算设备以及系统 |
CN110168580A (zh) * | 2017-01-10 | 2019-08-23 | 华为技术有限公司 | 使用分布式系统训练分类器模型时的容错恢复系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US9984337B2 (en) * | 2014-10-08 | 2018-05-29 | Nec Corporation | Parallelized machine learning with distributed lockless training |
CN107391432B (zh) * | 2017-08-11 | 2020-07-28 | 中国计量大学 | 一种异构并行计算装置及运算节点互联网络 |
CN109754060B (zh) * | 2017-11-06 | 2023-08-25 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN110033078B (zh) * | 2018-01-12 | 2024-01-12 | 华为技术有限公司 | 一种基于树状拓扑的计算系统及方法 |
CN110134636B (zh) * | 2018-02-09 | 2023-04-18 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
US10728091B2 (en) * | 2018-04-04 | 2020-07-28 | EMC IP Holding Company LLC | Topology-aware provisioning of hardware accelerator resources in a distributed environment |
CN110096356B (zh) * | 2019-03-22 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 资源调度方法、装置、电子设备及存储介质 |
CN110263539A (zh) * | 2019-05-15 | 2019-09-20 | 湖南警察学院 | 一种基于并行集成学习的安卓恶意应用检测方法及系统 |
CN111105016B (zh) * | 2019-12-06 | 2023-04-28 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置、电子设备及可读存储介质 |
-
2019
- 2019-12-06 CN CN201911243326.6A patent/CN111105016B/zh active Active
-
2020
- 2020-07-23 WO PCT/CN2020/103738 patent/WO2021109588A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027938B1 (en) * | 2007-03-26 | 2011-09-27 | Google Inc. | Discriminative training in machine learning |
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN106297774A (zh) * | 2015-05-29 | 2017-01-04 | 中国科学院声学研究所 | 一种神经网络声学模型的分布式并行训练方法及系统 |
CN110168580A (zh) * | 2017-01-10 | 2019-08-23 | 华为技术有限公司 | 使用分布式系统训练分类器模型时的容错恢复系统和方法 |
CN110135573A (zh) * | 2018-02-02 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 一种深度学习模型的训练方法、计算设备以及系统 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
Non-Patent Citations (3)
Title |
---|
张智鹏 ; 江佳伟 ; 余乐乐 ; 崔斌 ; .Angel~+:基于Angel的分布式机器学习平台.数据与计算发展前沿.2019,(第05期),全文. * |
李相桥 ; 李晨 ; 田丽华 ; 张玉龙 ; .卷积神经网络并行训练的优化研究.计算机技术与发展.2018,(第08期),全文. * |
陈孟强 ; 颜子杰 ; 叶彦 ; 吴维刚 ; .基于HPC环境的深度学习并行优化.计算机工程与科学.2018,(第S1期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111105016A (zh) | 2020-05-05 |
WO2021109588A1 (zh) | 2021-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111105016B (zh) | 一种数据处理方法、装置、电子设备及可读存储介质 | |
US20190332944A1 (en) | Training Method, Apparatus, and Chip for Neural Network Model | |
CN112889108B (zh) | 使用视听数据进行说话分类 | |
CN109117953B (zh) | 网络参数训练方法和系统、服务器、客户端及存储介质 | |
CN109947029B (zh) | 智能家居设备的控制方法、装置及设备 | |
CN109983480B (zh) | 使用聚类损失训练神经网络 | |
CN110110843A (zh) | 用于处理图像的方法和系统 | |
CN111625361A (zh) | 一种基于云端服务器和IoT设备协同的联合学习框架 | |
CN109919078A (zh) | 一种视频序列选择的方法、模型训练的方法及装置 | |
US11341415B2 (en) | Method and apparatus for compressing neural network | |
GB2618917A (en) | Method for few-shot unsupervised image-to-image translation | |
CN111798244B (zh) | 交易欺诈行为监测方法及装置 | |
US20230093746A1 (en) | Video loop recognition | |
EP3889846A1 (en) | Deep learning model training method and system | |
US20230080230A1 (en) | Method for generating federated learning model | |
CN109918630A (zh) | 文本生成方法、装置、计算机设备及存储介质 | |
US20230306258A1 (en) | Training video data generation neural networks using video frame embeddings | |
Jain et al. | A user simulator architecture for socially-aware conversational agents | |
CN113241064A (zh) | 语音识别、模型训练方法、装置、电子设备和存储介质 | |
CN113039561A (zh) | 通过生成数据项的编码表示来对齐序列 | |
CN109242089B (zh) | 递进监督深度学习神经网络训练方法、系统、介质和设备 | |
CN110991279A (zh) | 文档图像分析与识别方法及系统 | |
CN107430596A (zh) | 输入法编辑器的外部化执行 | |
CN115470937A (zh) | 一种基于设备特性的异步联邦学习的任务调度方法 | |
CN114528893A (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 |