目前主流的分布式架构包括:
1.基于mapreduce模型的spark-mllib,采用数据分布式+同步的模式,缺点是对异步和模型分布式不支持,但是社区完善。
2.基于参数服务器的Multiverso,既可实现数据分布式,也可实现模型分布式,同时支持异步和同步,也可实现大规模的参数更新。
3.基于数据流图的tensorflow,可以和1,2结合组成复杂的分布式机器学习网络。
4.3种模式的区别:
5.各种框架对比图, angel是腾讯开源的参数服务器框架,spark是mapreduce流派的代表,tensorflow和pytorch是数据流图的代表。
参数服务器也有一些性能上的瓶颈,可以通过all-reduce环的方式解决
参考:《分布式机器学习:算法,理论与实践》刘铁岩
详见我的github:https://github.com/LiaoWenzhe/MLDistributed