Skip to main content
QUICK REVIEW

[论文解读] Understanding and Co-designing the Data Ingestion Pipeline for Industry-Scale RecSys Training.

Mark Zhao, Niket Agarwal|arXiv (Cornell University)|Aug 20, 2021
Data Quality and Management参考文献 43被引用 5
一句话总结

本文提出了一种用于工业规模推荐系统训练的解耦式数据摄入流水线,通过使用分布式数据仓库和可扩展的数据预处理服务(DPP),将预处理与训练器解耦。该方案分别将存储和预处理吞吐量提升1.9倍和2.3倍,将因数据阻塞导致的训练吞吐量损失最高减少56%。

ABSTRACT

The data ingestion pipeline, responsible for storing and preprocessing training data, is an important component of any machine learning training job. At Facebook, we use recommendation models extensively across our services. The data ingestion requirements to train these models are substantial. In this paper, we present an extensive characterization of the data ingestion challenges for industry-scale recommendation model training. First, dataset storage requirements are massive and variable; exceeding local storage capacities. Secondly, reading and preprocessing data is computationally expensive, requiring substantially more compute, memory, and network resources than are available on trainers themselves. These demands result in drastically reduced training throughput, and thus wasted GPU resources, when current on-trainer preprocessing solutions are used. To address these challenges, we present a disaggregated data ingestion pipeline. It includes a central data warehouse built on distributed storage nodes. We introduce Data PreProcessing Service (DPP), a fully disaggregated preprocessing service that scales to hundreds of nodes, eliminating data stalls that can reduce training throughput by 56%. We implement important optimizations across storage and DPP, increasing storage and preprocessing throughput by 1.9x and 2.3x, respectively, addressing the substantial power requirements of data ingestion. We close with lessons learned and cover the important remaining challenges and opportunities surrounding data ingestion at scale.

研究动机与目标

  • 解决在工业规模推荐系统训练中,由于海量、可变大小的数据集存储和计算密集型预处理所导致的严重性能瓶颈。
  • 减少因数据摄入延迟导致的训练吞吐量下降,当前这些延迟导致 GPU 资源因在训练器上执行预处理而浪费。
  • 设计一种可扩展的分布式数据摄入流水线,将数据预处理与模型训练解耦,以提升系统效率和资源利用率。
  • 优化存储和预处理工作负载,以满足大规模推荐训练对高功耗和高吞吐量的需求。

提出的方法

  • 设计并部署一个基于分布式存储节点的中央数据仓库,以处理超出本地训练器容量的海量、可变大小的数据集。
  • 引入数据预处理服务(DPP),一种完全解耦的预处理系统,可在数百个节点上横向扩展,以消除数据阻塞。
  • 在存储和 DPP 上实施工作负载感知优化,以提升数据吞吐量并减少数据交付给训练器的延迟。
  • 通过将预处理卸载到专用基础设施,实现与训练的解耦,减轻 GPU 训练器的计算负担。
  • 使用分布式处理和数据分片技术并行化预处理,使吞吐量随节点增加线性扩展。
  • 优化数据布局和 I/O 模式,以最小化预处理和传输过程中的网络与内存瓶颈。

实验结果

研究问题

  • RQ1在拥有海量、可变大小数据集的工业规模推荐训练中,如何最小化数据摄入瓶颈?
  • RQ2哪些架构模式能够实现可扩展的、高吞吐量的预处理,同时避免对 GPU 训练器造成过载?
  • RQ3将预处理与训练解耦在多大程度上能够提升训练吞吐量和 GPU 利用率?
  • RQ4如何优化存储和预处理工作负载,以降低功耗并提高系统效率?
  • RQ5在大规模场景下,分布式、解耦式数据摄入流水线的关键性能权衡和局限性是什么?

主要发现

  • 与在训练器上执行预处理相比,解耦式数据摄入流水线可将因数据阻塞导致的训练吞吐量损失最高减少56%。
  • 通过优化数据布局和分布式存储访问模式,存储吞吐量提升1.9倍。
  • 通过在数百个节点上横向扩展数据预处理服务(DPP),预处理吞吐量提升2.3倍。
  • 该方案有效实现了预处理与训练的解耦,释放了 GPU 资源,使训练工作负载更加高效。
  • 该方法通过在专用基础设施上分发计算和 I/O,有效应对了数据摄入的高功耗需求。
  • 本文识别出未来工作在数据一致性、容错性和动态工作负载自适应方面仍存在的挑战。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。