其他分享
首页 > 其他分享> > Gaia Geo-Distributed Machine Learning Approaching LAN Speeds阅读笔记

Gaia Geo-Distributed Machine Learning Approaching LAN Speeds阅读笔记

作者:互联网

简介

机器学习问题经常需要大量的数据来进行模型的处理与改进,而这些数据又来源于世界的各个地方。把全世界的数据汇聚到一个数据中心是不可行的。所以,涵盖许多地区的多个数据中心应运而生。但是,在这些里程上特别远的数据中心网络中,即wide-area networks(WANs),网络通信的快慢是一个系统性能的重要组成部分,网络间的通信十分受网络带宽的限制。

在这种背景下,作者提出了一个地理分布式机器学习系统Gaia.:

  1. 该系统将数据中心内的通信与数据中心之间的通信分离,为每个数据中心启用不同的通信和一致性模型
  2. 提出了一种新的ML同步模型,即Approximate Synchronous Parallel(ASP)近似同步并行,其核心思想是在保证ML算法正确性的同时,动态消除数据中心之间不重要的通信

该系统是首次提出地理上的ML系统,且能够做到以下几点:

  1. 区分局域网LANs上的通信和广域网WANs上的通信,最大限度地减少WAN上的通信,以有效利用稀缺的异构广域网带宽
  2. 具有足够的通用性和灵活性,可以部署多种ML算法,同时不需要更改ML算法本身
  3. ASP保证每个数据中心的ML模型参数视图与“完全一致”视图大致相同,并确保所有重要更新及时同步

Gaia概述

Gaia建立在广泛使用的参数服务器Parameter Server(PS)架构之上,该架构为ML worker机器提供了一个分布式全局共享内存抽象,用于它们共同训练的ML模型参数,直到收敛以适应输入数据。

Gaia的关键思想是在每个数据中心内维护一个大致正确的全局ML模型副本,并动态消除数据中心之间任何不必要的通信。Gaia通过将数据中心内的同步(即通信/一致性)模型与不同数据中心之间的同步模型分离来实现这一点。这种差异使Gaia能够运行传统的同步模型,最大限度地利用数据中心内更自由可用的LAN带宽。同时,在不同的数据中心,Gaia采用了一种新的同步模型ASP,该模型可以更有效地利用稀缺的异构广域网带宽。通过确保不同数据中心中的每个ML模型副本基于ASP定义的参数大致正确,我们保证了ML算法的收敛性

ASP概述

ASP基于一个关键发现,即每个ML worker机器对全局ML模型参数的绝大多数更新都是无关紧要的。例如,我们对三类ML算法的研究表明,95%以上的更新产生的参数值变化不到1%。

使用ASP,对数据中心内相同参数的这些无关紧要的更新进行聚合(因此不会与其他数据中心通信),直到聚合的更新足够重要。

ASP确保所有重要更新在所有模型副本之间及时同步。它动态调整通信以适应成对数据中心之间的可用WANs带宽,并使用特殊的选择性屏障和镜像时钟控制消息,以确保即使在可用WAN带宽突然下降(负峰值)期间算法收敛

Gaia详解

Gaia模型如图所示:

每个数据中心都有一些Worker Machine和Parameter Server. 每个Worker根据自己的那部分数据完成参数更新,不同的Worker间还可以实现数据并行。每个Parameter Server共同维护全局模型副本,每个Parameter Server处理此全局模型副本的一个分片。

为了减少 WAN 上的通信开销,每个数据中心中的全局模型副本仅大致正确。这种设计使我们能够消除不同数据中心之间无关紧要且因此不必要的通信。我们在跨不同数据中心的参数服务器之间设计了一个新的同步模型ASP,以确保即使 WAN 带宽非常低时,每个全局模型副本也是近似正确的。

作者针对重要信息,做了一些实验描述,图中可以发现,许多绝大多数更新都是微不足道的。因此,大多数通信仅非常轻微地改变了ML模型状态。

Approximate Synchronous Parallel(ASP)

在此模型中,参数服务器仅与其他数据中心共享重要更新,ASP 确保所有数据中心都能及时看到这些更新。ASP 通过使用三种技术来实现此目标:(1) the significant filter(2) ASP selective barrier (3) ASP mirror clock

1. The Significant Filter

ASP获取两个输入参数:

  1. A Significant Function,函数返回每个参数的重要性
  2. An initial Significant threshold,重要性阈值

当输入经过Significant Function后,得到其重要性大小,如果大于threshold,则将其定义为重要的,否则是不重要的。

