首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大规模机器学习系统的中心化与去中心化的架构之争

架构选型对大规模机器学习系统的性能至关重要。不同的架构对参数同步时间、系统扩展性、系统鲁棒性等具有不同程度的影响。大规模分布式机器学习系统目前主要采用三种典型架构。

基于参数服务器(Parameter Server,PS)的架构是一种中心化的架构设计,目前已经被主流的分布式机器学习系统广泛支持,包括Tensorflow、Caffee、MXNet等。基于PS的架构把参与计算的机器划分成了参数服务器和工作者(worker)两个功能角色。参数服务器和工作者之间通过Pull/Push的数据交互方式进行通信。两个功能角色并不互斥,也就意味着,同一个节点可以同时承担参数服务器和工作者的职能。基于PS的架构具有诸多优势,例如部署简单、弹性扩展较好、鲁棒性较强,等等。但是问题也十分明显,一般情况下工作者数目远多于参数服务器,因此参数服务器容易成为网络瓶颈。对于参数服务器和工作者的数目配置需要结合具体的机器学习应用进行调优,给机器学习系统的管理带来不便。

基于Mesh的架构是一种去中心化的架构设计。近年来,一些新兴的分布式机器学习系统开始采用此类架构,如Malt、Ako、Poseidon等。在基于Mesh的架构设计中,每个节点的功能相同在承担计算任务的同时,也要与其他所有节点进行数据同步交互。基于Mesh的架构可以认为是基于PS的架构的一种特例。如果令PS架构中的每个节点同时承担参数服务器和工作者的功能角色,那么该架构就转化成基于Mesh的架构。基于Mesh的架构消除了中心化的通信瓶颈,工作载荷分布更加均匀,因而在很多情况下比基于PS的架构具有更高的性能表现。同时,节点之间的富连接性也使得此类架构具有更强的鲁棒性。但是,也正是因为这种富连接性,使得此类架构的扩展性受到制约,不利于大规模的部署。

基于Ring的架构同样是一种去中心化的架构设计。此类架构广泛应用于高性能计算领域,近年来开始受到大规模机器学习网络研究者的关注。与基于Mesh的去中心化架构不同,基于Ring的架构限制了节点的连接数目。节点以环状形式连接,每个节点只与其邻居节点进行通信交互。通过一些配套的同步算法(如Ring AllReduce等),该类架构可以实现快速的数据同步,而不产生中心化的系统瓶颈。与基于Mesh的架构相比,基于Ring的架构对于每个节点的物理资源要求更低,因而扩展性相对较好。但是由于连接的单一性,此类架构鲁棒性差,其中一个节点的损坏,就有可能造成整个系统无法工作。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190802A0IDZF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券