采用参数服务器的分布式机器学习

本文探讨了大规模分布式机器学习的挑战,并详细介绍了采用第三代参数服务器的开源实现,该服务器支持高效的异步通信、灵活的一致性模型、弹性可扩展性、错误容忍和持久性以及易用性。其架构包括(Key,Value) Vectors、Range Push and Pull、User-Defined Functions等,旨在解决机器学习中的网络带宽需求、顺序性和错误容忍问题。" 132822589,19694698,Python实现人脸识别技术,"['计算机视觉', 'Python', '人工智能']
摘要由CSDN通过智能技术生成

采用参数服务器的大规模分布式机器学习

1. 简介

大规模分布式机器学习三大挑战:

  • 访问这些参数(训练数据范围达到1TB到1PB,参数量范围10^9^ ~ 10^12^)需要巨大的网络带宽。
  • 很多机器学习算法是有顺序性的。当同步的花费、机器的延迟高时,会导致栅栏效应影响性能。
  • 错误容忍是决定性的。学习任务(Learing Tasks)经常在机器可能是不可靠的、工作可能被占用的云环境中执行。

本文描述了第三代参数服务器的开源实现

table2

该参数服务器的五个关键特征:
- 高效的通信(Efficient communication):异步通信模型不阻碍计算,最优化机器学习任务来减少网络负担。
- 灵活的一致性模型(Flexible consistency models):宽松的一致性进一步隐藏同步花销和延迟。允许算法设计者去平衡算法收敛率与系统效率。
- 灵活的可扩展性(Elastic Scalability):在无需重启运行中的框架下便可添加新节点。
- 错误容忍和持久(Fault Tolerance and Durability)
- 易用(Ease of Use)

2. 架构

figure2

algo1

figure4

风险最小化问题:学习一个模型能通过future example x 来预测值 y ,模型由参数 w 组成。

F(w)=i=1nl(xi+yi+w)+Ω(w)

loss函数 l(x+y+w) 表示在训练数据中预测错误,正则化函数 Ω(w) 使模型复杂,因此我们希望 F(w) 最小化。
如上图figure4。参数服务器可以同时跑不止一个算法。
每个服务器节点维持全局共享参数的一部分。为保证可靠性,服务器节点之间可以相互通信来复制、迁移参数。用一个服务器管理节点来维持服务器元数据的一致性,例如节点是否存活,参数划分的分配情况。
每个工作组跑一个应用。工作节点在本地存储一部分训练数据来计算本地梯度等值。工作节点只与服务器节点通信来更新和取回共享参数(工作节点相互之间不通信)。每个工作组设置一个 计划表节点用来分配任务给工作节点和监视它们的进程。若增加或移除了工作节点,它将重新安排未完成的任务。

2.1 (Key,Value) Vectors

共享参数以(Key,Value) Vectors的方式传输。

2.2 Range Push and Pull

在节点间数据传输采用Push、Pull操作。
- 在Algorithm 1,每个工作节点Push它全部的本地梯度到参数服务器,然后Pull更新的参数回来。
- 在algorithm 3,每次传输一个范围的keys。
algo3

  • 参数服务器支持range-based push and pull。 设 R
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值