“机器学习+网络”的研究工作大致可以分为两个方向:
Network by Machine Learning,即“利用机器学习技术进行网络系统的优化”。
Network for Machine Learning, 即“利用网络领域的新技术加速机器学习的模型训练”。
前者专注于机器学习知识,对于网络系统知识依赖较少,一般需要首先将网络中的问题和场景进行抽象,然后套用合适的机器学习模型进行求解。后者需要研究者不仅要了解机器学习的领域知识,还要对网络系统有深入理解。
本文主要专注于后者的介绍。
中心化VS去中心化
大规模分布式机器学习系统目前主要采用三种典型架构。
基于参数服务器(Parameter Server, PS)的架构 是一种中心化的架构设计。
基于Mesh的架构 是一种去中心化的架构设计。
基于Ring的架构 同样是一种去中心化的架构设计。
同步与异步的并行模式
大规模分布式机器学习系统需要协调各个节点之间的计算与通信。它的主要工作包括参数计算和数据同步,两个步骤迭代交错进行。
目前针对数据同步的并行模式主要有三种:
整体同步并行(Bulk Synchronous Parallel, BSP),
异步并行(Asynchronous Parallel, ASP),
延时同步并行(Stale Synchronous Parallel, SSP)。
BSP是目前最常用的数据同步模式。在BSP模式下,每个节点在完成本地计算后需要对参数进行同步,未完成参数同步之前,任何节点都不允许开始新一轮迭代。
- 优点:保证了质量,这样在下一次迭代前每个节点都获得了最新的参数
- 缺点:最快的节点和最慢的节点之间相差太多,导致整体速度减慢
ASP模式考虑到了straggler问题的负面影响,因此采用最大能力交付(best-effort)的机制进行数据同步。
- 优点:迭代速度明显加快
- 缺点:较快速度的节点获得的参数并不一定是最新的参数,所以会导致利用旧的参数参与下次训练。
SSP模式综合考虑了BSP模式和ASP模式的优劣,在迭代速度和质量之间进行了折中。
- 优点:在阈值范围内选用参数直接训练,保证了一定的质量,又加快了训练速度
- 缺点:阈值设置成文新的问题
本文仅限于学习笔记记录,不用于任何商业用途。参考ccf通讯:https://dl.ccf.org.cn/institude/institudeDetail?id=4107674903300096