用語集

分散トレーニング

分散トレーニングでAIトレーニングを加速複雑なMLプロジェクトにおいて、トレーニング時間を短縮し、モデルを拡張し、リソースを最適化する方法を学びましょう。

分散トレーニングは、機械学習(ML)で使用される手法で、計算負荷を複数のプロセッサに分割することで、モデルのトレーニングプロセスを高速化する。これらのプロセッサは、多くの場合GPU(Graphics Processing Unit)であり、単一のマシンに配置されることもあれば、ネットワーク内の複数のマシンに分散されることもある。データセットが大きくなり、ディープラーニング・モデルがより複雑になるにつれ、単一プロセッサでのトレーニングは非現実的な時間を要するようになる。分散トレーニングはこのボトルネックに対処し、合理的な時間枠で最先端のAIモデルを開発することを可能にします。

分散トレーニングの仕組み

分散トレーニング戦略は主に2つのカテゴリーに分類されるが、これらは組み合わせて使用することもできる:

  • データ並列:これは最も一般的なアプローチである。この手法では、モデル全体が各ワーカー(またはGPU)に複製される。メインのトレーニングデータセットは小さなチャンクに分割され、各ワーカーにチャンクが割り当てられる。各ワーカーは独立に、そのデータサブセットのフォワードパスとバックワードパスを計算し、勾配を生成します。これらの勾配は、通常All-Reduceのような処理によって集約・平均化され、集約された勾配は全ワーカーでモデルパラメータを更新するために使用されます。これにより、モデルの各コピーが同期された状態に保たれる。
  • モデル並列:この戦略は、モデルが大きすぎて単一のGPUのメモリに収まらない場合に使用されます。この場合、モデル自体を分割し、異なるレイヤーまたはセクションを異なるワーカーに配置します。データはニューラルネットワークのレイヤーを流れるようにワーカー間で受け渡されます。このアプローチは、ワーカー間の通信要求が高いため実装が複雑ですが、基礎モデルのような大規模モデルのトレーニングには不可欠です。Mixture of Experts(MoE)のようなアーキテクチャは、モデルの並列性に大きく依存しています。

実世界での応用

分散トレーニングは、現代の多くのAIの飛躍的進歩の基礎となっている。

  1. 大規模ビジョンモデルのトレーニング Ultralytics YOLO11のような高度なコンピュータビジョンモデルを開発する企業は、COCOや ImageNetのような巨大なデータセットを使用することがよくあります。データ並列性を利用することで、GPUクラスタにトレーニングを分散させることができます。これにより、トレーニング時間が数週間から数時間または数日に大幅に短縮され、より高速な反復、より広範なハイパーパラメータのチューニングが可能になり、最終的に精度の高いモデルにつながります。
  2. 大規模言語モデル(LLM)の開発GPTシリーズのようなLLMの作成は、分散学習なしでは不可能です。これらのモデルには数千億ものパラメータが含まれており、単一のデバイスで学習することはできません。研究者たちは、GPU間でモデルを分割するモデル並列処理と、膨大なテキストデータを効率的に処理するデータ並列処理を組み合わせたハイブリッド・アプローチを採用しています。これは、NVIDIAのMegatron-LMのようなプロジェクトの中核をなす要素です。

分散トレーニングと関連コンセプトの比較

分散型トレーニングを他の関連用語と区別することは重要だ:

  • 統合学習:どちらも複数のデバイスを使用するが、その目的と制約は異なる。分散型学習は通常、高速接続を備えたデータセンターのような制御された環境で行われ、単一エンティティの学習を加速させる。対照的に、連携学習は、中央サーバーにプライベートデータを移動することなく、分散化されたデバイス(例えば、スマートフォン)でモデルを学習する。フェデレーテッド・ラーニングの主な焦点はデータのプライバシーであり、分散型トレーニングの場合はスピードとスケールである。
  • エッジAI:これらの用語は、MLのライフサイクルの異なる段階を指す。分散トレーニングはトレーニング段階の一部である。エッジAIは、最適化されたモデルが、多くの場合リソースに制約のある、カメラや車のオンボードコンピューターのようなローカルデバイス上で直接推論を実行する、デプロイメントフェーズに関係する。分散手法でトレーニングされたモデルは、エッジAIの展開に備えることができる。

ツールと実装

分散型トレーニングの実施は、さまざまなツールやプラットフォームによって促進される:

  • MLフレームワーク:のようなコアフレームワーク パイトーチ そして テンソルフロー などの分散トレーニングAPIをビルトインでサポートしている。 PyTorch 分散DataParallel そして TensorFlowの tf.distribute.Strategy.
  • 専門ライブラリ:Uberが開発したHorovodのようなライブラリーは、分散ディープラーニングにフレームワークを問わないアプローチを提供する。
  • クラウドプラットフォームAWSGoogle CloudMicrosoft Azureなどの主要なクラウドプロバイダーは、大規模な分散トレーニングに最適化されたマネージドMLサービスとインフラを提供している。
  • MLOpsプラットフォームUltralytics HUBのようなプラットフォームは、データセットの管理、モデルの選択、トレーニングジョブの起動のためのインターフェースを提供し、プロセスを簡素化します。分散トレーニングを効果的に管理するには、優れたMLOpsの実践が鍵となる。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク