每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

深度学习时代的推选体系,腾讯完成了「破局」。

在现代社会,网络购物、订餐以及其他各种形式的在线消费已经成为了日常生活的重要组成部分。在享受便利生活的同时,人们有时不得不受困于浩瀚复杂的信息和数据。这时,对个性化和智能化推选体系(Recommender System)的需求变得日益强烈。这些体系能够有效解决信息过载问题,根据用户历史偏好和约束更精准地推选个性化物品,从而提升用户体验。而随着深度学习应用的爆发式发展,基于深度学习的推选得到了越来越多的关注。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

深度学习推选体系(DLRS)已经成为 Meta、谷歌、英伟达等科技巨头的主要基础设施。DLRS 通常包含一大组托管在大量 ML 模型和深度神经网络上的参数服务器,它们通过在地理分布式数据中心的复制来完成客户端的容错和低迟延通信。其中,每个数据中心具有的一组推理服务器从本地参数服务器中提取模型并为客户端输出推选结果。为了确保及时地服务于新用户和内容,DLRS 必须不断地以低迟延革新 ML 模型。然而在现有 DLRS 体系中做到这一点并不容易。英伟达 Merlin、谷歌 TFRA 以及 Meta BigGraph 等流行推选体系采用离线方式革新模型,在收集到新的训练数据后离线计算模型梯度,验证模型检查点并传布到所有数据中心,整个过程需要几分钟甚至是几小时。另一种替代方法运用广域网(WAN)优化的 ML 体系或联邦学习体系,它们运用本地收集的数据革新复制的模型并对正本进行惰性同步,往往会对 SLO(服务等级目标)造成不利影响。面对现有 DLRS 的种种限制,难道就没有破局之法吗?在 7 月 11 日 – 13 日举办的第 16 届 OSDI 2022 会议上,腾讯与爱丁堡大学等科研机构合作完成的一项研究完成了破局。研究者推出了一种既不牺牲 SLO 又能完成低迟延模型革新的大规模深度学习推选体系—Ekko,其速度比当前 SOTA DLRS 体系完成数量级提升,并且早已部署在了腾讯的出产环境中,为用户提供各类推选服务。OSDI(操作体系计划与完成研讨会,Operating Systems Design and Implementation)是计算机体系软件领域全球最顶级会议之一,被誉为操作体系原理领域的奥斯卡,拥有极高的学术地位,由 USENIX 主办。据了解,本届会议共 253 篇投稿论文,接收 49 篇,接收率约为 19.4%。《Ekko: A Large-Scale Deep Learning Recommender System with Low-Latency Model Update》成为了腾讯首篇入选该会议的论文

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

