BagPipe: Accelerating Deep Recommendation Model Training

TL;DR

提出BagPipe系统,通过缓存与预取优化推荐模型训练中的嵌入访问,提升至5.6倍速度。

cs.DC 🔴 高级 2022-02-25 44 次浏览
Saurabh Agarwal Chengpo Yan Ziyi Zhang Shivaram Venkataraman
深度学习 推荐系统 分布式训练 缓存优化 预取算法

核心发现

方法论

本文分析了深度推荐模型(DLRM)训练中的嵌入访问结构,发现访问高度偏斜,约1%的嵌入占据92%的访问量。基于离线训练中的未来批次预知,设计了BagPipe系统,结合缓存、预取和Lookahead算法,优化远程嵌入访问。引入Oracle Cacher,利用Lookahead生成最优缓存更新策略,保证一致性。采用逻辑复制、物理分区的LRPP缓存设计,减少同步开销。系统架构支持低开销容错,实验在三个数据集、四个模型上,提升训练速度至5.6倍,且保持同步训练的收敛性。

关键结果

  • 在Criteo、Kaggle和Avazu数据集上,BagPipe实现训练速度提升最高5.6倍,显著优于TorchRec和异步训练方案。对大规模模型(如4.4亿参数)在32GPU环境中验证,训练时间明显缩短,且保证模型收敛一致性。缓存命中率由静态策略的15%提升至70%以上,预取策略有效隐藏了嵌入访问延迟。系统在故障恢复方面也表现出13倍的速度提升,确保训练的鲁棒性。
  • 通过LRPP缓存设计,减少了65%-70%的同步通信开销。Lookahead算法提前预知未来批次的嵌入需求,有效缓解了长尾访问带来的瓶颈。实验还表明,动态缓存策略优于静态缓存,适应访问偏斜和变化。系统架构支持弹性扩展,资源利用率提升显著。
  • 在多模型、多数据集的测试中,BagPipe保持了训练的统计效率和重现性,避免了异步训练带来的准确性下降问题。整体方案兼顾性能、准确性和系统可扩展性,为大规模推荐模型训练提供了新思路。

研究意义

该研究突破了推荐模型训练中的嵌入访问瓶颈,提出结合缓存、预取和Lookahead的创新方案,有效提升训练效率,降低通信成本。其技术创新不仅解决了模型规模巨大带来的存储与计算难题,也为分布式系统中的数据一致性和容错提供了新思路。该系统的实现极大推动了工业界大规模推荐模型的训练效率,为未来个性化服务和大数据分析奠定基础。其低开销容错设计也为云端大规模训练提供了可行方案,具有广泛的应用前景。

技术贡献

本文提出的BagPipe系统引入了Lookahead算法优化缓存策略,结合逻辑复制和物理分区设计,显著降低了分布式环境中的同步开销。系统实现了远超现有方案的嵌入访问加速(最高5.6倍),同时保证训练的同步性和重现性。创新点包括Oracle Cacher的最优预取决策机制,LRPP缓存架构,以及支持低成本容错的分离式设计。这些技术突破为大规模推荐模型的高效训练提供了坚实基础,开启了分布式推荐系统的新篇章。

新颖性

本研究首次系统性结合Lookahead预取算法与逻辑复制、物理分区的缓存架构,专为推荐模型中的偏斜访问模式设计。不同于传统缓存或异步训练方案,BagPipe在保证训练一致性的同时,大幅减少通信和存储开销,突破了嵌入访问的瓶颈。其创新的离线预知机制和分布式缓存策略,为大规模推荐模型训练提供了全新解决方案,具有显著的理论和工程创新价值。

局限性

  • 系统依赖离线预知未来批次访问,可能在动态变化的场景中表现不佳,需实时调整预取策略。
  • 高效缓存管理需要额外的存储资源和复杂的调度算法,可能增加系统复杂性和维护成本。
  • 在极端长尾访问或极大模型规模下,缓存命中率仍有限,未来需结合模型压缩或稀疏技术进一步优化。

未来方向

未来将探索动态预取策略,结合在线学习和实时访问分析,提升适应性。还计划优化缓存结构,结合模型压缩和稀疏技术,进一步降低存储需求。系统可扩展性和容错能力也将持续提升,以支持更大规模和更复杂的推荐场景。

AI 总览摘要

推荐系统在现代互联网中扮演着核心角色,推动个性化内容推荐和用户体验优化。然而,深度推荐模型(DLRM)在训练过程中面临巨大的数据访问瓶颈,尤其是嵌入表的远程访问,严重限制了训练速度。传统方案多采用模型并行和数据并行结合,但嵌入访问的高延迟和通信成本依然难以突破。本文提出的BagPipe系统,创新性地结合缓存、预取和Lookahead算法,有效缓解了这一难题。

