Skip to main content
QUICK REVIEW

[論文レビュー] BlueFog: Make Decentralized Algorithms Practical for Optimization and Deep Learning

Bicheng Ying, Kun Yuan|arXiv (Cornell University)|Nov 8, 2021
IoT and Edge/Fog Computing参考文献 81被引用数 12
ひとこと要約

BlueFog は、ディープラーニングの分散最適化アルゴリズムの高性能で使いやすい実装を可能にするオープンソースの Python ライブラリです。通信操作を抽象化し、動的で非同期的かつ有向なネットワークトポロジーをサポートすることで、ResNet-50 および BERT-large の学習タスクにおいて Horovod よりも 1.2× から 1.8× の高速化を達成し、実世界の分散学習環境における実用性と効率性を示しています。

ABSTRACT

Decentralized algorithm is a form of computation that achieves a global goal through local dynamics that relies on low-cost communication between directly-connected agents. On large-scale optimization tasks involving distributed datasets, decentralized algorithms have shown strong, sometimes superior, performance over distributed algorithms with a central node. Recently, developing decentralized algorithms for deep learning has attracted great attention. They are considered as low-communication-overhead alternatives to those using a parameter server or the Ring-Allreduce protocol. However, the lack of an easy-to-use and efficient software package has kept most decentralized algorithms merely on paper. To fill the gap, we introduce BlueFog, a python library for straightforward, high-performance implementations of diverse decentralized algorithms. Based on a unified abstraction of various communication operations, BlueFog offers intuitive interfaces to implement a spectrum of decentralized algorithms, from those using a static, undirected graph for synchronous operations to those using dynamic and directed graphs for asynchronous operations. BlueFog also adopts several system-level acceleration techniques to further optimize the performance on the deep learning tasks. On mainstream DNN training tasks, BlueFog reaches a much higher throughput and achieves an overall $1.2 imes \sim 1.8 imes$ speedup over Horovod, a state-of-the-art distributed deep learning package based on Ring-Allreduce. BlueFog is open source at https://github.com/Bluefog-Lib/bluefog.

研究の動機と目的

  • 理論的な分散アルゴリズムと実際の分散ディープラーニングにおける展開のギャップを埋めること。
  • 低レベルの通信の複雑さを気にせずに、多様な分散アルゴリズムを実装できる統一的で使いやすいソフトウェアインターフェースを提供すること。
  • 非同期更新、時間変動するトポロジー、ワンウェイ通信といった高度な機能をサポートし、実世界での耐障害性を高めること。
  • 大規模な DNN 学習において、Horovod らしい最先端のフレームワークと同等またはそれを上回る高性能を達成すること。
  • 研究者や実務家が PyTorch で分散最適化アルゴリズムを素早くプロトタイプ化および展開できるようにすること。

提案手法

  • BlueFog は、分散通信操作のための統一された抽象化レイヤーを導入し、アルゴリズムの論理と低レベルの通信詳細を分離しています。
  • 部分平均化に適した静的または動的、無向または有向のグラフを用いて、同期的および非同期的通信をサポートしています。
  • DmSGD、QG-DmSGD、および通常の DmSGD などのアルゴリズムを実装するための直感的な Python API を提供しており、平均化係数を設定可能にしています。
  • システムレベルの最適化には、効率的なメモリ管理とディープラーニングワークロードに特化した低遅延通信プリミティブが含まれます。
  • BlueFog は PyTorch と統合されており、最小限のコード変更で複数ノードにわたる SPMD(単一プログラム、複数データ)実行を可能にしています。
  • 動的トポロジー選択をサポートしており、各ノードが反復ごとに新しい隣接ノードを選択することで、通信コストを削減しながら収束性を損なわずに済ませます。

実験結果

リサーチクエスチョン

  • RQ1高レベルで使いやすいライブラリは、分散ディープラーニングアルゴリズムを実世界の展開に実用可能にすることができるか?
  • RQ2大規模な DNN における学習スループットと収束性の観点から、分散通信はリング・アラーリダスと比べてどのように異なるか?
  • RQ3動的かつ非対称なネットワークトポロジーは、モデルの精度を維持したまま通信オーバーヘッドをどの程度削減できるか?
  • RQ4高性能なディープラーニングフレームワークにおいて、非同期的およびワンウェイ通信プリミティブを効率的にサポートできるか?
  • RQ5分散学習におけるシステムレベルの通信パターンの最適化によって、どの程度のパフォーマンス向上が達成できるか?

主な発見

  • BlueFog は、ResNet-50 および BERT-large の学習タスクにおいて、Horovod よりも 1.2× から 1.8× の高速化を達成しており、90 エポックで学習時間を Horovod の 14,648 秒から BlueFog の 10,229 秒に短縮しています。
  • ImageNet-1k と ResNet-50 を用いた実験では、BlueFog の AWC バリエーションが 10,228.92 秒でトップ-1 精度 74.5% を達成し、速度面で Horovod を上回りながらも、競争力のある精度を維持しました。
  • 動的指数的トポロジーは通信コストを削減しながらも、すべてのモデルとアルゴリズムで静的トポロジーと比較して顕著な性能低下を引き起こさず、トップ-1 精度は 0.5% 以内に収まりました。
  • 8×8 GPU の構成においても、BlueFog は一貫したスケーリング効率を示し、1 つの AWS p3.16xlarge インスタンスから 2 つのインスタンスにスケーリングした際のパフォーマンス低下が最小限に抑えられました。
  • BlueFog が実装した分散アルゴリズムは、グローバル平均化ベースラインと同等の収束行動を示しており、正しさと安定性が確認されました。
  • このライブラリにより、ユーザーは洗練された Python コード数行で複雑な分散アルゴリズムを実装でき、分散学習研究への参入障壁が著しく低下しました。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。