近年来,深度学习技术已在语音识别[1-2]、计算机视觉[3-4]和自然语言处理[5]等领域得到广泛应用并取得了众多研究成果。在深度学习任务中常使用梯度下降(Gradient Descent,GD)算法作为深度神经网络(Deep Neural Network,DNN)模型训练的主要算法[6-7],然而由于数据量的爆炸式增长,现有单机系统已无法满足梯度下降算法对计算资源的庞大需求。分布式技术通过多机协同计算的方式,使用多个计算节点扩充计算性能,可提供梯度下降算法所需的大量计算资源,因此研究梯度下降算法在分布式集群上的并行化计算非常必要[8]。
目前,深度神经网络分布式训练中通常使用数据并行化方法,基于数据并行化的梯度下降算法包括同步随机梯度下降[9](Synchronized Stochastic Gradient Descent,SSGD)和异步随机梯度下降[10](Asynchronized Stochastic Gradient Descent,ASGD)两种算法。同步算法在每次迭代过程中通过同步各个节点的状态来保持状态一致,因此同步梯度下降能够保持和单机串行算法相同的收敛方向,从而导致其所需的通信量相对其他算法更多,容易受分布式集群中的通信瓶颈影响,同时计算节点之间需要相互等待传输梯度更新结果,从而造成了计算资源的浪费。异步算法则无需等待节点状态一致,每个节点在更新权值参数时不会检查其他节点的运行状态,独立地更新本地模型到全局模型上,并获取全局模型参数继续执行下一步计算,如果在该计算过程中又有其他节点更新了全局模型,那么该节点用于执行下一步计算的全局模型参数就不是最新的,该数据交互模式将导致梯度延迟问题[11-12],而梯度延迟问题又会导致每个节点用于执行下一步计算的全局模型不一致。在大规模分布式集群中,随着分布式集群中的节点数目增加,节点计算状态保持一致的概率越来越小,节点之间所需传输的信息量逐渐增多,因此无论同步或异步算法,都在大规模分布式集群中存在亟待解决的效率问题。本文提出基于分布式编码的同步随机梯度下降算法CSSGD,通过分布式编码策略[13-14]降低分布式集群上的通信负载。
1 相关工作近年来,分布式并行梯度下降算法得到了广泛应用,研究人员针对分布式神经网络训练开展了大量研究工作,这些工作主要围绕分布式异构计算和通信负载两方面展开。分布式集群是典型的异构计算平台,在该异构计算环境下,每个执行进程的执行速度和任务完成时间均不确定,在同步梯度下降算法中由于系统需要同步每一批次中各个计算节点的状态,因此最慢节点的速度成为限制分布式集群整体任务运行速度的主要因素。文献[15-16]通过对每个节点的计算和更新过程进行限时,使每个节点都在已有样本上进行逐样本迭代计算,以保证每个节点都能在任意时间内给出一个可用但不完整的中间梯度运算结果,降低了节点异构对整体任务的影响。文献[17-18]针对大矩阵乘法的并行化问题,提出纠缠多项式码,使用纠缠多项式码对矩阵乘法运算进行拆解,并对原始矩阵计算任务添加一定量的冗余以加快运算速度。
此外,并行梯度下降算法还需在各个计算节点之间进行密集地数据交换,因此分布式集群的通信性能也是影响分布式神经网络训练性能的主要问题。文献[19]提出1-Bit数值量化方案,使用Adagrad算法进行学习率迭代并结合误差累积回溯,在深度神经网络中得到一种低通信负载的分布式神经网络训练方案。文献[20]提出批次内并行化方法,使用较小的Block划分和基于动量的参数迭代方案提高了分布式神经网络的训练速度。文献[21]提出改进的并行梯度下降算法,在改进算法中每个节点不再将本地计算结果推送给分布式集群中的所有节点,而是随机选取一部分节点进行更新以降低通信负载。文献[22]结合MDS编码和分布式通信编码对分布式机器学习中的大矩阵乘法进行优化,有效解决了分布式系统慢节点和通信瓶颈问题,但其在编码过程中的冗余量较大。
上述文献分别从不同角度对分布式神经网络的训练过程进行分析与改进,然而在针对分布式通信瓶颈和分布式计算异构方面,使用量化或随机策略不可避免地会影响网络训练精确度,而利用MDS码则会引入更多的通信冗余。本文设计一种用于同步梯度下降算法的分布式编码策略,能够降低分布式集群上的通信负载,并保证分布式神经网络的训练精确度。
2 本文同步随机梯度下降算法梯度下降算法是用于求解目标函数最小值的常用优化算法,当网络模型参数为
$ \underset{w}{\mathrm{m}\mathrm{i}\mathrm{n}}F\left(w;x, y\right) $ | (1) |
$ w\left(t\right)=w\left(t-1\right)-\eta \cdot \nabla F\left(w\left(t-1\right);x, y\right) $ | (2) |
$ ∆{w}_{i}\left(t\right)=\nabla F\left({w}_{i}\left(t-1\right);{x}_{i}, {y}_{i}\right) $ | (3) |
$ w\left(t\right)=w\left(t-1\right)-\eta \cdot \frac{1}{\left|x\right|}\sum\limits_{i}∆{w}_{i}\left(t\right) $ | (4) |
本文算法是同步梯度下降算法的一种改进形式,算法执行步骤为:1)将目标样本集合以预设批次大小进行划分,在添加冗余后将其平均分配到各个节点上;2)每个节点都在已有样本上执行反向传播算法,并对中间梯度结果进行编码,同时将中间梯度结果进行整合,实现数据分组交换;3)每个节点根据接收到的中间结果数据,解码出该节点所需的内容,继续执行训练过程。本文算法在任务分配时使用冗余分发策略,因此每个节点所需的中间结果数据可以从r个包含该数据的节点处获取,因此每个节点可以仅发送必要数据的1/r,由接收节点自行拼装完整结果,如图 1所示。同时,由于多个节点间存在冗余数据,因此一份数据可以被多个节点所共有,使用编码策略将需要发送的多个数据分片累加,将中间结果数据多播给多个节点,每个节点接收到累加结果后减去已知部分,即可得到所需部分的结果,如图 2所示。本文结合上述两种策略并将其扩展至梯度矩阵信息交换过程中,提出能够有效降低梯度下降算法通信负载的方案。
![]() |
Download:
|
图 1 冗余分发策略 Fig. 1 Redundant distribution strategy |
![]() |
Download:
|
图 2 编码策略 Fig. 2 Coding strategy |
本文同步随机梯度下降算法的伪代码如算法1所示,具体过程为在给定的训练数据集
算法1 本文同步随机梯度下降算法
输入 dataset
输出 final model parameter
1.initialize all
2.each node
3.for
4.for each node
5.for each node,encode and push
6.for each node,receive and decode
7. set
8.update
9.end for
10.return
本文设计一种任务分配算法,在有n个计算节点的集群上,将训练数据集F冗余r倍并平均分配到每个节点上,且每个节点上的样本组合不重复。上述分配过程可以描述为一个简单的排列组合过程,首先要实现
算法2 任务分配算法
输入 dataset
输出 data assignment
1.
2.
3.
4.for each
5.
6.for
7.for each
8.
9.end for
10.end for
11.end for
12.return
为阐述算法2的执行过程,首先定义分布式集群中所有节点的集合为
$ U\triangleq \left\{{N}_{i}\right|i=\mathrm{0, 1}, \cdots , n-1\} $ | (5) |
$ C\triangleq \mathrm{c}\mathrm{o}\mathrm{m}\mathrm{b}\mathrm{i}\mathrm{n}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\left(U, r\right) $ | (6) |
同样地,将训练样本按照输入的批次大小
本文通过对中间结果矩阵进行编码,可压缩每个节点发送的数据量,同时实现数据多播以减少发送时间。由于在任务分配时使用冗余分发策略,因此每个节点所需的中间结果数据可以从
数据传输编码算法的伪代码如算法3所示,具体过程为在给定所有中间结果矩阵的列表
算法3 数据传输编码算法
输入 list of all gradient matrix
输出 intermediate result set
1.initialize
2.for each
3.initialize
4.initialize
5.initialize
6.for each
7.
8.
9.
10.
11.end for
12.
13.
14.end for
15.return
按照算法3的执行过程,定义编码的运算过程发生在节点
将节点
$ {B}_{\left(i, l, j, \forall q\right)}\triangleq \left\{{\mathit{\boldsymbol G}}_{\left(i, l, j, {q}_{z}\right)}:z=\mathrm{1, 2}, \cdots , \mu \right\} $ | (7) |
$ {R}_{\left(i, l, j, \forall q\right)}\triangleq \mathrm{c}\mathrm{o}\mathrm{m}\mathrm{b}\mathrm{i}\mathrm{n}\mathrm{a}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}\mathrm{s}\left(B, r\right) $ | (8) |
$ \begin{array}{l}{R}_{\left(i, l, j, \forall q\right)}^{s}\triangleq \\ \left\{{\mathit{\boldsymbol G}}_{\left(i, l, j, {d}_{1}\right)}, {\mathit{\boldsymbol G}}_{\left(i, l, j, {d}_{2}\right)}, \cdots , {\mathit{\boldsymbol G}}_{\left(q, l, j, {d}_{r}\right)}:{d}_{1}<{d}_{2}<\cdots <{d}_{r}\right\}\mathrm{ }\end{array} $ | (9) |
本文依次获取
![]() |
Download:
|
图 3 梯度矩阵按列拆分的示例 Fig. 3 Example for splitting a gradient matrix by column |
将梯度矩阵
$ {\mathcal{G}}_{\left(i, l, j, \forall i\right)}^{s}\triangleq \left\{{B}_{\left(i, l, j, d\right)}^{s, k}:k=\mathrm{0, 1}, 5\cdots , r-1, d={d}_{1}, {d}_{2}, \cdots , {d}_{r}\right\} $ | (10) |
$ {C}_{i}\triangleq \left\{{N}_{{a}_{1}}, {N}_{{a}_{2}}, \cdots , {N}_{{a}_{r}}:{a}_{1}<{a}_{2}<\cdots <{a}_{r}\right\} $ | (11) |
将
$ M_{\left( {i,l,j,\forall q} \right)}^s = \sum\limits_d {B_{\left( {i,l,j,d} \right)}^{s,{\alpha _d}}} $ | (12) |
$ {A}_{i}\triangleq U-{C}_{i} $ | (13) |
至此,就能获取编码包所需的
$ {C}_{\left(i, l, j, \forall q\right)}^{s}\triangleq \mathrm{p}\mathrm{a}\mathrm{c}\mathrm{k}\left({P}_{\left(i, l, j, \forall q\right)}^{s}, {J}_{\left(i, l, j, \forall q\right)}^{s}, {M}_{\left(i, l, j, \forall q\right)}^{s}, {T}_{\left(i, l, j, \forall q\right)}^{s}\right) $ | (14) |
根据编码时的累加结果和分片规则,解码时应按照编码时的运算过程反向求取节点所需的内容。首先通过减法减去节点已知的数据内容,求取未知的数据内容,然后按照分片规则,还原中间结果矩阵,以获取完整的中间结果。数据传输解码算法的伪代码如算法4所示,主要功能为在给定所有中间结果矩阵列表B和接收到的编码数据包
算法4 数据传输解码算法
输入 list of all gradient matrix
输出
1.
2.
3.
4.for each
5.if
6.
7.else
8.
9.
10.end if
11.end for
12.return
在编码包中已包含编码所用样本块编号和编码拆分矩阵的位置信息,依据发送规则可从编码包中提取节点
$ {M}_{\left(\forall i, l, j, {q}_{v}\right)}^{k}={H}_{\left({i}^{\text{'}}, l, j, \forall q\right)}^{s}-\sum\limits_{{q}_{z}, {q}_{z}\ne {q}_{v}}{B}_{\left(i, l, j, {q}_{z}\right)} $ | (15) |
$ {\mathit{\boldsymbol M}}_{\left(\forall i, l, j, {q}_{v}\right)}=\left(\begin{array}{c}{M}_{\left(\forall i, l, j, {q}_{v}\right)}^{0}\\ {M}_{\left(\forall i, l, j, {q}_{v}\right)}^{1}\\ \begin{array}{l}⋮\\ {M}_{\left(\forall i, l, j, {q}_{v}\right)}^{r}\end{array}\end{array}\right) $ | (16) |
$ {\mathit{\boldsymbol G}}_{\left(i, l, j, \forall \right)}=\frac{1}{\left|{F}_{j}\right|}\left[\sum\limits_{{i}_{v}}{\mathit{\boldsymbol M}}_{\left(i, l, j, {q}_{v}\right)}+\sum\limits_{{i}_{z}}{\mathit{\boldsymbol G}}_{\left(i, l, j, {q}_{z}\right)}\right] $ | (17) |
$ ∆{w}_{i}\left(t\right)\leftarrow {\mathit{\boldsymbol G}}_{\left(i, l, j, \forall \right)} $ | (18) |
若假设本文同步随机梯度下降算法的通信负载为
$ \frac{{L}_{\mathrm{c}\mathrm{o}\mathrm{d}\mathrm{i}\mathrm{n}\mathrm{g}}}{{L}_{\mathrm{n}\mathrm{o}\mathrm{r}\mathrm{m}\mathrm{a}\mathrm{l}}}=\frac{{C}_{n}^{r+1}\cdot \left(r+1\right)\cdot \frac{1}{r}}{\left(n-1\right)\cdot {C}_{n}^{r}}=\frac{n-r}{n-1}\cdot \frac{1}{r} $ | (19) |
对上述关系进行证明,具体证明过程如下:使用编码策略进行任务分发和交换,节点数目为
$ {D}_{\mathrm{h}\mathrm{a}\mathrm{v}\mathrm{e}}\triangleq r\cdot {C}_{n}^{r}/n={C}_{n-1}^{r-1} $ | (20) |
$ {D}_{\mathrm{l}\mathrm{e}\mathrm{f}\mathrm{t}}\triangleq {C}_{n}^{r}-r\cdot {C}_{n}^{r}/n $ | (21) |
$ {\mathcal{D}}_{i}\triangleq \left\{{P}_{i}\right|{P}_{i}\mathrm{是}\mathrm{发}\mathrm{送}\mathrm{给}\mathrm{节}\mathrm{点}i\mathrm{的}\mathrm{样}\mathrm{本}\mathrm{块}\} $ | (22) |
对于
$ \left|{\mathcal{D}}_{{i}_{1}}\bigcap {\mathcal{D}}_{{i}_{2}}\bigcap \cdots \bigcap {\mathcal{D}}_{{i}_{r}}\right|=1 $ | (23) |
$ \left|{\mathcal{D}}_{{i}_{1}}\bigcap {\mathcal{D}}_{{i}_{2}}\bigcap \cdots \bigcap {\mathcal{D}}_{{i}_{r+1}}\right|=r+1 $ | (24) |
$ {\mathcal{D}}_{\mathrm{e}\mathrm{x}\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{n}\mathrm{g}\mathrm{e}}\triangleq {\mathcal{D}}_{{i}_{1}}\bigcap {\mathcal{D}}_{{i}_{2}}\bigcap \cdots \bigcap {\mathcal{D}}_{{i}_{r+1}} $ | (25) |
$ {\mathcal{D}}_{\mathrm{s}\mathrm{e}\mathrm{n}\mathrm{d}}\triangleq {\mathcal{D}}_{{i}_{1}}\bigcap {\mathcal{D}}_{{i}_{2}}\bigcap \cdots \bigcap {\mathcal{D}}_{{i}_{r}} $ | (26) |
每个包含
$ r\cdot \frac{1}{r}\cdot {C}_{n-1}^{r}={C}_{n-1}^{r}={C}_{n}^{r}\cdot \left(\frac{n-r}{n}\right)={C}_{n}^{r}-\frac{r\cdot {C}_{n}^{r}}{n}={D}_{\mathrm{l}\mathrm{e}\mathrm{f}\mathrm{t}} $ | (27) |
由于节点
$ {L}_{\mathrm{c}\mathrm{o}\mathrm{d}\mathrm{i}\mathrm{n}\mathrm{g}}={C}_{n}^{r+1}\cdot \left(r+1\right)\cdot \frac{1}{r} $ | (28) |
$ {L}_{\mathrm{u}\mathrm{n}\mathrm{c}\mathrm{o}\mathrm{d}\mathrm{i}\mathrm{n}\mathrm{g}}=n\cdot {D}_{\mathrm{l}\mathrm{e}\mathrm{f}\mathrm{t}}=\left(n-r\right)\cdot {C}_{n}^{r} $ | (29) |
$ {L}_{\mathrm{n}\mathrm{o}\mathrm{r}\mathrm{m}\mathrm{a}\mathrm{l}}=\left(n-1\right)\cdot {C}_{n}^{r} $ | (30) |
本文通过神经网络对SSGD、ASGD和本文CSSGD算法进行分布式训练实验,对比在不同节点数目的情况下3种算法到达指定训练精确度所需物理时钟时间和数据传输量,并利用集群模拟对上述指标进行实验验证,实验中共使用10个计算节点,每个计算节点的配置信息如表 1所示。本文使用MNIST和CIFAR-10数据集在卷积神经网络(Convolutional Neural Network,CNN)和DNN上进行实验。表 2给出CNN和DNN在不限时单机执行环境下所得的测试精确度,以此测试精确度作为最优测试精确度,并在实验中对比3种算法的测试精确度。
![]() |
下载CSV 表 1 计算节点配置信息 Table 1 Configuration information of computing node |
![]() |
下载CSV 表 2 实验数据集上的测试精确度 Table 2 Test accuracy on the experimental dataset |
为保证浮点数执行编码运算后的精确度,本文对计算产生的中间结果进行量化,使用32位整型保存运算所需的浮点数据,设置中间结果区间为[
本文首先对CSSGD算法在DNN与CNN上的训练结果进行评估,然后使用SSGD、ASGD和CSSGD算法在MNIST数据集上训练DNN、在CIFAR-10数据集上训练CNN。在训练过程中,使用10个训练节点(ASGD算法额外使用一个参数服务器)并记录测试精确度的变化情况。由于CSSGD算法的目的是减少训练执行时间,因此实验着重讨论3种算法到达相同测试精确度的时间。
3.2.1 训练性能分析DNN和CNN的训练结果如图 4和图 5所示,可以看出CSSGD、SSGD和ASGD算法在充足的训练时间下,均可达到最终的测试精确度。
![]() |
Download:
|
图 4 利用CSSGD、SSGD和ASGD算法训练DNN的测试精确度比较 Fig. 4 Comparison of test accuracy of training DNN with CSSGD, SSGD and ASGD algorithms |
![]() |
Download:
|
图 5 利用CSSGD、SSGD和ASGD算法训练CNN的测试精确度比较 Fig. 5 Comparison of test accuracy of training CNN with CSSGD, SSGD and ASGD algorithms |
本节实验着重分析3种算法训练所需的时间,在限定的测试精确度下比较算法执行所需的时间以评估算法执行效率。实验在CNN和DNN的原始训练结果中,在接近目标精确度附近选取一个相对3种算法差异最大的基准测试精确度进行后续实验。如图 6、图 7所示,对于使用MNIST数据集的DNN,其选取的基准测试精确度为82%,对于使用CIFAR-10数据集的CNN,其选取的基准测试精确度为70%。下文将针对这组基准测试精确度,比较3种算法的执行效率。
![]() |
Download:
|
图 6 DNN训练中的基准测试精确度 Fig. 6 Benchmark test accuracy of DNN training |
![]() |
Download:
|
图 7 CNN训练中的基准测试精确度 Fig. 7 Benchmark test accuracy of CNN training |
后续实验从3个方面详细分析了CSSGD算法的执行效率:1)由于ASGD算法无独占通信时间,因此在DNN和CNN训练过程中,对比使用CSSGD与SSGD算法在训练时间和通信总量上的差别;2)针对理论推导结果,通过实验验证不同冗余度设置下CSSGD算法的每批次训练时间;3)使用相同的样本数据集和神经网络在上述集群环境下,对比ASGD、SSGD和CSSGD算法训练至基准测试精确度所需的训练时间。
3.2.2 DNN实验结果分析图 8展示了DNN训练中SSGD和CSSGD算法在MNIST数据集上达到82%测试精确度所需的时间,其中,SSGD Multicast和SSGD Unicast分别表示基于多播技术的SSGD算法和基于单播技术的SSGD算法,CSSGD r=2和CSSGD r=3分别表示冗余度为2的CSSGD算法和冗余度为3的CSSGD算法,可以看出CSSGD算法能够有效降低SSGD算法执行所需时间。图 9展示了DNN训练中SSGD Multicast和CSSGD算法占用的网络数据通信总量,可以看出CSSGD算法占用的网络数据通信总量相对SSGD算法更少。
![]() |
Download:
|
图 8 在DNN训练中SSGD和CSSGD算法达到基准测试精确度所需时间 Fig. 8 The time required for SSGD and CSSGD algorithms to reach benchmark test accuracy in DNN training |
![]() |
Download:
|
图 9 在DNN训练中SSGD和CSSGD算法达到基准测试精确度所需通信总量 Fig. 9 The total amount of communication required for SSGD and CSSGD algorithms to reach benchmark test accuracy in DNN training |
图 10展示了CNN训练中SSGD与CSSGD算法在CIFAR-10数据集上达到70%测试精确度所需的时间。在DNN训练过程中产生的权值矩阵相对CNN更大,容易由于网络速度限制造成计算瓶颈,如果对该类别网络使用CSSGD算法,则可以有效缓解通信瓶颈问题。在CNN中执行计算所需时间比DNN更多,因此其对通信瓶颈的影响相对DNN更小,在使用CSSGD算法进行编码梯度下降时,其所能获得的测试精确度相对DNN更低。图 11展示了CNN训练中SSGD Multicast和CSSGD算法占用的网络数据通信总量,可以看出CSSGD算法在CNN和DNN训练中都能够有效降低中间结果的通信总量,但是CNN计算中数据通信所占时间相较DNN更少,因此数据通信优化对总体执行性能的影响较小。
![]() |
Download:
|
图 10 在CNN训练中SSGD和CSSGD算法达到基准测试精确度所需时间 Fig. 10 The time required for SSGD and CSSGD algorithms to reach benchmark test accuracy in CNN training |
![]() |
Download:
|
图 11 在CNN训练中SSGD和CSSGD算法达到基准测试精确度所需通信总量 Fig. 11 The total amount of communication required for SSGD and CSSGD algorithms to reach benchmark test accuracy in CNN training |
根据上文对编码过程的理论推导可以得出,当所需通信时间与数据通信总量呈线性相关时,CSSGD算法单一批次训练所需时间
![]() |
Download:
|
图 12 在DNN训练中CSSGD算法冗余度与单一批次训练时间的关系 Fig. 12 The relationship between the redundancy and the training time of single batch of CSSGD algorithm in DNN training |
![]() |
Download:
|
图 13 在CNN训练中CSSGD算法冗余度与单一批次训练时间的关系 Fig. 13 The relationship between the redundancy and the training time of single batch of CSSGD algorithm in CNN training |
本节对比ASGD、SSGD Multicast和最优冗余度下的CSSGD(CSSGD Optimal)算法的实际训练时间,如图 14和图 15所示,由于ASGD算法异步执行过程导致其执行状态难以确定,最终收敛所需次数也存在一定的随机性,因此对ASGD算法进行10次实验取训练时间的平均值。可以看出,在通信瓶颈问题较严重的DNN训练过程中,CSSGD算法相对于SSGD和ASGD算法可取得明显的效率提升,在DNN的分布式训练中,相对SSGD和ASGD平均能减少53.97%和26.89%的训练时间。在CNN训练过程中由于计算执行过程占总执行时间的比例较高,因此通过添加冗余编码来降低通信负载的CSSGD算法效率提升较少,但是ASGD算法需要更多的计算开销来消除梯度延迟问题带来的干扰,因此CSSGD算法相对SSGD和ASGD算法效率依然有一定的提升,在CNN分布式训练中,相对SSGD和ASGD平均能减少39.11%和26.37%的训练时间。实验中给出10个计算节点以内的训练时间结果,可以看出,ASGD和CSSGD算法在分布式系统上的性能不能随节点数目线性提升,随着节点数目的增多,ASGD算法的理论同步更新概率会越来越小,迭代所需时间会继续增加,CSSGD算法也会受到额外通信负载和多播带宽拥塞的影响,但是其在更多节点加入后可更新其最优冗余度参数配置,能够达到更好的训练效果。
![]() |
Download:
|
图 14 在DNN训练中SSGD、ASGD和CSSGD算法达到基准测试精确度所需时间 Fig. 14 The time required for SSGD, ASGD and CSSGD algorithms to reach benchmark test accuracy in DNN training |
![]() |
Download:
|
图 15 在CNN训练中SSGD、ASGD和CSSGD算法达到基准测试精确度所需时间 Fig. 15 The time required for SSGD, ASGD and CSSGD algorithms to reach benchmark test accuracy in CNN training |
本文针对异步随机梯度下降算法的高通信负载问题,提出一种基于分布式编码计算的同步梯度下降算法,通过冗余分发策略降低通信负载并消除通信瓶颈对分布式集群的影响。实验结果表明,当配置合适的超参数时,与SSGD和ASGD算法相比,该算法在DNN分布式训练中能平均减少53.97%和26.89%的训练时间,在CNN分布式训练中能平均减少39.11%和26.37%的训练时间,降低了分布式集群上的通信负载。下一步将研究并行梯度下降算法在分布式集群上的应用,并分析数值量化误差对最终损失函数收敛性能的影响。
[1] |
SAK H, SENIOR A, BEAUFAYS F. Long short-term memory based recurrent neural network architectures for large vocabulary speech recognition[EB/OL]. [2020-01-04]. https://arxiv.org/abs/1402.1128.
|
[2] |
SERCU T, PUHRSCH C, KINGSBURY B, et al. Very deep multilingual convolutional neural networks for LVCSR[C]//Proceedings of 2016 IEEE International Conference on Acoustics, Speech and Signal Processing. Washington D.C., USA: IEEE Press, 2016: 4955-4959.
|
[3] |
KRIZHEVSKY A, SUTSKEVER I, GEOFFREY E H. ImageNet classification with deep convolutional neural networks[EB/OL]. [2020-01-04]. https://blog.csdn.net/yuanchheneducn/article/details/50161047.
|
[4] |
HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Deep residual learning for image recognition[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 770-778.
|
[5] |
MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality[C]//Proceedings of International Conference on Neural Information Processing Systems. Washington D.C., USA: IEEE Press, 2013: 3111-3119.
|
[6] |
KINGMA D P. ADAM: a method for stochastic optimization[C]//Proceedings of International Conference on Learning Representations. Washington D.C., USA: IEEE Press, 2015: 1-7.
|
[7] |
LUO Liangchen, XIONG Yuanhao, LIU Yan, et al. Adaptive gradient method with dynamic bound of learning rate[C]//Proceedings of International Conference on Learning Representations. Washington D.C., USA: IEEE Press, 2019: 15-25.
|
[8] |
DEAN J, CORRADO G S, MONGA R, et al. Large scale distributed deep networks[C]//Proceedings of International Conference on Neural Information Processing Systems. New York, USA: ACM Press, 2013: 1223-1231.
|
[9] |
POVEY D, ZHANG X H, KHUDANPUR S. Parallel training of DNNs with natural gradient and parameter averaging[C]//Proceedings of International Conference on Learning Representations. New York, USA: ACM Press, 2015: 7-18.
|
[10] |
NIU F, ECHT B. HOGWILD!: a lock-free approach to parallelizing stochastic gradient descent[C]//Proceedings of the 25th Conference on Neural Information Processing Systems. New York, USA: ACM Press, 2011: 693-701.
|
[11] |
DAI Wei, ZHOU Yi, DONG Nanqing, et al. Toward understanding the impact of staleness in distributed machine learning[C]//Proceedings of International Conference on Learning Representations. New York, USA: ACM Press, 2019: 1-8.
|
[12] |
ZHENG Shuxin, MENG Qi, WANG Taifeng, et al. Asynchronous stochastic gradient descent with delay compensation[C]//Proceedings of International Conference on Machine Learning. New York, USA: ACM Press, 2017: 28-45.
|
[13] |
LI S Z, MADDAH-ALI M A, YU Q, et al. A fundamental tradeoff between computation and communication in distributed computing[J]. IEEE Transactions on Information Theory, 2018, 64(1): 109-128. DOI:10.1109/TIT.2017.2756959 |
[14] |
LI S Z, MADDAH-ALI M A. Compressed coded distributed computing[C]//Proceedings of 2018 IEEE International Symposium on Information Theory. Washington D.C., USA: IEEE Press, 2018: 2032-2036.
|
[15] |
FERDINAND N, AL-LAWATI H, DRAPER S, et al. Anytime minibatch: exploiting stragglers in online distributed optimization[EB/OL]. [2020-01-04]. https://arxiv.org/abs/2006.05752.
|
[16] |
FERDINAND N, GHARACHORLOO B, DRAPER S C. Anytime exploitation of stragglers in synchronous stochastic gradient descent[C]//Proceedings of the 16th IEEE International Conference on Machine Learning and Applications. Washington D.C., USA: IEEE Press, 2017: 141-146.
|
[17] |
YU Q, MADDAH-ALI M A. Straggler mitigation in distributed matrix multiplication: fundamental limits and optimal coding[C]//Proceedings of IEEE International Symposium on Information Theory. Washington D.C., USA: IEEE Press, 2018: 2157-2162.
|
[18] |
YU Q, MADDAH-ALI M A. Polynomial codes: an optimal design for high-dimensional coded matrix multiplication[C]//Proceedings of the 31st Conference on Neural Information Processing Systems. New York, USA: ACM Press, 2017: 4406-4416.
|
[19] |
SEIDE F, FU H, DROPPO J, et al. 1-Bit stochastic gradient descent and its application to data-parallel distributed training of speech DNNs[EB/OL]. [2020-01-04]. https://www.cnblogs.com/littleorange/p/12674552.html
|
[20] |
CHEN Kai, HUO Qiang. Scalable train of deep learning machines by incremental block training with intra-block parallel optimization and blockwise model-update filtering[C]//Proceedings of International Conference on Acoustics, Speech and Signal Processing. Washington D.C., USA: IEEE Press, 2016: 2379-2384.
|
[21] |
ASSRAN M, LOIZOU N, BALLAS N, et al. Stochastic gradient push for distributed deep learning[EB/OL]. [2020-01-04]. https://arxiv.org/abs/1811.10792.
|
[22] |
LEE K, LAM M, PEDARSANI R, et al. Speeding up distributed machine learning using codes[J]. IEEE Transactions on Information Theory, 2018, 64(3): 1514-1529. DOI:10.1109/TIT.2017.2736066 |