Talk - Scaling Distributed Machine Learning with System and Algorithm Co-design 笔记

来源于李沐大神的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 )

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,661评论 8 265
  • 今天,永澄老师的新文是《永澄:知识管理的目的是什么?》,体会如下: 认可老大做出的重大方向调整,将知识管理转换为能...
    饶益有情阅读 133评论 0 0
  • 朴树出新歌了,不出意料的,褒贬不一。 可我很欣慰,这么多年,朴树一直没有离开,他的声音里,还是我熟悉的少年气。 看...
    Moi_凹特曼阅读 460评论 0 0
  • 宋代张义端《贵耳集》中称,宋孝宗幸天竺,至灵隐寺,有辉僧相随。见有观音像手持念珠,问曰,何用?答道,要念观音菩萨。...
    简佛系阅读 734评论 1 13