基于随机梯度的分布式深度学习算法研究文献综述

 2023-08-04 06:08
  1. 文献综述(或调研报告)

大数据,大模型,GPU为人工智能的发展提供了坚实的物质基础,但是想要在此基础上训练出出色的人工智能并非易事。

近几年来,随着语音识别,图像识别,强化学习,机器翻译的兴起[1],越来越多的并行化,分布式的机器学习算法诞生,学者们通过研究分布式机器学习算法,划分数据,分配训练任务,调配计算资源,整合分布式的训练结果,来达到训练速度和训练精度的完美权衡。

现在的机器学习问题有着三个共同的性质,计算量大,训练数据多,模型复杂参数多。对于计算量太大,可以采用共享内存或者虚存的多线程或者多机并行运算解决。对于训练数据太多的情况,需要将数据进行划分,并分配到多个工作节点上进行机器学习训练,这样每个工作节点的局部数据都在允许的范围之内。每个节点根据本地的数据都会局部地训练出一个子模型,每个节点按照一定的规律(通信拓扑)与其他的节点进行通信(通信的内容主要是参数的更新,如随机梯度下降法,那么通信的内容大概率就是梯度),最终保证可以有效的整合来自各个工作节点的训练结果并得到一个全新的机器学习模型,或者所有的节点的模型都收敛到一个相同的值。对于模型过大,一般都是将模型拆分,比如说神经网络,可以将每一层分配给一个节点,但是这样做通信代价就会很大,因为每个模块都依赖于上一个模块(神经网络的第N层的输入为第N-1层的输出),这样虽然计算量减少,但是通信代价会很大,因此鲁棒性也很差。

本课题主要研究的内容是数据并行,即将数据拆分给每个节点,因此每个节点得到的模型都是相同的,因为现在机器学习的主要矛盾还是数据量过大导致训练时间过长,超出了我们的预期,使用分布式机器学习算法,可以使单机需要训练几天的任务缩减为一天甚至几个小时,时间成本大大减少,这对于企业还是研究人员都是一个福音。

通常分布式神经网络的训练采用大规模的小批量并行 SGD 算法 [2]。在同步方法中,工作节点 在数据的不同子集上计算损失函数的局部小批量梯度,然后使用 AllReduce 通信原语精确计算节点间的平均梯度 或者在异步方法中,使用中央参数服务器 [3][8] 使用参数服务器汇总梯度患有潜在的瓶颈,还有中心点崩溃的隐患[4]。 AllReduce 通信原语以分布式的方式计算所有工作节点平均梯度的精确值,避免了与集中通信和计算相关的问题。但是在通信受限的环境中 (例如,网络 带宽是很大的瓶颈),像 AllReduce 这样的精确平均算法不具有鲁棒性。

这些问题让学者们对通过分布式和非精确的 SGD 版本有了研究的动力,以减少分布式训练的通信开销。在控制系统文献中已经提出并研究了许多分散的优化算法,这些算法利用基于 gossip 的方 法来计算聚集信息。最新颖的分布式平均 gossip 优化算法基于PushSum 算法 。PushSum[5] 不会计算精确的平均值 (就像 AllReduce 一样), 而是使用 耦合较少的消息传递并计算近似平均值。不幸的是,近似分布式平均会在平均梯度估算中注入额外的噪声,但是由于机器学习的训练本身就具有一定的容错性,所以非精确的分布式平均也不一定就会带来较差的准确性,SGP就是基于PushSum的非精确的分布式SGD版本[5]。

分布式机器学习算法不仅仅可以基于SGD,还可以广泛并且灵活的运用到各种的强化版SGD,比如BGD,ADAM[6],带冲量的随机梯度下降法[7]等等。

分布式机器学习与单机机器学习不同, 分布式机器学习使用了多个 “单机”, 也就是我们 说的工作节点, 工作节点同时训练, 相互合作加速学习过程。既然合作, 那么通讯必不可少, 在分布式机器学习中, 最关键的内容便是设计通信机制, 因为分布式系统中的网络传输速度往往没有想象中的快, 尤其是在通讯受限的环境中, 导致通信成为分布式系统的瓶颈。 举一个简单的例子, 假如我们用多个节点优化一个机器学习训练任务, 节点的训练和通讯不能同时进行, 如果训练时间和通信时间为 1:1, 直观的想一下, 尽管我们使用 100 台机器, 它的加速比也是不会超过 2 的, 更别提线性的加速比了 (在分布式机器学习中, 我们渴望得到线性的加速比)

不同于一般的分布式计算, 设计分布式机器学习的通信机制更具有挑战性。分布式机器学习的通信频率很高, 通信数据量很大, 通信具有容错性。机器学习的模型 (随机梯度) 通常迭代次数很高 (数千数万次), 因此它的通信频率很高。[4]机器学习训练时各个工作节点需要通信以获取模型更新的信息 (如果是随机梯度下降, 那么更新的信息就是梯度), 如果参数很多, 那么通信的数据量自然就很大。但是机器学习采用数值优化算法具有很高的容错性, 如果我们在设计通信机制的时候合理的利用机器学习算法的这一特点, 可能会取得更好的效果。 因此, 为了获取近似线性的加速比并不影响训练的效果, 在设计分布式机器学习的通信机 制时, 我们可以从四个方面来设计: 通信的内容, 通信的拓扑结构, 通信的步调, 通信的频率。 即各个工作节点通信的信息; 哪些节点需要和哪个或哪些节点通信; 各个工作节点在通信时的 速度怎样 (有无阻塞, 快的节点是否要等慢的节点); 在时间和空间上减少通信量。

参考文献

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。