BagPipe的核心思想是利用离线训练中的未来批次访问预知,提前将热点嵌入缓存到GPU内存中,隐藏远程访问延迟。系统设计了Oracle Cacher,利用Lookahead算法生成最优缓存更新策略,确保一致性和新鲜度。同时,采用逻辑复制、物理分区的LRPP缓存架构,减少同步通信,显著降低了通信开销。实验结果显示,在多个公开数据集和模型上,训练速度最高提升5.6倍,且保持了训练的收敛性和重现性。系统还支持低开销的容错机制,提升了系统鲁棒性。

该研究的技术创新为大规模推荐模型训练提供了全新思路,不仅极大提高了训练效率,还降低了系统复杂度和通信成本。其离线预知和分布式缓存架构,为工业界大规模模型训练带来了实用的解决方案。未来,结合动态预取策略和模型压缩技术,BagPipe有望在更复杂、更大规模的场景中发挥更大作用,推动推荐系统的快速发展。

深度分析

研究背景

推荐系统在互联网行业中广泛应用,随着数据规模和模型复杂度的提升,深度学习推荐模型(DLRM)成为主流。早期方法主要依赖模型并行和数据并行,但嵌入表的巨大规模带来了存储和访问瓶颈。现有系统如TorchRec、HugeCTR采用分布式存储和同步机制,但嵌入访问仍占用大量时间,影响训练效率。近年来,研究关注偏斜访问和缓存优化,但缺乏系统性解决方案。随着模型规模不断扩大,如何高效管理远程嵌入访问成为关键挑战。

核心问题

核心问题在于大规模嵌入表的远程访问延迟和通信开销,导致训练速度受限。现有方案多采用异步或静态缓存策略,难以适应访问偏斜和动态变化,影响模型收敛和重现性。尤其在分布式环境中,同步开销和一致性维护成为瓶颈。解决这一问题需要结合访问偏斜特性,设计高效的预取和缓存机制,同时保证训练的同步性和一致性。

核心创新

本文提出了BagPipe系统,核心创新包括:1)利用离线训练中的未来访问预知,设计Lookahead算法提前缓存热点嵌入;2)引入Oracle Cacher,动态生成最优缓存更新策略,确保数据新鲜;3)采用LRPP缓存架构,结合逻辑复制和物理分区,减少同步通信;4)系统支持低开销容错,提升鲁棒性。这些创新突破了现有方案在偏斜访问和分布式同步中的局限,显著提升训练效率。

方法详解

  • �� 访问偏斜分析:识别1%嵌入占92%访问的偏斜特性。• 离线预知:利用训练前的访问统计,预测未来批次的嵌入需求。• Lookahead算法:根据预测,提前决定缓存内容,动态调整策略。• Oracle Cacher:在每个训练步骤中,计算最优缓存更新方案,保证一致性。• LRPP缓存:设计逻辑复制、物理分区架构,减少同步数据量。• 结合CPA分析:只同步关键路径上的嵌入,延迟非关键部分。• 系统架构:支持异步RPC、分布式存储和低开销容错。• 实现细节:在多GPU环境中,结合预取、缓存和同步机制,优化整体训练流程。

实验设计

采用Criteo、Kaggle和Avazu三个公开数据集,训练包括DLRM、DeepFM等模型,参数规模达4.4亿。对比TorchRec和异步HET方案,验证训练速度提升最高5.6倍。通过调优缓存策略,提升命中率,减少通信。实验还测试系统在故障恢复、模型收敛和重现性方面的表现,确保方案的实用性和鲁棒性。

结果分析

在大规模模型训练中,BagPipe显著缩短训练时间,最高提升5.6倍,且保持模型收敛和重现性。缓存命中率由静态15%提升至70%以上,预取策略有效隐藏延迟。通信开销降低65%-70%,系统支持弹性扩展和低成本容错。多模型、多数据集的测试验证了方案的广泛适用性和优越性能。

应用场景

适用于工业界大规模推荐模型训练,尤其在电商、广告和内容推荐场景。系统可部署在多GPU集群,支持异构资源调度,显著提升训练效率和系统鲁棒性。未来还可结合模型压缩和稀疏技术,进一步优化存储和计算资源利用。

局限与展望

依赖离线访问预知,动态变化场景可能表现不足。缓存管理复杂,增加系统复杂度。长尾访问仍有限,需结合模型压缩技术优化存储。未来需优化实时预取策略,提升适应性。