论文地址:https://www.usenix.org/system/files/osdi22-sima.pdf接下来,我们将对腾讯推出的这个大规模深度学习推选体系 Ekko 进行详细的解读。计划思路与体系概述首先来看计划思路。为了在不牺牲 SLO 的情况下完成低迟延模型革新,研究者允许训练服务器在线革新模型(运用梯度)并立即将模型革新传布至所有推理集群,从而绕过了长迟延革新步骤,包括离线训练、模型检查点、验证和传布,进而降低模型革新迟延。为了完成这一计划,研究者需要解决以下几个挑战:如何在带宽和异构网络路径有限的 WAN 上高效地传布大规模的模型革新;如何保护 SLO 免受可能造成关键革新迟延的网络拥塞;如何保护 SLO 免受对模型准确率造成负面影响的有偏模型革新。最终,研究者计划出了一个以低迟延对正本模型进行全局革新的大规模深度学习推选体系 Ekko。其中在计划过程中主要在以下三个方面进行了创新。首先计划了一种高效的点对点模型革新传布算法。现有参数服务器往往采用 primary-backup 数据复制协议来完成模型革新,但当处理大规模模型革新时,这种方式因长革新迟延和 leader 瓶颈而导致扩展性不足。因此,研究者探索通过点对点的方式来进行模型革新传布,利用革新 DLRS 模型过程中的稀疏性和时间局部性来提高革新模型的吞吐量,降低革新模型的迟延。其次,Ekko 提供了一个 SLO 保护机制。Ekko 允许模型革新在不需要离线模型验证也能达到推理集群,不过这种计划会导致 SLO 在出产环境中容易受到网络拥塞和有偏革新的影响。因此,为了处理网络拥塞,研究者计划了一个 SLO 感知的模型革新调剂器,其计算指标包括革新新鲜度优先级、革新重要性优先级和模型优先级。这些指标都能预测模型革新对推理 SLO 的影响,基于它们,调剂器在线计算每个模型革新的优先级。研究者将调剂器集成到参数服务器,而不改变 Ekko 中点到点模型革新传布的去中心化架构。最后,Ekko 运用一种新颖的推理模型状况管理器来处理有偏革新,该管理器为每组推理模型创建了一个基线模型。然后,基线模型接收少量用户流量,并作为推理模型的真值。同时,管理器持续为基线和推理模型监控与质量相关的 SLO。当有偏模型革新破坏了推理模型的状况时,管理器会通知见证服务器将模型回滚到健康状况。Ekko 的效果究竟如何呢?研究者利用测试台和大规模出产集群对它进行了评估。其中测试台实验结果表明,与 SOTA 参数服务器相比,Ekko 将模型革新迟延最高降低了 7 倍。研究者进一步运用 40TB 的模型和地理分布区域内的 4600 多台服务器上进行大规模出产实验,结果表明,Ekko 在完成 2.4 秒传布革新的同时每秒执行 10 亿次革新。Ekko 仅将总网络带宽的 3.0% 用于同步,余下部分用于训练和推理。这种秒级迟延性能比 SOTA DLRS 基础设施(如 TFRA 和 Check-N-Run)完成的分钟级迟延快了几个数量级。Ekko 体系架构:完成低迟延模型革新Ekko 是一个地理分布式(geo-distributed) 的 DLRS,其能革新中央数据中心的模型。然后,它将革新的模型传布到靠近全球用户的地理分布式数据中心。Ekko 将模型表示为键 – 值对,并将模型划分为分片(shard)。此外,Ekko 将模型分片存储在键 – 值存储中(在 Ekko 中称为参数存储),参数存储通过哈希将键 – 值对分配给分片。Ekko 运用基于软件的路由器将参数请求定向到模型分片。路由器将训练 DC 中的参数服务器指定为模型分片的主节点(primaries),并且确保主节点的选择可以平衡参数请求的工作负载。路由器的完成遵循典型的键 – 值存储和数据库。在路由器中有分片管理器,可以处理资源过载、故障域和正本集问题。与传统的分片管理器不同,Ekko 的分片管理器完成了几个特定于 DLRS 的优化:为了分摊请求处理开销,Ekko 为同一模型进行批量化并行推理请求。此外,为了防止长尾迟延,Ekko 对分配给模型分片的服务器数量进行了限制;Ekko 支持多个需要性能隔离的 DLRS 应用程序。它将不同应用程序的分片映射到不同的服务器。因此,请求一个应用程序的分片的高峰不会影响其他应用程序的分片。架构概览下图 2 为 Ekko 架构概览。正如我们所看到的,Ekko 使参数服务器完成高效的点对点(P2P)模型革新。P2P 模型革新算法防止中央训练数据中心传布革新的模型。相反它运用数据中心内部和跨数据中心的所有网络路径 (图中的实线),从而在传布模型革新时完成高吞吐量。无需运用中央协调器,每个数据中心都可以独立选择同步模型革新的优化间隔。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

Ekko 支持大规模模型革新的并发传布,不过这些革新可能会争夺网络资源,从而迟延有利于 SLO 的革新。为了解决这个问题,Ekko 依赖于 SLO 感知模型革新调剂器,此调剂器预测每个模型革新将如何影响推理结果。预测结果有助于计算模型革新的优先级。根据优先级,Ekko 可以协调哪些模型革新首先在训练数据中心传布,从而提高推理服务器上 SLO 的总体满意度。Ekko 还可以保护推理服务器免受有害模型革新的影响。为了完成这一点,Ekko 在推理集群中运行了一个模型状况管理器。此模型状况管理器可以监控 SLO 相关指标。高效的 P2P 模型革新为了在参数服务器中完成 P2P 模型革新,Ekko 的计划完成了以下目标:Ekko 需要协调大量(如数千个)参数服务器(部署在全球范围内)以完成模型革新。为了避免滞后者(可能由于慢网络引起),该研究为 Ekko 中的参数服务器计划了 log-less 同步。作为共享 DLRS,Ekko 需要托管数千个模型。这些模型可以在线生成大量(例如每秒数十亿次)革新。为了支持这一点,Ekko 使参数服务器能够通过点(Peer)有效地发现模型革新并拉取革新,而无需运用过多的计算和网络资源。Ekko 需要支持地理分布式部署,这通常涉及跨 WAN 和服务器 / 网络故障的异构网络路径。为了支持这一点,Ekko 的体系计划提高了通过 WAN 发送模型革新的吞吐量 / 迟延,并容忍服务器 / 网络故障。下图 3 显示了在 Ekko 中革新模型所涉及的组件和步骤。假设我们要在两个正本(由正本 1 和正本 2 表示)之间同步一个分片(由分片 1 表示)。与所有其他分片类似,分片 1 具有 (i) 概括参数革新的分片信息,以及 (ii) 基于参数版本追踪模型革新的革新缓存。每个分片还关联一个分片版本,这个版本告诉分片是否可能有参数来同步。分片信息、革新缓存和分片版本共同加速参数服务器之间的参数同步。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

