[論文レビュー] A Distributed Multi-GPU System for Large-Scale Node Embedding at Tencent
本論文では、コンmodity GPUクラスタ上で効率的にスケーリング可能な、大規模なノード埋め込みのための高性能で分散処理可能なマルチGPUシステムを提示する。モデル並列性とデータ並列性を組み合わせることで、システムはコンmodity GPUクラスタ全体にわたって効率的にスケーリングする。階層的データパーティショニング、パイプライン処理されたトレーニング、およびランダムウォークと埋め込みトレーニングの段階を分離することで、最先端の手法よりも5.9倍~14.4倍の高速化を達成しながらも、競争力ある精度を維持し、40台のV100 GPUを用いて3000億エッジのネットワークで1エポックのトレーニングをわずか3分で完了する。
Real-world node embedding applications often contain hundreds of billions of edges with high-dimension node features. Scaling node embedding systems to efficiently support these applications remains a challenging problem. In this paper we present a high-performance multi-GPU node embedding system. It uses model parallelism to split node embeddings onto each GPU's local parameter server, and data parallelism to train these embeddings on different edge samples in parallel. We propose a hierarchical data partitioning strategy and an embedding training pipeline to optimize both communication and memory usage on a GPU cluster. With the decoupled design of CPU tasks (random walk) and GPU tasks (embedding training), our system is highly flexible and can fully utilize all computing resources on a GPU cluster. Comparing with the current state-of-the-art multi-GPU single-node embedding system, our system achieves 5.9x-14.4x speedup on average with competitive or better accuracy on open datasets. Using 40 NVIDIA V100 GPUs on a network with almost three hundred billion edges and more than one billion nodes, our implementation requires only 3 minutes to finish one training epoch.
研究の動機と目的
- コンmodity GPUクラスタを用いて、数十億ノード、数兆エッジのネットワークにスケーリング可能なノード埋め込みトレーニングを実現すること。
- 既存のシステムがマルチGPUスケーラビリティに欠けている、またはGPUメモリや通信帯域幅を効率的に活用できないという限界を克服すること。
- ランダムウォークに基づくネットワーク拡張と埋め込みトレーニングを分離し、それぞれを独立して最適化できるようにシステムを設計すること。
- 大規模ノード埋め込みの分散マルチGPUトレーニングにおいて、高いスループットと効率的な通信の重ね合わせを達成すること。
- 実世界およびオープンベンチマークデータセットにおいて、高いパフォーマンスと競争力ある精度を両立すること。
提案手法
- 本システムはハイブリッドモデル並列性とデータ並列性を採用する:ノード埋め込みはモデル並列性によりGPU間でパーティショニングされ、トレーニングサンプルはデータ並列性によりGPUに分散配分される。
- 通信オーバーヘッドを最小限に抑え、GPUクラスタ全体でデータローカリティを向上させるための階層的データパーティショニング戦略を提案する。
- 計算と通信を重ねて実行するパイプライン処理された埋め込みトレーニングパイプラインを採用し、GPUの利用効率と帯域幅を最大化する。
- CPUベースのランダムウォーク生成とGPUベースの埋め込みトレーニングを分離することで、各段階を独立して最適化できる。
- ローカルおよびリモートのパラメータサーバーをサポートし、効率的な埋め込みの参照と更新操作を用いてカーネル起動のオーバーヘッドを削減する。
- ネットワーク送信量を削減し、トレーニング効率を向上させるために、ネガティブサンプリング戦略を採用する。
実験結果
リサーチクエスチョン
- RQ14000億エッジを超える大規模なノード埋め込みタスクに、コンmodity GPUクラスタ上で効率的にスケーリング可能な分散マルチGPUシステムをどのように実現できるか?
- RQ2マルチGPUノード埋め込みシステムにおいて、高い通信効率とメモリ利用効率を実現するための設計パターンは何か?
- RQ3ランダムウォーク生成と埋め込みトレーニングをどのように分離することで、独立した最適化とより良いリソース利用が可能になるか?
- RQ4パイプライン処理されたトレーニングと階層的データパーティショニングは、大規模グラフ上でスループットをどの程度向上させ、トレーニング時間をどの程度短縮できるか?
- RQ5コンmodity GPUクラスタ上に構築されたシステムは、既存の最先端のマルチGPUフレームワークを速度面でも精度面でも上回ることができるか?
主な発見
- 本システムは、オープンデータセット上で、現在の最先端のマルチGPU単一ノード埋め込みシステムよりも平均で5.9倍~14.4倍の高速化を達成した。
- 約3000億エッジと10億を超えるノードを有するネットワークにおいて、40台のNVIDIA V100 GPUを用いて1エポックのトレーニングをわずか3分で完了した。
- 標準的なオープンベンチマークデータセットにおいて、ベースラインモデルと比較して同等または優れた精度を維持した。
- パイプライン処理されたトレーニング戦略により、計算と通信の重ね合わせが成功し、GPUの利用効率とシステムスループットが顕著に向上した。
- 階層的データパーティショニングにより通信オーバーヘッドが低減され、データローカリティが向上し、GPUクラスタ全体での効率的なスケーリングが可能になった。
- 分離されたアーキテクチャにより、ランダムウォークと埋め込みトレーニングの独立した最適化が可能となり、システムの柔軟性とパフォーマンスが向上した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。