美文网首页我爱编程
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