一种基于异构分布式系统的高效神经网络训练调度方法技术方案

技术编号:23985608 阅读:32 留言:0更新日期:2020-04-29 13:22
本发明专利技术公开了一种基于异构分布式系统的高效神经网络训练调度方法。本发明专利技术首先通过资源探测系统探测并分析分布式系统中的资源动态变化;将训练过程分解为内迭代与外迭代作为任务调度系统的重要子集,并根据资源探测系统提供的分布式系统节点状态信息,随后任务调度系统自适应地修改环境参数并调度计算。在公开数据集下进行的相关实验表明,在保证高准确率、收敛率的前提下,本发明专利技术具有更好的鲁棒性和可扩展性。

An efficient neural network training scheduling method based on heterogeneous distributed system

【技术实现步骤摘要】
一种基于异构分布式系统的高效神经网络训练调度方法
本专利技术属于分布式机器学习加速
,具体是一种基于异构分布式系统的高效神经网络训练调度方法。
技术介绍
机器学习特别是深度学习,已成为人工智能领域的核心研究内容之一,在图像识别、自然语言处理等领域获得了广泛应用。随着机器学习训练数据集规模及模型参数数量不断增长,单机训练机器学习模型已不能适应大规模数据环境。庞大的训练数据集规模和复杂的模型结构可提高模型准确率,但是会带来更高的时间开销和资源开销。近年来,随着分布式系统发展以及硬件性能的提高,分布式机器学习已经成为业界研究热点。在分布式机器学习框架中,通信是多节点协作训练中必不可少的环节.降低分布式机器学习模型的求解时间开销,关键在于提高节点的有效计算时间占比。因此需要设计合理的通信机制,从而更加高效地训练出模型。通信机制分为同步和异步两类。整体同步并行通信策略BSP(BulkSynchronousParallel)通过引入超步有效地避免死锁。超步是指一系列操作的集合,具体包括:计算、全局通信及同步等待这三个步骤。在一个超步内,各节点以不同的速度执行训练。训练完成后与主节点通信并上传训练结果,随后进入同步等待,直到主节点聚合后下载最新的全局参数。当所有节点完成全局通信后,表明当前超步已执行完毕,随后执行下一个超步。BSP严格执行超步内异步、超步间同步的策略。然而BSP存在一些缺陷:1)通信开销大。BSP强制计算节点在每个超步内进行全局通信,有相关研究表明,在一定条件下通信开销将数倍于计算开销。2)计算节点间性能差异大时增大了同步等待的时间开销。为了降低同步等待时间,各计算节点应性能相近。然而在分布式系统中,除了固有的硬件性能差异,多任务抢占系统资源也会造成计算节点间存在较大的性能差异,因此难以保证各节点性能相近。相关研究表明即使是负载均衡的集群,部分节点也会随机地并不可预测地慢于其他节点为了解决BSP存在的缺陷,相关学者提出了一些解决方法。Dean提出了异步并行通信策略AsynchronousParallelExecution(ASP)。由于采用异步更新,将同步等待时间降低为零,即不存在因节点性能差异或集群负载不均带来的弊端。采用ASP可极大地减少模型训练的时间开销,但是ASP容错性低,模型训练时极易陷入局部最优解或出现计算精度差或根本不收敛等现象。相关学者提出了延迟同步并行通信策略StaleSynchronousParallel(SSP)。SSP中定义了一个延迟参数stale,表示节点间步调允许相差的最大值。各计算节点计算梯度后便将结果传至参数服务器进行参数更新,然后从参数服务器取回最新的全局参数。在开始下一轮计算前,参数服务器判断各节点间步调最大差值是否大于给定stale。如果差值大于给定stale则节点进入同步等待,直到步调差小于stale。延迟同步通信SSP是一种介于同步通信与异步通信的通信方式。但是上述策略均无法彻底解决因节点异构或任务抢占导致的负载不均,导致训练经常出现中断、不收敛的情况。因此,如何在保证模型训练具有高准确率、高收敛率的情况下,提高模型训练的鲁棒性、可扩展性成为了一个迫切解决的问题。
技术实现思路
本专利技术要解决的技术问题是如何解决异构分布式集群中因节点异构或任务抢占对分布式机器学习模型训练带来的异常中断或不收敛,提高模型训练的鲁棒性、可扩展性,保障训练的高效性。在基于迭代式训练的分布式机器学习模型中,各计算节点不断地训练本地模型,得到本地计算结果后提交到参数服务器更新,随后从参数服务器获取最新的全局参数后进入下一轮迭代。传统的分布式机器学习模型训练时,只能动态地修改通信策略中的参数,例如SSP中的延迟阈值。此外,无法动态地在不同节点(尤其是空闲节点)上启动任务。本专利技术解决其技术问题采用的方案是:将训练过程分解为内迭代与外迭代作为任务调度系统的重要子集,并根据资源探测系统提供的分布式系统节点状态信息,自适应地修改参与训练的节点、进程数、通信策略等参数。该方法采用如下步骤实现:步骤1:建立基于参数服务器的分布式神经网络训练系统。所述的分布式神经网络训练系统,共有两类节点,分别为主(主)节点与计算(工作)节点。主节点与工作节点间采用点对点的方式进行通信。相比于工作节点,主节点中额外设置用于聚合权重以及全局调度的模块。步骤2:建立资源探测系统(RDS)。利用开源工具Sigar建立资源探测系统。该系统可获取操作系统级别的硬件信息,部署在主节点与工作节点上用于实时获取各节点的资源利用情况。步骤3:建立任务调度系统(TAS)。任务调度系统首先将迭代式训练解耦为内迭代与外迭代。其中外迭代执行环境初始化、统计调度性能。内迭代执行具体计算。利用RDS获取分布式系统中各节点的实时资源利用情况并计算节点空闲率。随后,根据空闲率对各节点降序排序,优先选择空闲率高的节点参与训练并设置进程数。步骤4:设置环境参数。由于分布式系统存在节点异构性以及多任务抢占系统资源,导致不同时间段内的资源可用情况不同。因此在开始训练前针对实时资源可用情况重置环境参数。例如,通信策略SSP中的延迟阈值。步骤5:开始训练。各工作开始训练,训练完毕后迭代轮数加1。步骤6:重复执行步骤3-步骤5直到完成指定迭代轮数。本专利技术的有益效果:本专利技术提出一种基于异构分布式系统的高效神经网络训练调度方法。该方法采用参数服务器、资源探测系统与任务调度系统实现。首先基于参数服务器作为实现架构对分布式系统内的节点进行划分。随后在该分布式系统内部署资源探测系统与任务调度系统训练机器学习模型。资源探测模型参考了RPC并利用开源工具包Sigar实现。任务调度系统将训练过程解耦为内迭代与外迭代两部分。实验表明,本专利技术在异构分布式环境下,可保证高准确率、高收敛率并显著地提高了鲁棒性与可扩展性,可应用于大规模分布式机器学习。附图说明图1资源探测系统架构图;图2任务调度系统执行流程;图3几种同步通信策略的性能对比;图4本专利技术与几种同步通信策略的性能对比;图5本专利技术与几种同步通信策略的鲁棒性对比;图6参数服务器架构图。具体实施方式本专利技术方法的具体步骤是:步骤1.建立基于参数服务器的分布式神经网络训练系统。所述的分布式神经网络训练系统,共有两种节点,分别为主节点与工作节点。其中,主节点与工作节点间采用点对点的方式进行通信。如图6所示,本专利技术采用以参数服务器为实现架构,利用进程模拟主节点与工作。其中主节点采用多线程的方式与工作节点进行点对点通信。工作节点与工作节点间没有数据通信,工作节点仅与主节点进行数据通信,从而极大地减少了出现网络拥塞的出现。在模拟主节点的进程中,额外设置一个线程用于聚合各个计算节点传输来的模型参数。步骤2.建立资源探测系统(RDS)。利用开源工具Sigar建立资源探测系统。该系统可获取操作系统级别的硬件信息,部署在主节点与工作节点上用于实时获取各节点的资本文档来自技高网
...

