登陆

经典分布式论文阅读:Parameter Server

admin 2019-09-27 301人围观 ,发现0个评论

本文提出了“参数服务器”的散布式架构来支撑散布式机器学习。散布式机器学习首要面对以下应战:

  • 拜访参数耗费许多的网络带宽
  • 许多机器学习算法都是串行的
  • 容错才干非常重要

而本文中的结构给开发者带来两点优势:

  1. 经过分化机器学习的组件,能够让事务代码愈加简练
  2. 能够完结鲁棒、多功能、高性能的散布式机器学习算法

本体系首要有以下五个特色:

  • 高效的通讯 :运用了异步非堵塞通讯模型
  • 灵敏的共同性模型 :能够答应体系规划人员手动权衡收敛率和体系功率
  • 弹性的规划 :能够在运转期间增加新节点
  • 容错和耐久 :能从毛病中快速康复,经过向量时钟确保行为确实定性
  • 易用 :参数表明为向量和矩阵便于开发机器学习算法

体系的这些特性都是经过挑选正确的体系技能,运用在机器学习算法中,以及修正机器学习习惯体系来完结。在体系完结进程中,首要面对以下应战:

  • 通讯 :经过批量传输参数(向量片段、矩阵的队伍而不是单个参数值)来进步通讯功率
  • 容错 :经过实时备份和热修正和完结

机器学习

机器学习需求从 练习数据 中学习模型,首要包括三个要素: 特征提取方针函数学习 。特征提取将原始练习数据转换为 特征向量 ,不在本文赘述。学习的进程便是最小化方针函数然后取得模型。别的,在散布式机器学习使命中,练习数据量也一般是非常巨大的。

危险最小化

监督学习便是危险最小化的进程,例如最小化猜测差错。经典分布式论文阅读:Parameter Server假如有 个练习样本,每个样本的特征向量为 ,对应的标签为 ,模型的参数为 ,方针函数为

其间 为丢失函数,界说了猜测值和实在值之间的差错, 为正则化项,用来避免模型过拟合。在参数服务器结构中能够选用 散布式子梯度下降 对方针函数进行最小优化

在散布式子梯度下降算法中,每个作业节点只需求核算分配到的参数作业集 对应的梯度,然后由服务节点完结聚合。模型的完好参数 或许会非常巨大,作业节点在运用的时分会面对很大的担负,可是能够经过只保存用到的参数值即可。

生成模型

别的一种机器学习的方法为无监督学习,一般用来学习数据的本身结构。比较典型的便是论题模型:给一些文档,揣度出每个文档包括的论题。主题模型的应战便是:关于当时文档怎么生成的参数有必要被同享。解决方法便是每个作业节点只保存分配到的文档呈现的词有关的参数即可。

架构

参数服务器体系由一个 服务节点 组和多个 作业节点 组构成。服务节点之间相互通讯来备份和搬迁参数,服务办理节点担任保护服务节点元数据之间的共同性。一组作业节点运转一个应用程序,作业节点组中的调度节点担任使命的分配和监控。

参数服务器以 命名空间 的方法安排参数,模型的参数选用 键值 的方法保存。不同的应用程序或许会同享命名空间,例如一个应用程序担任模型练习,另一个应用程序担任模型揣度。

规模推送和拉取

为进步带宽利用率,体系支撑规模推送和拉取。令 为键规模,那么

  • w.push(R,dest) 将 中键规模在 中的参数推送到dest
  • w.pull(R,dest) 从dest拉去 中键规模在 中的参数

服务节点的用户界说函数

服务节点除了从作业节点聚合数据之外,也能够履行 用户界soulmate说函数 。这样一来,用户能够完结能够完结一些愈加高档的优化算法。

异步使命经典分布式论文阅读:Parameter Server和依靠

使命都是 异步履行 的:调用者建议一个使命之后,能够立刻履行其他运算。为了进步模型收敛率,能够设置某个使命履行完结后运转的依靠联系,设置使命依靠联系能够确保算法的逻辑。

灵敏的共同性

作业节点能够并行履行分配的使命,可是或许会对学习算法的收率产生影响。体系功率和共同性之间的权衡联系取决于算法关于不共同的灵敏程程度以及体系硬件才干,本结构供给了三种形式供规划者挑选:

  • 次序共同 :下一个使命有必要在前一个使命完结之后才干履行
  • 终究共同 :一切使命一同开端
  • 有界推迟 :在 时刻之前开端的使命悉数完结之后才开端使命

用户界说的过滤器

用户能够界说 用户界说过滤器 挑选性地同步部分参数,例如用户能够之推送那些对模型参数有影响的梯度。

完结

向量时钟

为了支撑使命依靠图和快速康复,每个键值对需求一个时钟。假如每个 个参数每个参数都保存一个时刻,假如有经典分布式论文阅读:Parameter Server 个节点,那么总共需求 空间,更合理的方法是保存规模的时刻。

音讯

体系中传递的音讯有多个在键规模 内的键值对以及对应的向量时钟:

音讯或许并没有包括规模内悉数的键值对,可是那些缺失的键值对的时钟照旧更新。

假如每次迭代,作业节点的练习数据没有改变,那么键应该是不变的,那么能够让接收放保存键缓存,而作业节点只需求发送值和键列表的哈希即可。别的,运用经典分布式论文阅读:Parameter Server用户自界说过滤器能够进一步削减需求发送的键值对数量。

共同哈希

服务节点组中的节点运用 散布式哈希表 来保存模型参数。为了简化规划,体系运用直接映射,由服务办理节点统一办理。

副本和共同

每个服务节点保存了逆时针方向k个街坊键规模内的参数的副本,作为这经典分布式论文阅读:Parameter Server些副本的从节点。副本更新的方法能够是

  • 在更新参数的时分,更新音讯也会推送给保存副本的从节点
  • 在完结参数参数聚合后推送给从节点

服务节点办理

当一个服务节点参加服务节点组之后:

  1. 服务办理节点分配给新节点一个键规模,新节点将作为这个规模的参数的主节点
  2. 节点获取这个规模内的参数并成为主节点,以及获取 个额定规模的参数作为从节点
  3. 服务办理节点播送更改。其他节点会开释不再需求自己办理的参数,而且叫没完结的使命交给新节点

新节点从某节点 拉取规模 内的参数的进程能够分为两步:

  1. 预先复制一份原先的悉数键值对数据以及对应的时钟,当新节点下线时能够用来康复;
  2. 不再处理规模 内的音讯,而且把预复制阶段的更改发送给新节点。

当节点N收到节点增加音讯后,需求:

  • 删去不再需求自己办理的参数
  • 从头发送未承认的音讯,去掉不属于自己办理的内容

在某个服务节点下线后,服务办理节点需求把该节点办理的参数分配给其他节点。

end:假如你觉得本文对你有协助的话,记住关注点赞转发,你的支撑便是我更新动力。

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP