每秒10亿次更新、实现秒级同步延迟,腾讯深度学习推荐系统首次入选OSDI顶会(1)

简介: 每秒10亿次更新、实现秒级同步延迟,腾讯深度学习推荐系统首次入选OSDI顶会

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



深度学习推荐系统(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》成为了腾讯首篇入选该会议的论文


论文地址: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 模型更新算法防止中央训练数据中心传播更新的模型。相反它使用数据中心内部和跨数据中心的所有网络路径 (图中的实线),从而在传播模型更新时实现高吞吐量。无需使用中央协调器,每个数据中心都可以独立选择同步模型更新的优化间隔。


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) 基于参数版本追踪模型更新的更新缓存。每个分片还关联一个分片版本,这个版本告诉分片是否可能有参数来同步。分片信息、更新缓存和分片版本共同加速参数服务器之间的参数同步。


为了完成模型更新,副本 2 向副本 1 ( 1 ) 请求最近修改的分片版本。收到请求后,副本 1 返回最近修改的分片版本列表 (2)。副本 2 然后将副本 1 的所有分片版本与本地分片版本进行比较,然后将相关的分片知识发送到副本 1 ( 3 )。最后,副本 1 将所有更新的参数发送到副本 2 ( 4 )。按照这些步骤,Ekko 可以确保模型更新最终以低延迟(即最终一致性)传播到所有副本。


相关文章
|
4月前
|
机器学习/深度学习 搜索推荐 算法
深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识
深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识
|
4月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
268 1
|
4月前
|
机器学习/深度学习 搜索推荐 TensorFlow
推荐系统:从经典模型到深度学习,你需要掌握什么?
推荐系统:从经典模型到深度学习,你需要掌握什么?
143 0
|
11月前
|
机器学习/深度学习 人工智能 移动开发
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
|
11月前
|
机器学习/深度学习 存储 人工智能
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
|
1天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第13天】 随着计算机视觉和人工智能技术的飞速发展,深度学习已成为推动图像识别领域进步的核心动力。本文将探讨深度学习技术在图像识别中的应用,并分析其面临的主要挑战。我们将从卷积神经网络(CNN)的基础出发,探索其在图像分类、目标检测和语义分割等方面的应用实例,并针对数据偏差、模型泛化能力、计算资源需求等关键问题展开讨论。通过案例分析和性能比较,我们旨在为读者提供一个关于深度学习在图像识别中应用的全面视角,同时指出未来的研究方向和技术趋势。
|
1天前
|
机器学习/深度学习 数据可视化 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第13天】 随着人工智能技术的飞速发展,深度学习已经成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,以及在实际应用中面临的挑战。我们将介绍深度学习的基本原理,以及如何将其应用于图像识别任务。此外,我们还将讨论在实际应用中可能遇到的问题,以及如何解决这些问题。
6 2
|
1天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第13天】随着人工智能技术的飞速发展,深度学习已成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,以及面临的挑战和未来发展趋势。我们将介绍卷积神经网络(CNN)的基本原理,以及如何通过迁移学习和数据增强等技术提高模型性能。此外,我们还将讨论深度学习在图像识别中面临的一些挑战,如对抗性攻击、数据偏见和计算资源需求等。
7 1
|
2天前
|
机器学习/深度学习 监控 自动驾驶
深度学习在图像识别中的应用与挑战
【5月更文挑战第12天】 随着计算机视觉和人工智能技术的迅猛发展,深度学习已成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,包括卷积神经网络(CNN)的基本原理、关键技术及其在不同领域中的应用案例。同时,我们将分析当前面临的主要挑战,如数据集偏差、模型泛化能力和计算资源要求,并提出可能的解决方案。通过综合评述,旨在为读者提供一个关于深度学习在图像识别中应用的全面视角。