Parameter Server架构

Parameter Server架构

现在的机器学习系统,但凡是大一点的公司,恐怕都在用分布式了。而在分布式机器学习领域,最出名的恐怕就是少帅的PS框架了。在本博文里,PS框架特指第三代PS框架,即少帅的PS框架,PS框架在本文里有和分布式机器学习框架等同的意义。

本片博客是论文笔记性质,特此声明。

现在的大数据机器学习系统,通常数据在1TB到1PB之间,参数范围在109和1012左右。再这样的量级下,如果想进行分布式,那么很多算法的参数只能采用分布式存储。从而,产生了三个挑战。

访问这些参数需要很大的网络带宽

很多算法是序列性的,同步会影响性能

在大规模分布式下,错误容忍是很重要的。

从而,就诞生了各种各样的分布式机器学习系统,

笑傲江湖

世界上本没有路,走的人多了,路也渐渐开阔起来。分布式机器学习系统的第一代架构,恐怕可以追溯到[2],但那个时候,有一种先帝创业未半的感觉,那个系统使用memcached,一个分布式的kv数据库,来做同步机制,因而很缺乏扩展性,性能也不强。

于是YahooLDA,作为第二代的分布式架构,就出现了。它使用一个更规范的负载分布算法和一个专有的服务器,该服务器有自定义好的一些基础单元,get/set/update等。同样的设计在Distbelief也可以见到。

对第二代分布式架构做改进的初步尝试是Petuun,他使用一个有限制的延迟模型,同时在工作线程模型上添加更多限制。

PS框架属于第三代框架,它基于之前的基础做了更多的优化,同时也采用了各家之长。

比如基于Hadoop的Mahout,基于Spark的MLI,这俩都是迭代式的Map-Reduce框架,而Spark和MLI的模式是保存算法运行的中间状态,这也正是PS框架要做的。

分布式GraphLab使用基于图抽象的异步通信,使得通信效率大大增强。但相对于Map-Reduce框架来说,它缺少弹性,同时依赖于粗粒度的快照来做恢复,这两点使得它的可扩展性很差。

Piccolo,使用同PS框架类似的机制来操作的。工作节点在本地预先聚合一些状态,然后将其上传到服务器节点。但是相对于PS框架来说缺少了一些针对机器学习的优化,比如,消息压缩、备份和通过图依赖达到的变量一致性模型。

所有的设计都有一个渐变的过程,不是一开始就能看到最好的设计,一定是根据事态的发展,一步一步走到今天的程度。我第一次看到PS的设计的时候,觉得这是很自然的设计,就如它本该是这样一样,但看的多了,才知道之前已经有那么多了。

就跟我们看到的这个社会,我们生活的这个年代是这样子的,有很多事情我们认为是理所当然的,但它也是一步一步发展成这样的。再比如我们的父母同学朋友,他们经常和我们有不一样的看法,是怎样的环境和生活体验才能让他们有这样的看法,我觉得挺好奇。

我觉得生活就是不停的好奇和探索,包括上时间上的,追寻过往和未来;包括人格上的,追寻外在和内在;又包括空间上的,追寻不同的风土人情。

扯远了!

Parameter-Server

说了那么久的PS,仍然有一种PS是啥的疑惑,请看下图。

PS架构包括内功和外功两个部分,所谓的外功,就是把计算资源分为两个部分,参数服务器节点和工作节点:

参数服务器节点用来存储参数,

工作节点部分用来做算法的训练。

内功就是对应的,把机器学习算法也分成两个方面,即参数和训练。

参数部分即模型本身,有一致性的要求,参数服务器也可以是一个集群,对于大型的算法,比如DNN,CNN,参数上亿的时候,自然需要一个集群来存储这么多的参数,因而,参数服务器也是需要调度的。

训练部分自然是并行的,不然无法体现分布式机器学习的优势。因为参数服务器的存在,每个计算节点在拿到新的batch数据之后,都要从参数服务器上取下最新的参数,然后计算梯

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值