ホームページ >テクノロジー周辺機器 >AI >Deepseekがリリースした最適化された並列処理戦略

Deepseekがリリースした最適化された並列処理戦略

Lisa Kudrow
Lisa Kudrowオリジナル
2025-03-03 18:34:10261ブラウズ
? #opensourceweekの4日目:最適化された並列系戦略

dualpipe - V3/R1トレーニングでの計算共産化のオーバーラップのための双方向パイプライン並列系アルゴリズム。 https://t.co/gbtxsvwlt4

eplb - v3/r1。
このリリースは、1日目のFlashMLの発売の成功、2日目のDeepep、およびDeepGemmの3日目の発売に続いて、オープンソースウィークのお祝いの4日目をマークします。 目次

技術的な詳細

階層ロードバランシング

グローバル負荷分散

    プロファイリングデータ
  • 将来の方向
    • 結論
    • パイプラインの並列性を理解
    • パイプライン並列性は、モデルのトレーニングシーケンスのさまざまなセグメントの同時処理を促進するアプローチです。モデルを分割し、複数の入力を一度に処理することにより、パイプラインの並列処理はトレーニング期間を著しく略すことができます。しかし、従来のパイプラインの方法論は、パフォーマンスを損なうアイドル間隔や「バブル」を含む非効率性が発生しやすいです。これらの非効率性を改善し、全体的な効率を高めるために、デュアルパイプのような革新が導入されています。 深い学習の中で、「パイプラインのバブル」という表現は、パイプラインの並列トレーニング中のGPUの不活性の間隔を特徴付けます。パイプラインのセグメントが停止し、先行セグメントからのデータが保留されています。これにより、計算進行で「ギャップ」または「バブル」が生成され、非効率的なGPUリソ​​ース管理が頂点に達します。

      dualpipe:双方向パイプライン並列性

      デュアルパイプは、洗練された双方向パイプライン並列系アルゴリズムであり、前方と後方の計算コミュニケーションフェーズ間のオーバーラップを最大化することを目的としています。このアプローチは、パイプラインの泡を減らすのに特に有益であり、トレーニングの効率を大幅に妨げる可能性があります。

      重要な機能

      • 完全なオーバーラップ:前方フェーズと後方フェーズの完全なオーバーラップを達成し、リソースが効果的に利用されるようにします。
      • パイプラインバブルの削減:
      • トレーニング中のアイドル時間を最小限に抑え、リソースの使用率が強化され、トレーニング時間が速くなります。
      • 技術的な詳細

      アルゴリズムのパフォーマンスは、8つのPPランクと20のマイクロバッチを含むスケジューリングの例を通じて説明できます。逆方向のマイクロバッチは、前方向のマイクロバッチと対称であり、図を単純化します。 メソッド

      バブル

      Method Bubble Parameter Activation
      1F1B (PP-1)(? ?) PP
      ZB1P (PP-1)(? ?-2?) PP
      DualPipe (PP/2-1)(?&? ?-3?) PP 1
      パラメーター activation 1f1b (pp-1)(??) 1× pp zb1p (pp-1)(??-2?) 1× pp dualpipe (pp/2-1)(?&?-3?) 2× pp 1

      ここで:

      • ?:フォワードチャンクの実行時間
      • ?:完全な後方チャンクの実行時間
      • ?:「重量のための後方」の実行時間
      • ?&?:2つの相互に重複する2つの実行時間

      Deepseekがリリースした最適化された並列処理戦略

      の例8 pp(パイプライン並列性)ランクと20のマイクロバッチのデュアルパイプスケジューリング構成、2つの方向に焦点を当てています。逆方向に処理されたマイクロバッチは、前方向のマイクロバッチをミラーリングし、図を簡素化するためにバッチ識別子を省略することができます。一般的な黒い境界線を共有する2つのセルが、計算と通信のタスクの重複に関与しています。

      詳細については、dualpipe githubリポジトリ

      をご覧ください

      eplb:Expert-Parallel Load Balancer

      EPLB、またはExpert-Parallel Load Balancerは、V3/R1トレーニングでの負荷分散を最適化します。複数の処理ユニットにワークロードを効率的に配布し、全体的なパフォーマンスを高めます。

      キー機能

      専門家の並列性:エキスパートモデルを利用して負荷のバランスを効果的にバランスさせ、各処理ユニットがその潜在能力を最大限に活用していることを確認します。
        ダイナミックロードバランシング:トレーニング中のさまざまなワークロードに適応し、最適なパフォーマンスを維持するためのリアルタイム調整が可能です。
      • 技術的な詳細
      • EPLB(効率的なパイプライン負荷分布)は、アクセス可能なリソースへのタスクの賢明な割り当てを目指して、アイドル間隔を減らし、スループットを強化します。この方法論は、さまざまなモデルやタスクが異なるレベルの計算能力を必要とするコンテキストで重要性が高まっています。
      ロードバランシングアルゴリズムは、さまざまな状況に合わせた2つの異なるポリシーを採用しています。

      階層荷重バランシング

      サーバーノードの数がエキスパートグループカウントに均等に分割されると、階層ロードバランシングポリシーがアクティブになります。この戦略は、バランスの取れた負荷分布を促進する方法で最初に専門家グループをノードに編成することにより、グループ制限された専門家ルーティングを活用します。その後、各ノード内で専門家の複製が発生し、負荷平衡を維持します。最終的に、これらの複製された専門家は個々のGPUに割り当てられ、それにより異なるGPUで負荷バランスを達成します。階層的な負荷分散ポリシーは、より小さなエキスパートパラレルサイズを扱うときのプレフィング段階に特に適しています。

      グローバルロードバランシング

      逆に、サーバーノードのカウントが専門家グループを分割しない場合、グローバルロードバランシングポリシーが実装されます。このアプローチには、専門家グループ内でのグループ化に関係なく、専門家のグローバルな複製が含まれます。複製に続いて、専門家は個々のGPUに均等に分布し、GPU全体で負荷バランスが維持されるようにします。グローバルロードバランシングポリシーは、より大きなエキスパート並列サイズを処理するときにデコード段階で適用されます。

      の例コード:

      import torch
      
      import eplb
      
      weight = torch.tensor([[ 90, 132,  40,  61, 104, 165,  39,   4,  73,  56, 183,  86],
      
                             [ 20, 107, 104,  64,  19, 197, 187, 157, 172,  86,  16,  27]])
      
      num_replicas = 16
      
      num_groups = 4
      
      num_nodes = 2
      
      num_gpus = 8
      
      phy2log, log2phy, logcnt = eplb.rebalance_experts(weight, num_replicas, num_groups, num_nodes, num_gpus)
      
      print(phy2log)

      output:

      tensor([[ 5,  6,  5,  7,  8,  4,  3,  4, 10,  9, 10,  2,  0,  1, 11,  1],
      
               [ 7, 10,  6,  8,  6, 11,  8,  9,  2,  4,  5,  1,  5,  0,  3,  1]])

      Deepseekがリリースした最適化された並列処理戦略

      視覚表現は、12人の専門家で構成される各層で、専門家(MOE)の混合物の二重層構成を示しています。モデルの堅牢性を高め、バックアップメカニズムを作成するために、各層に4人の専門家を紹介します。この変更は、バックアップとして機能するティアごとに16人の専門家の累積合計につながります。システムは、2つの計算ノードにこれらの専門家を複製および配布し、各ノードには4つのGPUを含みます。階層的な負荷分散ポリシーを適用し、計画に従って専門家の戦略的複製と割り当てを実証します。

      詳細な実装手順については、EPLB GitHubリポジトリを参照してください。

      プロファイリングデータ:計算とコミュニケーションのオーバーラップの分析

      V3/R1の計算共産化の重複を効果的に分析するために、プロファイリングデータは重要な洞察を提供します。パフォーマンスとトレーニングプロセスの最適化のボトルネックは、このデータを使用して理解できます。

      キー機能

      包括的な分析:このアプローチは、計算段階と通信フェーズの広範な評価を提供し、システムパフォーマンスメトリックの深い理解を促進します。

      パフォーマンスの洞察:トレーニング効率を向上させる機会を特定し、開発者に最適化の取り組みを導く重要な情報を提供します。

        トレーニングプロファイリングデータ
      トレーニングプロファイルデータは、デュアルパイプ内の個々の前方および後方チャンクを重複する戦略を示しています。各チャンクには、4層の専門家(MOE)の混合物が組み込まれています。並列構成は、eP64(エポック64)とTP1(1つのトークン付きの時間パディング)構成を使用して、4KのTP1(1つのトークン付きの時間パディング)構成を使用して、DeepSeek-V3の事前トレーニングで使用される設定と一致します。物事をシンプルに保つために、プロファイリング中にPP(パイプライン並列性)通信を除外します。

      詳細とプロファイリングデータにアクセスするには、プロファイリングデータGitHubリポジトリにアクセスしてください。

      実際のアプリケーション

      デュアルパイプとEPLBの実用的なアプリケーションは、自然言語処理、コンピュータービジョン、補強学習などの多様な分野で奨励される結果を実証しています。トレーニングプロセスを改善することにより、これらの方法論は、迅速なモデルの収束と高度化された精度を促進し、研究者と実践者の両方にとって不可欠な手段であることが証明されました。

      将来の方向

      深い学習の分野が進むにつれて、より効率的なトレーニング方法の需要がエスカレートする可能性があります。将来の調査は、おそらく両方の利点を和らげるハイブリッドモデルを調査することにより、デュアルパイプとEPLBの有効性を増幅することに集中する可能性があります。さらに、これらの戦略と量子コンピューティングを含む最先端のテクノロジーとの統合は、最適化のための新しい経路を開く可能性があります。

      結論

      デュアルパイプとEPLBを介した並列処理戦略の進捗状況は、深い学習トレーニング手順を改良する際にかなりの進歩を示しています。これらのアルゴリズムを活用することにより、研究者と実践者の両方が優れたリソース利用とトレーニング期間を加速し、より効率的なモデル作成に至ります。プロファイリングデータの同化により、これらのプロセスを調整する能力が増え、ディープラーニングの急速な進歩の軌跡が続くことを保証します。

以上がDeepseekがリリースした最適化された並列処理戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。