用参数服务器扩展分布式机器学习

Scaling Distributed Machine Learning with the Parameter Server

背景

1.大规模机器学习的特点

模型参数很大,超过了单机容量
训练数据量大,需要并行加速

2.分布式机器学习的挑战

高效通信:异步通信模型针对机器学习任务进行了优化,以减少网络流量和开销。
灵活的一致性模型:一致性模型允许开发人员在算法收敛性和系统性能之间进行权衡。
可伸缩性和容错性:无需重新启动正在运行的框架即可添加新节点。在不中断计算的情况下从非灾难性机器故障中恢复和修复。

系统架构

参数服务器的节点分为一个服务器组和多个工作组。

服务器组中的每个服务器只负责分配给它的部分全局共享参数。服务器之间通过通信进行参数备份和迁移。服务器组有一个服务器管理器,负责维护服务器元数据的一致性,例如节点状态和参数分配。

每个工作组运行一个计算任务。工作组中的worker使用部分数据进行培训。工作线程之间没有通信,它们只与相应的服务器通信以进行参数更新。每个工作组都有一个任务调度器,负责向worker分配任务并监视其运行状态。当worker进入或退出时,任务调度器会重新分配未完成的任务。

在这里插入图片描述

主要设计

1.高效通信
  • Range Push/Range Pull and Range Vector Clock
    如果R是key范围,则w.push(R;dest)将key范围R中w的所有现有条目发送到目标,目标可以是特定节点,也可以是服务器组之类的节点组。类似地,w.pull(R;dest)从目的地读取key范围R中w的所有现有条目。
    由于参数是Range Push/Range Pull,同一key Range中的参数可以共享相同的时间戳。最初,每个节点i只有一个距离向量时钟,它覆盖整个参数键空间作为其范围,0作为其初始时间戳。每个范围集可以分割范围,并创建最多3个新的矢量时钟(见算法2)。
    在这里插入图片描述

  • 压缩消息
    节点间通信发送的消息由距离向量时钟和(key,value)对组成。
    key压缩:worker不需要每次都发送相同的键列表。服务器在第一次接收时可以缓存它们,然后只需要发送key列表的哈希值进行匹配。
    value压缩:有些参数更新对最终优化没有价值,用户可以自定义过滤规则,过滤掉一些不必要的参数。例如,对于梯度下降,值为0或非常小的大量梯度是无效的,可以进行过滤。

2.灵活的一致性模型

数据一致性和系统性能之间的权衡。
Sequential:一般分布式计算中使用的同步通信,如Spark。在每次迭代中,需要等待所有任务计算完成。Sequential也称为BSP(批量同步并行)。
Eventual:异步通信。任务之间不需要互相等待。先完成的任务将继续到下一轮训练。Eventual也称为ASP(异步并行)。
Bounded Delay:设置一个最大延迟时间,称为staless值,也就是说,最快的任务在最多的staless轮迭代中领先最慢的任务。因此,当staleness=0时,它是顺序一致性模型;当staleness=∞时,它是Eventual一致性模型。Bounded Delay也称为SSP(Staleness Synchronous Parallel)。

3.可扩展性和容错性
  • 一致性哈希算法
    参数服务器使用一致性哈希算法将key和服务器映射到环上。
    每台服务器负责管理从插入点到另一台服务器的key范围。此服务器称为key范围的主服务器;
    每台服务器将按逆时针方向备份key范围。此服务器称为key范围的备份服务器。
    物理服务器通常表示为多个虚拟化服务器,以提高负载平衡和故障恢复能力。
    在这里插入图片描述

  • 复制
    链式复制:Worker 1更新x,服务器1调用函数f(x)来处理数据。然后将f(x)备份到服务器2。这次push结束,w1收到ack。对于一些需要频繁更新参数的算法,这种备份方法可能会导致无法承受的网络带宽开销。
    在这里插入图片描述

聚合后复制:服务器聚合所有worker的更新并对其进行备份,然后向worker发送ack。由于等待聚合操作,会导致任务pull更新延迟,但可以通过放宽一致性模型来补偿。
在这里插入图片描述

实验

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值