美文网首页我爱编程
Talk - Scaling Distributed Machi

Talk - Scaling Distributed Machi

作者: Yanring_ | 来源:发表于2018-08-04 12:24 被阅读0次

来源于李沐大神的talk:基于系统和算法的协同设计的大规模分布式机器学习(Scaling Distributed Machine Learning with System and Algorithm Co-design)
视频链接:https://pan.baidu.com/s/1dE5a4dr
PDF: https://pan.baidu.com/s/1dFsvkY1

大规模数据机器学习的需求:

分布式系统:

  • 大数据量,复杂模型
  • 容灾
  • 易用

大规模优化:

  • 通信高效
  • 保证收敛

已存在的一些解决方案

MPI:难以用到稀疏模型上,没有容灾
KV存储:独立的kv对通信带来了很大的通信开销,服务端不好编程
Hadoop/Spark: 只能用同步并行,不好实现其余的并行方式

talk的四大部分

Parameter Server Architecture

实现时要注意的关键点:

  • 如何平衡 data consistency 与 speed
    SSP就是一个不错的思想


    image.png
  • 用户定义的Filter
    可以做一些数据的压缩,甚至是有损的压缩。
  • 做容灾
    通过一致性哈希来分割模型(一致性哈希:http://blog.codinglabs.org/articles/consistent-hashing.html )
    链备份

Delayed Block Proximal Gradient

基于Proximal Gradient算法做了并行优化(也是一个收敛算法)


image.png

看起来其实很像梯度下降,如下图:


image.png
区别就是在于用了个Prox函数,可以处理很general的case。
M Li的优化点主要是:
  • 把feature分block,一次只update一部分的block
  • block之间是bounded-delay并行跑的
  • 加了一些filter压缩通讯
    最后是一个收敛的分析,做了一些约束和证明:


    image.png

一枚实验

image.png

放松数据的一致性后得到的速度的提升

如何用filter减低数据的通讯

MXNet

  • 和machine learning的区别:任务更复杂,对硬件兼容性更高
  • MXNet拿到计算图之后如何做一些后端的优化

MXNet怎么做分布式:

  • 多GPU下使用了2层的server,Level-1负责GPU间的Agg,再走GPU-CPU的通讯。MXNet的通讯模块也就1-2K行


    image.png
  • 基于上述优化做了个实验,用的mini-SGD, 可以看出这个优化是有效的,Scalability也不错


    image.png

EMSO (for )

相关文章

网友评论

    本文标题:Talk - Scaling Distributed Machi

    本文链接:https://www.haomeiwen.com/subject/ffryvftx.html