论文部分内容阅读
近些年来,随着可用数据的爆炸式增长以及相关算法的不断优化,深度学习在人工智能的很多领域中都取得了重大的突破性应用。比如:语音识别、无人驾驶、图像识别的创新应用更是将“人工智能”成为当下互联网时代的“新宠”。然而,深度学习的发展在提升人们生活品质的同时,用于深度学习训练的数据集规模变得日益庞大,算法模型结构也变得越来越复杂。当基于深度神经网络的模型进行训练时,如果不做任何剪枝等处理,那么这样的深度神经网络模型可能会拥有数百万个参数,这样带来的问题就是内存存储空间以及算力资源的不足。在工业生产等环境下,为了提高深度学习模型的训练效率,减少训练时间,我们普遍会采用并行化设计来执行训练任务,利用多个工作节点,分布式地、高效率地训练出性能优良的深度神经网络模型。分布式并行化技术作为深度学习模型训练过程中的加速器,通过多机多卡的优势,能够显著提高深度学习的训练效率。于是基于深度学习的分布式训练的优化设计成为了人工智能领域一个重要的研究方向,许多专业的科研学者和公司从不同的研究角度对深度学习的分布式架构和算法进行了优化改进,也总结出了许多关于分布式训练的经验和方法。但是本文在实际的应用研究过程中,发现存在以下的问题:(1)很多时候多层数且复杂的神经网络很难在有限内存的单点计算单元里面运行,以至无法通过大规模数据进行训练,而且单机训练时长周期影响着整体的开发或科研周期。但是基于Tensorlfow的分布式训练框架代码逻辑与单机版存在巨大的差异,导致用户每次在进行分布式训练前,需要将自己的单机版代码修改成分布式框架结构,增加了用户的使用难度。(2)在基于深度学习的Tensorflow训练框架进行分布式训练时,存在着同步更新和异步更新两种参数更新机制,由于Tensorflow的分布式训练框架结构是基于Parameter Server架构,导致计算服务器节点之间的参数共享是通过参数服务器作为媒介,导致计算节点的通信效率下降,尤其是同步更新机制下,严重影响分布式训练的实效性。(3)在异构环境下的分布式训练过程中,由于异步参数更新机制或者节点之间的宽带大小、传输效率等原因,会带来较大的梯度延迟,分布式随机梯度下降算法的稳定性和时效性都受到了严重的影响并出现了严重的下降。在进行分布式训练时,发现实际运行的效率和准确度与预期的结果总是大相径庭。针对以上问题,本课题致力于深度学习并行加速训练平台系统的优化设计与实现,主要贡献如下:(1)针对于利用深度神经网络的模型结构进行分布式Tensorflow训练时,需要用户将单机版Tensorflow训练代码更改成分布式框架结构,导致给使用者带来的修改难度大、不易于分布式训练以及因为Tensorflow版本问题带来的无法进行分布式训练问题。从异步更新机制的角度考虑,本文提出了通过将原生Tensorflow分布式框架解析并拆分成客户服务端架构,其中,将用户单机版Tensorflow代码框架作为客户端,将剩余的框架结构进行二次开发成新的分布式框架NFDT(New Framework for Distributed Tensorflow,NFDT)框架作为服务端。NFDT框架作为服务端与作为客户端的单机版框架建立通信连接,通过调用单机版Tensorflow框架的模型结构、优化器、损失函数等结构并组成了可用于分布式训练的完整条件,进而实现了单机版Tensorflow代码快速实现分布式的训练。(2)本课题在构建分布式训练平台系统过程中发现,在同步更新机制下,分布式Tensorflow由于采用的是基于Parameter Server架构导致训练的实效性会受到很大的影响。本文提出了在同步更新机制下,通过采用分布式Horvovd框架与Tensorflow框架进行融合。将Horvovd分布式框架拆分成类似于客户服务端架构的结构,将单机版Tensorflow代码作为客户端,将剩余的分布式结构为基础进行二次开发,并将其封装成基于Horvovd为核心的分布式框架(Horvovd Framework for Distributed Tensorflow,HFDT)。HFDT框架作为服务端与作为客户端的单机版框架建立通信连接,通过调用单机版Tensorflow框架的模型结构、优化器、损失函数等结构并组成了可用于分布式训练的完整条件,进而实现了单机版Tensorflow训练代码快速实现分布式的训练。(3)本文对异构环境下的参数更新机制进行分析,发现异步更新会带来延迟,而高延迟的更新值对全局参数的影响是导致算法运行效率下降的主要原因。本文提出了一种新的动态延迟补偿异步随机梯度下降算法(DDC-ASGD),其根据每次带来的延迟大小可以动态地调节冲量项和延迟梯度项的可信度,降低了异步延迟带来的影响。通过相关实验证明,DDC-ASGD大大提高了模型的性能,解决了冲量延迟补偿算法(DC-ASGDK)受工作节点数量限制和缺乏动态调节延迟机制的两个问题,进一步地减少了延迟给异步并行带来的影响。相比ASGD和DC-ASGDK算法,DDC-ASGD在Fashion-mnist和cifar-10两类数据集上都取得了更高的准确率和更好的模型性能。