为了完成模型革新,正本 2 向正本 1 ( 1 ) 请求最近修改的分片版本。收到请求后,正本 1 返回最近修改的分片版本列表 (2)。正本 2 然后将正本 1 的所有分片版本与本地分片版本进行比较,然后将相关的分片知识发送到正本 1 ( 3 )。最后,正本 1 将所有革新的参数发送到正本 2 ( 4 )。按照这些步骤,Ekko 可以确保模型革新最终以低迟延(即最终一致性)传布到所有正本。SLO 保护机制DLRS 有两种主要的 SLO 类型:Freshness SLO 和 Quality SLO 。图 4 描述了推理服务器如何影响 SLO 的 freshness 和 quality。一旦接收到请求,推理服务器就会选择相关用户和条目嵌入。然后聚合嵌入,并将聚合嵌入发送给 DNN,后者返回推选条目分数,DLRS 最终返回一个按分数排序的条目列表。在这种情况下,Freshness SLO 是根据推选条目的最新时间戳来衡量的(在理想情况下,这个时间戳应该尽可能接近当前时间)。Quality SLO 可以根据条目的查看时间和点击数量来衡量。在实践中,Ekko 在线维护了大量的 Freshness SLO 和 Quality SLO。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

Ekko 可以防止 Freshness SLO 、Quality SLO 受到网络拥塞的影响,这是通过 SLO 感知模型革新调剂器以及将该调剂器集成到 P2P 模型革新传布来完成的。如下算法 2 描述了运用优先级调剂器增强的 log-less P2P 同步:

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

Ekko 运用推理模型状况管理器来保护 SLO 免受有害的模型革新。该管理器监控推理模型的健康状况(即 quality SLO)并按需进行低迟延模型状况回滚。下图 5 说明了回滚模型状况的过程。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

测试台实验在评估部分,研究者首先在 30 台服务器集群中进行测试台实验,其中每台服务器包含一个 24 核心 CPU、64GB 内存和 5 Gbps 网络连接。他们将每 3 台服务器分组为一个 DC 以模拟多 DC 场景,因而最多可以构成 10 个 DC。研究者选取其中一个面向训练的 DC,其余皆为面向推理的 DC,将它们彼此连接。DC 间带宽为 4800 Mbps,模拟一个 WAN。此外,测试台实验包含两个工作负载,其中一个用来训练研究者自身出产环境中通常运用的大型排序模型,另一个运用按时间先后排序的 Criteo Terabyte Click Logs 来训练 Wide & Deep 模型。测试台实验细分为两个评估指标,分别为革新迟延和性能细分革新迟延研究者分别在同构 WAN 和异构 WAN 中评估了 Ekko 的革新迟延,其中运用了两个基线——Adam 和 Checkpoint-Broadcast,后者是在 DLRS 终应用模型革新的实际方法。Ekko 和基线都运用 DRAM 存储,并采用相同的主要分配和负载平衡方案。先来看同构 WAN,研究者对 Ekko 与 Adam 进行比较。具体地,研究者分别用 1 个 DC(3 正本)、5 个 DC(15 个正本)和 10 个 DC(30 个正本)来测量迟延。结果如下图 6a 和 6b 所示,在出产和 Criteo 工作负载中,Ekko 的迟延明显低于 Adam。并且,当运用运行出产工作负载的 10 个 DC 时,Ekko 完成了 2.6 秒的迟延,这要比 Adam 的 18.8 秒低了 7 倍

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