参数服务器聚合来自本地worker的更新,并在聚合的更新变得重要时与其他数据中心共享聚合的更新。为了确保算法能够收敛到最优点,ASP 会随着时间的推移自动降低显著性阈值(具体而言,如果原始阈值为\(v\),则 ML 算法迭代 t 处的阈值为 \(v/ \sqrt{t}\))。

2. ASP Selective Barrier

虽然我们可以通过仅发送重要更新来大大减少通过WAN的通信开销,但WAN带宽可能仍然不足以进行此类更新。在这种情况下,重大更新可能来得太晚,我们可能无法绑定不同全局模型副本之间的偏差。

ASP使用ASP Selective Barrier处理这种情况。当参数服务器以高于 WAN 带宽可以支持的速率接收重要更新时,参数服务器首先通过 ASP Selective Barrier将这些重要更新的索引(而不是同时发送索引和更新值)发送到其他数据中心。ASP Selective Barrier的接收方阻止其本地worker角色读取指定的参数,直到它从ASP Selective Barrier的发送方收到重要更新。

此技术可确保每个数据中心中的所有工作计算机在有界网络延迟后都知道重大更新,并且它们仅等待这些更新。

当significant更新不能及时到达时,发送方先发送索引,再发送数据,接收方server等待索引和数据全到达后再更新,接收方worker等待server更新后再拿取参数.

3. Mirror Clock

ASP Selective Barrier可确保重大更新的延迟不超过网络延迟。但是,它假设

实际上,WAN带宽会随时间波动,并且对于某些ML算法,WAN延迟可能高得无法忍受。我们需要一种机制来保证工作机器区域及时的重大更新,而不管WAN带宽或延迟如何。

作者使用Mirror Clock(图 6b)来提供此保证。当每个参数服务器在锁定结束时(例如,迭代)从其本地worker接收所有更新时,它会将其时钟报告给其他数据中心中负责相同参数的服务器。当服务器检测到其时钟早于通过预定义的阈值 DS(数据中心过时性)共享相同参数的最慢服务器时,服务器会阻止其本地工作计算机读取参数,直到最慢的镜像服务器赶上为止。在图 6b 的示例中,数据中心 1 中的服务器时钟为 N,而数据中心 2 中的服务器时钟为 (N+DS)。当它们的差异达到预定义的限制时,数据中心 2 中的服务器会阻止其本地工作线程读取其参数。

Gaia实现

图7显示了Gaia的组成部分。所有关键组件都在Parameter Server中实现。如上所述,作者将数据中心 (LAN) 内的同步与不同数据中心 (WAN) 之间的同步分离。每个Parameter Server中的Local Server使用传统的BSP或SSP并行计算模型处理同一数据中心中worker之间的同步。另一方面,Mirror Server和Mirror Client使用ASP模型处理与其他数据中心的同步。这三个组件中的每一个都作为单独的线程运行。

执行流程

Update from a worker machine

local serverworker接收到参数更新时,它会更新其Parameter Store中的参数,从而维护参数值及其累积的更新。然后,local server调用Significance Filter来确定此参数的累积更新是否Significance。如果是,则Significance Filter将向Mirror Client发送更新请求,并重置此参数的累积更新。

Messages from the significance filter

Significance Filter发出三种类型的消息。首先,如上所述,它通过Data QueueMirror Client发送镜像更新请求。其次,当Significance Filter检测到显著更新的到达率高于它在每次迭代时监控的WAN带宽时,它会先将ASP barrier发送到Control Queue,然后再发送镜像更新。Mirror Client 将控制队列优先于数据队列,以便barrier在更新之前发出。第三,为了维护Mirror ClockSignificance Filter还会在Local Server中每个时钟的末尾向Control Queue发送Mirror Clock请求。

Operations in the mirror client

当有来自Control QueueData Queue的请求时,Mirror Client线程将唤醒。醒来后,Mirror Client会浏览队列,将消息打包到同一目标,然后发送它们

Operations in the mirror server

根据 ASP 模型,Mirror Server处理Mirror update、ASP barrier、Mirror clock)。对于Mirror update,它将更新应用于Parameter Store中的对应参数。对于 ASP barrier,它在Parameter Store中设置一个标志,以阻止读取相应的参数,直到它收到相应的Mirror update。对于Mirror clock,Mirror Server会为其他数据中心中的每个参数服务器更新其本地Mirror Clock状态,并强制执行预先定义的时钟差值阈值 Ds

标签:LAN,ASP,ML,Distributed,数据中心,更新,Machine,参数,Mirror
来源: https://www.cnblogs.com/Aegsteh/p/16270140.html