[論文レビュー] Understanding and Co-designing the Data Ingestion Pipeline for Industry-Scale RecSys Training.
本論文は、分散ストレージとスケーラブルなデータ前処理サービス(DPP)を用いてトレーナーから前処理を分離することで、産業スケールの推薦システム学習に向けた非統合型データインジェストパイプラインを提案する。このソリューションにより、ストレージと前処理のスループットがそれぞれ1.9倍および2.3倍に向上し、データスタールによるトレーニングスループット損失が最大56%まで削減される。
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の両方でワークロードに配慮した最適化を実装し、トレーナーへのデータ配信のスループットを向上させ、遅延を低減すること。
- 前処理を専用インfraにオフロードすることで、トレーニングから前処理を分離し、GPUトレーナーの計算負荷を軽減すること。
- 分散処理とデータシャーディングを活用して前処理を並列化し、ノードの追加に比例してスループットを線形にスケーリングすること。
- ネットワークおよびメモリのボトル neck を最小限に抑えるために、データレイアウトとI/Oパターンを最適化すること。
実験結果
リサーチクエスチョン
- RQ1膨大でサイズが変動するデータセットを扱う産業スケールの推薦学習において、データインジェストのボトル neck をどのように最小限に抑えられるか?
- RQ2GPUトレーナーを過負荷にしないために、スケーラブルで高スループットの前処理を実現するアーキテクチャパターンは何か?
- RQ3トレーニングから前処理を分離することで、トレーニングスループットとGPU利用効率はどの程度向上できるか?
- RQ4ストレージと前処理ワークロードを最適化することで、消費電力の低減とシステム効率の向上をどの程度達成できるか?
- RQ5大規模な分散型・非統合型データインジェストパイプラインにおいて、主なパフォーマンス上のトレードオフと制限要因は何か?
主な発見
- 非統合型データインジェストパイプラインにより、トレーナー内での前処理と比較して、データスタールに起因するトレーニングスループット損失が最大56%削減された。
- 最適化されたデータレイアウトと分散ストレージアクセスパターンのおかげで、ストレージスループットが1.9倍向上した。
- 数百ノードにわたるDPPの水平スケーリングにより、前処理スループットが2.3倍に向上した。
- このソリューションにより、前処理とトレーニングが効果的に分離され、GPUリソースが解放され、より効率的なトレーニングワークロードが可能になった。
- 専用インフラに計算とI/Oを分散させることで、データインジェストの大きな電力要件に対処した。
- 論文では、今後の研究におけるデータ一貫性、フェイルセーフティ、動的ワークロード適応の課題が同定された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。