DistSimを使った分散トレーニングの最適化
DistSimはハイブリッドトレーニング戦略を分析し、効率を向上させ、コストを削減するよ。
― 1 分で読む
深層ニューラルネットワーク(DNN)は、高い精度を提供するから、いろんなタスクでめっちゃ人気になってるよ。研究者たちがより大きくて複雑なネットワークを作ろうとする中で、これらのモデルのパラメータの数がすごく増えて、単一のデバイスで動かすのが難しくなってる。モデルのサイズが増えると、トレーニングにかかる時間もめちゃくちゃ長くなる。たとえば、以前は数日で済んでたモデルが、今では何百年分のGPU時間が必要になることもあるんだ。
この問題を解決するために、特別なハードウェアや分散トレーニングみたいな解決策が出てきた。これで複数のデバイスが一緒に作業できるんだ。分散トレーニングのためのいくつかの戦略も作られていて、データ並列処理、モデル並列処理、パイプライン並列処理がある。これらの方法はトレーニングを早めるのに役立つけど、大きなモデルのトレーニングはまだ時間がかかることが多くて、場合によっては数日や数週間かかることもある。
最適なトレーニング戦略を見つけるのは超重要なんだけど、選択肢が多すぎて複雑になることもあるんだよね。標準的な分散トレーニングでは、実際のトレーニングが始まる前に最適な方法を見つけるのにかなりの時間とお金を使うのが普通だから、いろんなトレーニング戦略を評価するための正確でコスト効果の高いツールが必要だってことになる。
分散DNNトレーニング
データ並列処理
データ並列処理では、すべてのデバイスが同じモデルを使って、異なるデータのバッチで作業する。各デバイスは自分の部分を計算して、それを結合してモデルを更新する。この方法はバッチサイズを大きくして、収束を早めることができる。データ並列処理には、パラメータサーバーとリングオールリデュースの2つの主なタイプがあって、それぞれデバイスが計算したデータを共有する方法がある。
モデル並列処理
モデル並列処理は、モデルそのものを複数のデバイスに分割することを含む。各デバイスはモデルの一部を保持して、その出力を計算し、結合される。この方法は、フルモデルが単一のデバイスのメモリに収まらないときに便利だよ。
パイプライン並列処理
パイプライン並列処理はモデルをステージに分けて、各ステージが異なるデバイスによって処理されるようにする。デバイスはより効率的に時間を使えるようにシーケンスで計算する。ただし、デバイスは入力を待ってしまうことがあって、「パイプラインバブル」と呼ばれる非アクティブな期間が生じることもある。これらの待機時間を減らし、効率を改善するためにいろんなテクニックが導入されている。
ハイブリッド並列処理
ハイブリッド並列処理は、異なる戦略を組み合わせて、それぞれの強みを活かす。たとえば、モデルはデータとモデルの並列処理を両方使って、複数のデバイスで効果的に動作することができる。このアプローチは、大規模トレーニングのセットアップで注目を集めている。
分散トレーニングの課題
進展があっても、大きなモデルのトレーニングはまだ時間がかかるし高くつく。実際の分散システムでトレーニングを直接プロファイリングするには、高価なクラスターへのアクセスが必要なんだけど、多くの小規模な機関はそれが持てない。だから、小さな組織は高額でこれらのクラスターをレンタルする結果になることが多い。
パフォーマンスを推定する既存の方法、例えば分析モデルは、しばしば不正確なんだ。これらは通常、計算時間を単に操作数やデバイスの能力に基づいて分けると仮定するけど、それが実際のトレーニングシナリオを反映するとは限らないんだ。
直接プロファイリングには利点があるけど、多くのデバイスで作業する際には高いオーバーヘッドコストもある。さらに、現在のシミュレーターは主にデータ並列処理に焦点を当てていて、ハイブリッドトレーニング戦略の複雑さには十分に対応していない。
DistSimの導入
これらの課題を解決するために、DistSimという新しいツールが作られた。DistSimは、大きなクラスターでの広範なプロファイリングを必要とせずに、さまざまなハイブリッドトレーニング戦略のパフォーマンスを分析するために設計されている。トレーニングを「イベント」に分解することで評価プロセスを簡単にして、これは伝統的なプロファイリングのオーバーヘッドなしで測定できる独特の操作を表すんだ。
DistSimの主な特徴
- イベントベースの分析: DistSimは、デバイス間で似たような操作を特定してグループ化することで、プロファイリングの必要性を減らす。各デバイスがすべての操作をプロファイリングする代わりに、ユニークな操作だけを測定するんだ。 
- 階層的依存関係認識: DistSimは、異なる並列戦略にはそれぞれの依存関係があることを認識している。たとえば、データ並列処理の通信ニーズはモデル並列処理とは異なる。これらの関係を理解することで、DistSimはトレーニングプロセスをより効果的にモデルできる。 
- 正確な推定: DistSimのユニークなアプローチにより、トレーニングを完了するのにかかる時間や、各デバイスがプロセス全体でどのように利用されるかを正確に予測できる。これにより、研究者は分散トレーニングの設定についてより情報に基づいた決定ができる。 
- コスト効果の高いプロファイリング: プロファイリングが必要なデータの量を減らすことで、DistSimはさまざまなトレーニング戦略を評価するのに必要な時間とお金を大幅に削減できる。 
DistSimの動作方法
イベントの生成
初期設定の際に、DistSimはトレーニングプロセス内で発生する操作を表す一連のイベントを生成する。このステップでは、モデルと選択した並列戦略を分析して、すべての異なる計算と通信タスクを特定する。
イベントのプロファイリング
イベントを生成した後、DistSimはそれらをプロファイリングしてタイミングデータを収集する。計算イベントは比較的簡単にプロファイリングできるけど、通信イベントには複数のデバイスが関与することが多いから、追加の考慮が必要。DistSimはポイントツーポイント通信とオールリデュース通信を区別して、これらの操作の正確なタイミングを得る。
階層モデル化
DistSimは、異なる並列戦略からのイベントデータを組み合わせて完全なトレーニングタイムラインを構築する。これにより、すべての依存関係が正しく考慮され、各デバイスが計算や通信を行うタイミングを示す詳細なタイムラインが得られる。
DistSimの評価
全体の正確性
広範なテストで、DistSimはさまざまな戦略やモデルの反復時間を正確に予測できることが示されている。その予測は実際のトレーニング結果と比較して非常に低いエラーレートを持っている。この正確性は、ユーザーがこのツールを使って効果的なトレーニング戦略を選択できる自信を提供する。
GPUレベルの評価
DistSimは、トレーニング中に各個別GPUがどのように使用されているかについての洞察を提供することで、より詳細なレベルでパフォーマンスを評価することもできる。この情報を使って、全体的な効率を改善するための調整ができる。
ステージごとの正確性
このツールはトレーニングの各ステージのタイミングを評価して、非効率が発生する可能性のある領域を特定する。異なるマイクロバッチのタイミングを分析することで、ユーザーはパイプラインバブルや他のボトルネックを特定できる。
ユースケース: 戦略検索
DistSimの注目すべき用途の一つは、実際のトレーニングが始まる前に最適なトレーニング戦略を検索できることだ。グリッドサーチという方法を使ってさまざまな構成を評価することで、特定のモデル向けに最適なハイブリッドトレーニング戦略を迅速に特定できる。
例の結果
あるケースでは、研究者たちがDistSimを使って「BERT-exLarge」というすごく能力のあるモデルを評価した。このツールは、データ並列処理とパイプライン並列処理の組み合わせを見つけ出してスループットを最大化するのに役立った。この最適な構成を見つける能力は、時間やリソースを節約したい研究者にとって貴重なんだ。
結論
DistSimは、分散DNNトレーニングに関わる人たちにとって強力なツールとして際立ってる。プロファイリングプロセスを簡素化して、パフォーマンスの正確な予測を提供することで、研究者や実務者がトレーニングの設定についてより情報に基づいた決定を下せるようにしてる。コストを削減したり効率を改善したりすることで、DistSimは大規模モデルのトレーニングのやり方を大きく向上させる可能性があるんだ。
要するに、DistSimはイベントベースの革新的なフレームワークを提供して、最小限のプロファイリングコストでトレーニングパフォーマンスを正確に予測し、分散トレーニングの主要な課題に取り組んでいる。これは、DNNトレーニングの最適化を目指す研究者や組織にとって貴重なリソースになるんだ。
タイトル: DistSim: A performance model of large-scale hybrid distributed DNN training
概要: With the ever-increasing computational demand of DNN training workloads, distributed training has been widely adopted. A combination of data, model and pipeline parallelism strategy, called hybrid parallelism distributed training, is imported to tackle the problem of deploying large-scale models. However, how to evaluate the hybrid strategy and the utilization of each device remains a challenge since existing works either profile on a real large-scale cluster with high time and money costs or only analyze a specific type of parallelism without considering the hybrid parallelism. In this work, we proposed DistSim, an event-based performance model to accurately analyze each device's computation and communication activities with low profiling costs. DistDim breaks down the model into events according to the given distributed strategy, which can be profiled on two nodes. Then DistSim leverages the hierarchy of different parallel strategies to generate the computation and communication event-flow from layer level to model level and finally the activity timeline of each device participating in training. Experiment shows that DistSim can reach \revise{
著者: Guandong Lu, Runzhe Chen, Yakai Wang, Yangjie Zhou, Rui Zhang, Zheng Hu, Yanming Miao, Zhifang Cai, Li Li, Jingwen Leng, Minyi Guo
最終更新: 2023-06-14 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2306.08423
ソースPDF: https://arxiv.org/pdf/2306.08423
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。