此外,在 Ekko 与 Checkpoint-Broadcast 的比较中,研究者发现,Checkpoint-Broadcast 在 WAN 中同步 4GB 参数需要 7 秒以上,这要比 Ekko 的秒级迟延(如 2.6 秒)长了几个数量级。接着来看异构 WAN,研究者同样将 Ekko 与基线进行了比较。在异构 WAN 中,他们将 DC 间带宽默认设置为 256 Mbps。结果如下图 7a 和 7b 所示,Ekko 可以有效缓解出产和 Criteo 工作负载中的缓慢异构链路,允许正本以独立速率同步,并维持秒级同步迟延

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

性能细分研究者同样想要了解 Ekko 同步中各个组件的有效性,因此对 10 个 DC 的出产工作负载进行了性能细分分析。他们首先在配置 Ekko 时仅在同步中运用分片知识,成为了实验的基线配置,等同于点对点同步中的 SOTA 体系版本向量(Version Vector, VV)。结果如下图 8 所示,仅运用 VV,Ekko 需要 76.3 秒来同步所有参数。而当启用革新缓存后,Ekko 将迟延降低到了 27.4 秒,完成了 2.8 倍加速。然后,通过进一步启用分片版本,Ekko 又将迟延从 27.4 秒降低到了 6.0 秒,完成了 4.6 倍加速。这意味着跳过未革新的分片可以减少同步引起的网络消耗。最后,在启用 WAN 优化后,Ekko 再次将迟延从 6.0 秒降低到了 2.6 秒,完成了 2.3 倍加速。这表明点对点同步必须考虑 WAN 中每个链路的可用带宽。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

出产集群实验截止目前,腾讯已经在出产中部署 Ekko 长达一年多的时间。出产环境包括分布在 6 个地理分布式 DC 中的 4600 台服务器。今年以来,腾讯运用 Ekko 支持了广泛的推选服务,包括视频推选、搜索和广告。每天有超过 10 亿的用户运用这些推选服务。因此,研究者特别报告了 Ekko 在其出产环境的性能,同样运用两个评估指标,即模型革新和 SLO 保护机制模型革新研究者选用的出产环境具有数百个 DLRS 模型,共 计40 TB 参数或 2500 亿个键值对。每个参数分片的范围从 0.1 MB 到 20MB,具体取决于模型大小。Ekko 每秒可以执行 10 亿次革新,速度为 212 GB/s。关于迟延性能,Ekko 仅用 2.4 秒来同步所有 DC 中的参数,训练 DC 仅用了 0.7 秒。同步流量仅占了总网络流量的 3.0%,体现了 Ekko 在参数服务器上作为后台同步服务的有效性。此外,Ekko 的低迟延、高吞吐量性能不影响体系可用性。自部署以来,Ekko 已完成了大于 99.999% 的参数读写操作可用性。关于革新缓存分析,实验表明:革新缓存只需要在缓存中保留 0.13%-0.2% 的参数,就可以达到 > 99.4% 的命中率(hit ratios)。研究者选择革新密集型 DLRS 模型来揭示最坏情况下革新局部性的影响。下图 9 显示了在 480 分钟窗口中革新参数的比例。这个时间窗口涵盖了出产 DLRS 一天中最繁忙的时间。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

SLO 保护机制的有效性研究者还进行了 A/B 测试,以评估 Ekko SLO 保护机制的有效性。A/B 测试结果表明,在实验组中,Ekko 将同步流量减少了 92%,并将重要革新的迟延保持在较低水平。相反,对照组无法区分模型革新,对照组对 SLO 关键革新进行了迟延,并且 SLO 指标下降了 2.32%。关于在线模型状况回滚,研究者将 Ekko 与检查点恢复(checkpoint-recovery)方法进行比较。 在实验过程中,研究者告知 Ekko 模型状况管理器将 DLRS 模型的状况回滚到 1 分钟前的版本。然后管理器告知所有 witness 服务器识别最近 1 分钟革新的参数。因此,witness 服务器仅重新加载当前状况和早期状况之间的差异。整个回滚操作只需 6.4 秒即可完成。相比之下,检查点恢复方法与模型状况的最新革新无关,结果是检查点恢复方法必须重新加载整个状况,需要 1157 秒才能完成(比 Ekko 慢 180 倍)。

每秒10亿次革新、完成秒级同步迟延,腾讯深度学习推选体系首次入选OSDI顶会

更多细节内容请阅读原论文。

原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/33219

(0)
上一篇 2022年8月5日 下午2:10
下一篇 2022年8月5日 下午5:22

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注