通俗解读 非专业人士也能看懂

想象你在一家工厂里工作,工厂有很多不同的机器(模型参数),有些机器非常重要,很多订单(访问)都集中在少数几台机器上。以前,工厂每次需要这些重要机器时,都要从远处运输(远程访问),非常慢。现在,工厂决定提前把这些重要机器的零件放在靠近生产线的仓库(缓存),这样就能快速用到。为了知道哪些机器的零件要提前准备,工厂用了一种智能预判系统(Lookahead算法),根据过去的订单,预测未来可能需要的机器零件。这样,工厂的生产变得更快、更高效,几乎不用等待运输时间。这个方案还设计了特别的存储架(LRPP缓存),可以让多个生产线(分布式环境)同步零件,减少了很多不必要的运输和等待时间。最终,工厂的生产速度提升了几倍,效率大大提高,同时还能应对突发的故障,保证生产连续性。

简单解释 像给14岁少年讲一样

想象你在学校的食堂吃饭,有很多不同的菜(模型参数),有些菜非常受欢迎,很多人都点这些菜。以前,点这些菜时,要从厨房远远的地方拿(远程访问),很慢很麻烦。现在,食堂决定提前把这些受欢迎的菜放在靠近餐桌的地方(缓存),这样大家点菜就快多了。为了知道哪些菜要提前准备,厨师们用了一种聪明的预测方法(Lookahead),根据平时的点菜习惯,预测未来可能会点哪些菜,然后提前准备。这样,大家等菜的时间变少了,吃饭变得更快更开心。这个系统还设计了特别的存储架(LRPP缓存),让不同的餐桌可以同步菜品信息,减少了很多重复的工作。结果,吃饭的速度提高了好几倍,大家都很满意,还能应对突发情况,比如突然多了很多人,保证每个人都能吃到喜欢的菜。

术语表

Embedding Table (嵌入表)

存储类别特征向量的表格,用于将离散特征映射到连续空间,便于神经网络处理。

在论文中用于存储用户和物品的向量表示。

Lookahead Algorithm (预见算法)

提前预测未来批次中将用到的嵌入,优化缓存策略。

核心机制之一,用于提升嵌入访问效率。

LRPP Cache (逻辑复制、物理分区缓存)

一种分布式缓存架构,减少同步通信,提升扩展性。

系统中用于分布式环境的缓存设计。

Oracle Cacher (预知缓存器)

利用未来访问预测,动态生成最优缓存更新策略的组件。

系统中的关键决策模块。

Distributed Recommendation Model (分布式推荐模型)

在多个计算节点协作下训练的大规模模型,用于个性化推荐。

论文的研究对象。

开放问题 这项研究留下的未解疑问

  • 1 未来如何应对极端动态访问场景,实时调整预取策略仍待探索。当前方案依赖离线统计,实时变化可能影响效果。
  • 2 长尾访问的优化空间有限,结合模型稀疏化和压缩技术或许能进一步提升性能。

应用场景

近期应用

大规模推荐系统加速

电商、广告平台可利用BagPipe提升模型训练速度,减少成本,支持更大模型规模。

云端分布式训练优化

支持多云环境中的推荐模型训练,降低通信开销,提高系统鲁棒性。

远期愿景

智能化预取策略

结合在线学习和实时访问分析,动态调整预取策略,实现更高效率。

原文摘要

Deep learning based recommendation models (DLRM) are widely used in several business critical applications. Training such recommendation models efficiently is challenging because they contain billions of embedding-based parameters, leading to significant overheads from embedding access. By profiling existing systems for DLRM training, we observe that around 75\% of the iteration time is spent on embedding access and model synchronization. Our key insight in this paper is that embedding access has a specific structure which can be used to accelerate training. We observe that embedding accesses are heavily skewed, with around 1\% of embeddings representing more than 92\% of total accesses. Further, we observe that during offline training we can lookahead at future batches to determine exactly which embeddings will be needed at what iteration in the future. Based on these insights, we develop Bagpipe, a system for training deep recommendation models that uses caching and prefetching to overlap remote embedding accesses with the computation. We design an Oracle Cacher, a new component that uses a lookahead algorithm to generate optimal cache update decisions while providing strong consistency guarantees against staleness. We also design a logically replicated, physically partitioned cache and show that our design can reduce synchronization overheads in a distributed setting. Finally, we propose a disaggregated system architecture and show that our design can enable low-overhead fault tolerance. Our experiments using three datasets and four models show that Bagpipe provides a speed up of up to 5.6x compared to state of the art baselines, while providing the same convergence and reproducibility guarantees as synchronous training.

cs.DC cs.LG