【技术保护点】
1.一种基于异构分布式系统的高效神经网络训练调度方法,其特征在于该方法包括如下步骤:/n步骤1.建立基于参数服务器的分布式神经网络训练系统;/n所述的分布式神经网络训练系统,共有两类节点,分别为主节点与工作节点;主节点与工作节点间采用点对点的方式进行通信;/n步骤2.建立资源探测系统;/n利用开源工具Sigar建立资源探测系统;该系统可获取操作系统级别的硬件信息,部署在主节点与工作节点上用于实时获取各节点的资源利用情况;/n步骤3.建立任务调度系统;/n任务调度系统首先将迭代式训练解耦为内迭代与外迭代;其中外迭代执行环境初始化、统计调度性能;内迭代执行具体计算;/n所述外迭代利用资源探测系统获取分布式系统中各节点的实时资源利用情况并计算节点空闲率;随后设置参与训练的节点、进程数;/n在分配节点资源时,首先计算各节点空闲率,然后根据空闲率对各节点降序排序,最后根据实际资源需求量分配节点以及进程数;/n步骤4.设置环境参数;/n在内迭代执行前,针对实时资源可用情况重置环境参数;/n步骤5.开始训练;/n各个工作开始训练神经网络,训练完毕后迭代轮数加1;/n步骤6.重复执行步骤3-步骤5直到完成指定迭代轮数。/n...

【技术特征摘要】
1.一种基于异构分布式系统的高效神经网络训练调度方法,其特征在于该方法包括如下步骤:
步骤1.建立基于参数服务器的分布式神经网络训练系统;
所述的分布式神经网络训练系统,共有两类节点,分别为主节点与工作节点;主节点与工作节点间采用点对点的方式进行通信;
步骤2.建立资源探测系统;
利用开源工具Sigar建立资源探测系统;该系统可获取操作系统级别的硬件信息,部署在主节点与工作节点上用于实时获取各节点的资源利用情况;
步骤3.建立任务调度系统;
任务调度系统首先将迭代式训练解耦为内迭代与外迭代;其中外迭代执行环境初始化、统计调度性能;内迭代执行具体计算;
所述外迭代利用资源探测系统获取分布式系统中各节点的实时资源利用情况并计算节点空闲率;随后设置参与训练的节点、进程数;
在分配节点资源时,首先计算各节点空闲率,然后根据空闲率对各节点降序排序,最后根据实际资源需求量分配节点以及进程数;
步骤4.设置环境参数;
在内迭代执行前,针对...

【专利技术属性】
技术研发人员:张纪林周详万健任永坚周丽
申请(专利权)人:杭州电子科技大学舟山同博海洋电子信息研究院有限公司杭州电子科技大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1