ホームページ >テクノロジー周辺機器 >AI >Beidahetu が、ワンクリックで大規模モデルの効率的かつ自動並列化を実現する分散トレーニング アーティファクトである Galvatron をリリース
昨今、AI分野のさまざまな応用シーンで「大規模モデル」が活躍していますが、その中でもTransformerをベースとした大規模事前学習モデルは最も代表的な大規模モデルの一つであり、現在の基礎となっている、ファウンデーションモデルの中核となるアーキテクチャ。例えば、NLP分野のBERTやGPTシリーズ、CV分野のViTやSwin Transformerシリーズ、さらには最近人気のマルチエキスパートハイブリッドモデルMoEやマルチモーダルモデルCLIPなどはいずれもTransformerを採用しています。コアインフラストラクチャ。同様に、このような高密度の大規模モデルには、数十億、数百億、さらには数兆に及ぶパラメータが含まれることが多く、コンピューティング、ストレージ、通信のオーバーヘッドが高く、AI インフラストラクチャにも大きな課題をもたらします。
大規模なモデルのトレーニングをサポートするために、人々は多くのツールを開発してきました (NVIDIA が提案する Megatron、Microsoft が提案する DeepSpeed、Meta が提案する FairSeq など)さまざまな並列手法、データ並列、テンソルモデル並列、パイプライン並列、シャードデータ並列などを実現します。これらのシステムは、上記の並列メソッドを適切にカプセル化し、対応する実装の詳細を外部から保護するため、ユーザーは構成を追加することでハイブリッド並列戦略を実装できます。
上記の考えに基づいて、テンソルまたは演算子レベルでさまざまな並列メソッドを表現する方法に焦点を当てた多くの作業が行われてきました。このタイプの作業の「自動化」は次のとおりです。これは主に、並列 API から実行層への変換プロセスに反映されます。ただし、並列 API または中間式の設計にのみ限定されている場合、このエンジニアリング カプセル化は分散トレーニングの問題を根本的に解決することはできません。最も直観的な結果は、ユーザーがまだ分散展開の問題から解放されていないということです。実際、大規模なモデルの分散デプロイは非常に複雑な問題であり、現在の分散トレーニング システムのほとんどは、ユーザーの手動による繰り返しの試行とシステム専門家の経験に依存してデプロイされており、リソース利用効率が低いという深刻な問題が発生しています。真の「自動並列処理」とはかなりの隔たりがあります。
これに基づいて、Beidahetu チームは、大規模モデルの効率的な自動並列化を実現する分散トレーニング アーティファクトである Galvatron を提案し、この研究論文はトップ国際会議 VLDB 2023 に選ばれました。
研究者らは、大規模モデルの自動並列化の難しさは主に次の 3 つの側面に反映されていると考えています。
(1) 多様性:まず、並列手法に関して言えば、現在の大規模モデルの並列手法が開花しており、同じ演算子であっても、並列手法が混在しても、異なる手法が存在します。並列メソッド 基礎となる並列処理メソッドにも大きな違いがあり、その結果、メモリ オーバーヘッド、通信コスト、計算効率が異なります。次の図は、データ並列処理、テンソル並列処理、パイプライン並列処理、およびシャード データ並列処理という 4 つの最も重要な基本的な並列手法を示しており、Zhang GPU での単純な行列乗算演算子の分散実行プロセスを示しています。
#並列方式の比較図
第二に、モデルに関しては、最近さまざまなモデル アーキテクチャが際限なく登場しており、多くの場合、異なるモデル構成 (異なる入力シーケンスの長さ、モデル層の数、モデルの隠れ層の幅など) を伴います。 .)、これにより計算負荷が異なります。さらに、ハードウェアに関しては、ユーザーは非常に差別化されたクラスター環境に直面することが多く、異なるメモリ容量、通信帯域幅、コンピューティング能力などに直面する可能性があります。一般に、前述の多様性により、常に最良のトレーニング効率を達成できる並列テクノロジはなく、「自動並列処理」が分散トレーニングの中核的な課題となっています。
(2) 複雑さ: 上記の分析は比較的単純です。実際には、同じ演算子であっても、複数の異なる基本的な並列手法を同時に適用できます。これらの基本的な並列手法の組み合わせを考慮すると、並列手法、混合並列手法では、問題が非常に複雑になります。さらに重要なのは、大規模なモデルの計算グラフは非常に大きな構造を持つことが多く、より大きなクラスターが必要になるため、各演算子を検討する (クラスター内の適切なコンピューティング リソースの選択や、対応するハイブリッド並列手法の設計を含む) と、問題が発生します。組み合わせ空間が爆発的に増加し、モデル全体に最適な分散実行プランを見つけることが困難になります。
(3) 実用性: さらに、実用性も非常に重要な問題です。一方で、自動並列検索のプロセスでは、さまざまな分散実行ソリューションに対して、比較的正確なメモリ、通信、およびコンピューティングのオーバーヘッドを提供する必要があります。そうでないと、結果が実際の実行から大きく乖離し、次善のソリューションが得られたり、全く使用できません。この目的を達成するには、さまざまなモデル構造とハードウェア条件をモデル化するための非常に正確なコスト モデルが必要です。一方、システムの自動並列機能によって生じる追加の時間オーバーヘッドは許容範囲内である必要があり、過度に高い検索コストも許容できません。
システムの機能:
上記の問題を解決するために、研究者はハイブリッド並列自動検索を検討するための一連の研究を提案しています: ある種類の研究では主にデータ並列性とモデル並列性の両方を考慮した検索空間について議論しています。代表的な研究には FlexFlow、 Tofu らは、主にデータ並列性とモデル並列性の両方を考慮した検索空間について議論しており、1 つはパイプライン並列シナリオから生成し、データ並列性と組み合わせたもので、代表的な作品としては PipeDream や DAPPLE があります。これに基づいて、自動並列探索の範囲をさらに拡大する Unity や Alpa などの派生作品もいくつかあります。 Beidahetu チームが提案したシステム「Galvatron」も自動並列検索の研究分野に属しますが、既存の研究と比較して、このシステムには主に次の 3 つの利点があります。 ) 多様性の観点から見ると、既存の作業がサポートできる並列次元はまだ比較的限られており、Galvatron はより多くの並列次元をサポートできるだけでなく、より差別化された Transformer モデル構造を正確にモデル化することもでき、その適応調整機能では、さまざまなクラスター ハードウェア条件で検証されています。
#大規模モデル分散学習システムの比較図
# (2) 複雑さの点では、多様性の利点により、ガルバトロンは前例のない大規模な検索空間に直面しています。この目的のために、研究者は、現在の大規模分散トレーニング プロセスのいくつかのプロセスを調査しました。または理論的に検証されたものは、検索スペースの枝刈り基準として機能するため、効率的な分散実行プランの最適化が可能になります。
(3) 実用性の観点から、この研究は理論的モデリングと実験的測定の利点を組み合わせて、メモリ、通信、およびコンピューティングのオーバーヘッドの正確な推定を達成し、さらには計算と通信の重複による GPU 実行効率の低下の問題を解決し、十分に正確な自動並列最適化結果を確実に取得できます。
さらに、Galvatron は最下層の実行エンジンとして PyTorch を選択します。これは、Huggingface などの一般的な主流の Transformer モデル実装と互換性があるため、PyTorch に追加の負担がかかることはありません。同時に、ユーザーはシステムのインストールやデバッグに追加のコストを支払う必要がなく、使用時に数行のコードを追加するだけで、自動並列化のプロセス全体を簡単に完了できます。
#Galvatron ワークフローとユーザー インターフェイスの表示
主要テクノロジー
1. デシジョン ツリーに基づく検索空間の分解#
Galvatron の設計目標は、複雑で大規模な並列ポリシー空間内を効率的に自動的に検索し、特定の Transformer モデルと分散環境に最適な並列実行プランを生成することです。検索スペースの観点から見ると、Galvatron は、データ並列処理 (DP)、シャード データ並列処理 (SDP)、テンソル並列処理 (テンソル並列処理) を含む 4 つの主流の並列手法を考慮した業界初の自動並列トレーニング システムです。パイプライン並列処理 (PP)。ハイブリッド並列戦略には、上記 4 つの並列アルゴリズムの任意の組み合わせが含まれるため、この組み合わせによってもたらされる検索スペースは、マルチ GPU シナリオでは非常に大きくなります。たとえば、デュアル マシンの 4 枚のカードのシナリオでは、実行可能な戦略の 1 つは、マシン内で 2 方向 TP を使用し、マシン間で 2 方向 PP を使用することです。もう 1 つの実行可能な戦略は、マシン内およびマシン間で 2 方向 PP を使用することです。 . 双方向DPを使用します。ノード内の GPU の数が 8 カードに拡張されると、モデルの各レイヤーに数百の候補戦略が存在します。モデル レイヤーの数が増えると、その検索空間のサイズが指数関数的に増加し、効果的に探索することが困難になります。
このような巨大な検索空間を効率的に検索するために、この研究ではまず、ガイドとして次の観察結果を提案しています。
上記の重要な観察に基づいて、この研究では、決定木に基づく検索空間構築方法を提案します。
(1) Takeway#1 と Takeway#2 に基づく変圧器モデルが与えられると、Galvatron はまず PP を使用してモデルを複数の段階に分割し、同時に機器を均等かつ連続的に複数の機器グループに分割します。たとえば、8 カード シナリオでは、モデルは 1/2/4/8 ウェイ PP に分割され、それぞれ 8/4/2/1 のデバイス グループ サイズに対応します。
(2) 各 PP セグメンテーションは決定木とサブ探索空間に対応し、決定葉ノードの総数はデバイス グループのサイズとデバイス グループの高さになります。デシジョン ツリーは利用可能な並列メソッドです。つまり、デシジョン ツリーの各レベルに 1 つの並列戦略を適用できます。
(3) 並列戦略は、デシジョン ツリーの異なるレベル間で再利用できません。
(4) 非リーフ ノードの次数は、デフォルトでは 2 の指数乗 {2,4,8,…} から選択されます。
上記のデシジョン ツリー構築ルールに基づいて、Galvatron によって構築されたデシジョン ツリーは、上記の並列処理の任意の組み合わせを表すことができます。 Takeway#1 と Takeway#2 は、ガルバトロンが非効率的な並列組み合わせを回避し、検索スペースを削減するのに役立ちます。 8 カード GPU で 1 層モデルをトレーニングするシナリオの場合、上記のルールにより 34 個のハイブリッド並列戦略の候補が生成されます。さらに、Takeway#3 を使用して DP と SDP がデシジョン ツリーに同時に現れる状況を枝刈りした後、8 カードの候補戦略の数は 22 に減ります。
次の図は、8 カード GPU シナリオにおけるさまざまな PP 並列処理 (8/4/2/1) でのデシジョン ツリーの概略図を示しています。
8 カード GPU シナリオにおけるさまざまな PP 並列処理 (8/4/2/1) でのデシジョン ツリーの概略図
2 . 動的プログラミングに基づく並列最適化アルゴリズム
Megatron や DeepSpeed などの既存のシステムでは、通常、ユーザーがグローバル並列スキームとそれに対応する並列度を指定します。実行計画を表現するための分散機能の使用が大幅に制限されます。 Galvatron の最適化の目標は、ユーザーにモデル定義と分散環境が与えられたときに、ユーザーが並列構成を指定することなく、最適な分散実行プランを自動的に生成することです。具体的には、メモリ容量 E の L 層モデル M および N GPU デバイスが与えられた場合、Galvatron の最適化目標は、最高のシステム スループット T_pt を検索し、対応する並列解を返すことです。ここでの並列解とは、層 (または演算子) を指します。 )きめの細かいハイブリッド並列戦略の基本単位として使用されます。
#アルゴリズム 1: Galvatron 最適化プロセス
##最適化プロセス: Galvatron の最適化プロセスをアルゴリズム 1 に示します。 Galvatron の最も外側のループは、デバイス メモリを超えるまで検索バッチ サイズを徐々に増やします。各候補バッチ サイズ B が与えられると、Galvatron は最初に Takeaway#1 に従ってモデル PP を分割し、P を選択した後、異なる並列度 P を検索します (4 行目)。 -way PP では、モデルは P 段階 (6 行目) に分割され、対応するすべての機器は P グループに分割され、各グループには N/P 機器が含まれます。その後、ガルバトロンは、DP の任意の組み合わせを表すことができる対応するデシジョン ツリーを構築します。 、SDP、および TP を重複または省略せずに実行し、戦略セット S を取得します。次に、各モデル ステージ M_i に対して、デバイス メモリ制限 E の下で、ガルバトロンは動的計画法検索を使用して各層の最適なハイブリッド並列戦略を取得し、最小時間を返します。コスト (9 行目); 最後に、Galvatron は、考えられるすべての PP 並列処理とバッチ サイズの中で最高のスループットを持つ戦略を選択し、それを返します (15 行目)。
動的計画検索: 以下では、Galvatron 並列最適化ワークフローにおける動的計画検索アルゴリズムを紹介します。 L 層を含む特定のモデル ステージの場合、コスト関数 C(L,E) を使用して、デバイス メモリ制限 E の下での L 層モデルの合計実行時間を表し、次の戦略を使用した L 層の実行時間を表します。 S_j、ここで戦略 S_j は並列戦略候補セット S 内の戦略です。初期値
を設定すると、Galvatron の動的計画法探索は次の状態遷移方程式 (式 1) に従います。
#このうち、は、戦略 S_j を使用した層 L のメモリ オーバーヘッド、# です。 # # は、戦略 S_j を使用する L 番目の層と戦略 S_i を使用する前の層によって生じる変換オーバーヘッドです。状態転送プロセス中に、メモリ オーバーヘッドがデバイス メモリ制限デバイス メモリ制限 E を超えると、オーバーヘッド関数 C は無限大を返します。 複雑さの分析: Galvatron で使用される動的計画法探索 (式 1) の計算複雑さは O(LE|S|) です。各層の探索空間 S のサイズは全体的な探索の複雑さにとって非常に重要であることがわかります. Galvatron によって提案された決定木に基づく探索空間分解は探索空間を大幅に削減し, 妥当な範囲内で探索オーバーヘッドを制御できます範囲。
3. ハイブリッドモデリングに基づく実行コスト見積り手法
Galvatron は、ポリシー コスト推定モジュールを使用して、ハイブリッド並列戦略のコンピューティング、通信、およびメモリのコストを推定します。従来のコスト見積り手法には主に計測(プロファイリング)とシミュレーション(シミュレーション)がありますが、ガルバトロンは両者の長所を活かし、低コストで効率的かつ正確なコスト見積り手法を設計します。具体的には、メモリ オーバーヘッドの場合、ガルバトロンはテンソルの形状とデータ型を使用して推定を完了します。計算時間の場合、ガルバトロンは単一デバイスでのプロファイリングを通じてサンプルごとの計算時間を測定し、バッチ サイズとフィッティング関数を組み合わせて、全体の計算時間を推定する; 通信時間については、ガルバトロンは理論的に計算した通信量とプロファイリングによる通信帯域の測定により、通信量をデバイスの通信帯域幅で除算して推定通信時間を求めます。 上記の推定結果に基づいて、Galvatron は、シミュレーション実行プロセスを通じて、指定された戦略を使用して、指定された層のコスト c(l,s) を計算します。既存の分散トレーニング システムのコスト モデルとは異なり、Galvatron はモデリングにおいて初めて、GPU パフォーマンス低下に対するコンピューティングと通信の重複の影響を考慮しています。この研究では、以前の研究では無視されていた、オーバーラップによる GPU パフォーマンスの低下がシステムの実行効率に大きな影響を与える可能性があることを実験的に発見しました。その結果、Galvatron のコスト見積もりはより正確になり、並列最適化がより適切になります。 実験設定: 実験では、研究者は単一の並列戦略を使用して Galvatron と 4 つのベースライン システム (DP、SDP、TP、PP) を組み合わせました。専門家によって設定された DeepSpeed 3D Parallelism との比較では、限られた並列戦略の組み合わせ空間 (つまり、TP DP、PP DP) で自動並列検索を実行するための補助ベースラインとして、Galvatron の 2 つの追加の弱体化バージョンが設定されました。この研究では、NLP トランスフォーマー モデル BERT および T5、CV トランスフォーマー モデル ViT および Swin Transformer を実験対象として選択しました。 #8 GPU と 20G ビデオ メモリでの Galvatron システムとベースライン システムのスループットの比較 ##実験比較効果: この研究では、まず 8 枚のカード Nvidia RTX TITAN 24GB 環境で実験を実施しました。実験の結果、さまざまなモデル サイズとさまざまなメモリ制約の下で、Galvatron は常に最適なスループットを達成し、既存の最先端の単一並列手法やハイブリッド並列手法と比較して、トレーニング スループットが大幅に向上することが示されています。具体的には、ViT モデルでは、Galvatron のスループット加速率は単一戦略と比較して最大 338% に達し、他のハイブリッド並列戦略と比較して最大 55% に達することができます。他の 3 つのモデルでは、単一戦略と比較して既存の混合戦略と比較すると、Galvatron の加速率は最大 200% ~ 334% および 28% ~ 52% になります。 Galvatron 探索によって得られた部分最適並列戦略の図 #解釈可能性実験: この研究では、表示用にガルバトロン検索によって得られたいくつかの最適な並列戦略を選択しました。 8GB の BERT モデル (ケース A) の場合、Galvatron は 2 つのハイブリッド パラレル ストラテジ PP-TP-DP および PP-TP-SDP を選択しました。利用可能なビデオ メモリが 12GB に増加すると、Galvatron は PP を放棄し、より多くのメモリを使用することを選択しました。複数の DP、およびビデオ メモリ領域を節約するために SDP が導入されています。 Swin Transformer では状況が少し異なります。モデルの異なる層は明らかな異質性を示します。メモリが比較的不足している場合 (ケース C)、浅い SDP の並列性が高くなります。層の数が増加するにつれて、各層の活性化は小さくなります。パラメータが増えると、徐々に TP が SDP に置き換わります。ビデオ メモリが増加すると (ケース D)、PP が非効率な SDP の一部を置き換えるために再び有効になるだけでなく、浅いレイヤはより明らかに DP を使用する傾向があります。 スケーラビリティ実験: この調査では、16 個の Nvidia RTX TITAN GPU を備えた環境と GPU 用の 64 枚のカード Nvidia A100 環境を含む、より大規模なクラスターで Galvatron をさらにテストしました。 16 カード環境でも、Galvatron は他の戦略と比較して最高のスループットを維持しており、同じメモリ制限を持つ 8 枚のカードの実験結果と比較して、より多様なハイブリッド並列戦略により、Galvatron は 2 倍以上のスループットを得ることができます。 16 枚のカードで高速化率。 64 枚のカードの実験では、ガルバトロンは他の戦略の中で最も高いスループット レートを示しました。これは、Galvatron が優れたスケーラビリティを備えていることを示しています。詳細な結果は元の論文に記載されています。 Hetu 開発チームは、北京大学のデータおよびインテリジェンス研究室 (以下、研究室) から来ており、研究室のリーダーは中国大学の崔斌教授です。北京大学コンピュータサイエンス学部は、長年にわたり主に人工知能とビッグデータの分野で最先端の研究を実施し、理論的・技術的革新とシステム研究開発において多くの成果を上げており、論文も出版されています。主要な国際学会やジャーナルに掲載され、100 を超える学術論文を掲載。 Hetu システムは、非常に大規模なモデル用の分散ディープ ラーニング システムです。既存の古い分散ディープ ラーニング フレームワークと比較して、システム機能、システムの複雑さ、システムの容易さの点で利点があります。自動分散並列戦略、一貫性のあるプロトコルと通信アーキテクチャ、GPU オペレーターの最適化など、使いやすさの点で多くの革新的な貢献が行われています。 Hetu チームは現在、さまざまな分散機械学習または深層学習シナリオで学術的なイノベーションを実行しており、関連する成果は SIGMOD、VLDB、ICML、KDD などの主要な国際会議に組み込まれています。その中で、疎大モデルは分散トレーニング システム HET が VLDB 2022 最優秀賞、Jia Ke Scalable Data Science Paper Award を受賞。 VLDB 2023 に受理された論文である Galvatron は、Hetu チームが高密度大モデル分散トレーニング シナリオで達成したもう 1 つの画期的な進歩であり、Hetu システムに統合されており、オープンソースです。現在、Hetu チームは Tencent、Alibaba、Kuaishou、ByteDance などの多くの有名企業と科学研究協力とアプリケーション実装を行っています。 実験結果
Beida Hetu チームの紹介
以上がBeidahetu が、ワンクリックで大規模モデルの効率的かつ自動並列化を実現する分散トレーニング アーティファクトである Galvatron をリリースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。