论文部分内容阅读
随着大数据与人工智能的发展,深度学习模型面对的问题越来越复杂,模型参数越来越多,处理的数据集规模也越来越大。为了突破单机计算资源的限制,构建一个高效易用的分布式深度学习平台已经成为学术界和工业界广泛关注的问题。已有的大部分分布式深度学习平台仅支持静态计算图,且都是基于参数服务器单一框架的。相较于静态计算图,动态计算图可以在运行过程中修改或定义图中节点从而能够处理更复杂的网络模型。单一的分布式深度学习框架无法高效地处理不同的现实应用场景,比如网络模型的大小不同、分布式节点的多少不同和各节点计算资源均匀与否等多种场景。目前国际上仍没有一个支持多种分布式框架、支持动态计算图的分布式深度学习平台。为了填补这一国际空白,本文基于PyTorch设计并研发了一个分布式深度学习平台DisPyTorch。为了能够处理各种复杂应用场景,本文在DisPyTorch平台上设计并实现了三种分布式深度学习框架:MR-DisPyTorch、RA-DisPyTorch和PS-DisPyTorch。用户可以根据实际的应用场景选择合适的框架。本文的贡献如下:一、设计并实现了一种基于MapReduce编程模型的分布式深度学习框架MR-DisPyTorch。MR-DisPyTorch框架采用同步更新策略,可用于处理网络模型较小、分布式节点较少以及节点计算效率均匀的应用场景。二、设计并实现了一种基于Ring Allreduce编程模型的非中心化分布式深度学习框架RA-DisPyTorch。RA-DisPyTorch框架采用同步更新策略,可用于处理网络模型较大、分布式节点较多以及节点计算效率均匀的应用场景。三、设计并实现了一种基于参数服务器编程模型的分布式深度学习框架PS-DisPyTorch。PS-DisPyTorch框架支持同步、异步和半同步的更新策略。其中同步更新策略适用于深度学习网络模型规模适中、分布式节点数目适中、节点计算效率均匀的应用场景,而异步和半同步适用于深度学习网络模型规模适中、分布式节点数目适中、节点计算效率不均匀的应用场景。