YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

分散学習

分散学習がいかに複数のGPUにわたってAIワークロードをスケールさせるかを探ります。DDPを用いてUltralytics YOLO26のトレーニングを高速化し、より速く正確な結果を得る方法を学びましょう。

分散学習は、モデルの学習ワークロードを複数のプロセッサやマシンに分割する機械学習の手法です。このアプローチは、単一デバイスでは学習に非現実的な時間がかかるような大規模なデータセットや複雑なニューラルネットワークアーキテクチャを処理するために不可欠です。複数のGraphics Processing Units (GPUs)やTensor Processing Units (TPUs)の結合された計算能力を活用することで、分散学習は開発サイクルを大幅に加速させ、研究者やエンジニアがより迅速に反復し、モデルでより高い精度を達成できるようにします。

分散学習はどのように機能するか

分散学習の核となる考え方は並列化です。1つのチップでデータを順次処理する代わりに、タスクはより小さなチャンクに分割され、同時に処理されます。これを実現するための主要な戦略は2つあります。

  • Data Parallelism: これは、object detectionのようなタスクで最も一般的なアプローチです。この設定では、モデル全体のコピーが全てのデバイスに配置されます。グローバルなtraining dataはより小さなバッチに分割され、各デバイスは異なるバッチを同時に処理します。各ステップの後、勾配(モデルへの更新)は全てのデバイス間で同期され、model weightsの一貫性が保たれます。
  • Model Parallelism: ニューラルネットワーク(NN)が単一のGPUのメモリに収まらないほど大きい場合、モデル自体が複数のデバイスに分割されます。モデルの異なる層やコンポーネントが異なるチップに配置され、データがそれらの間を流れます。これは、大規模な基盤モデル大規模言語モデル(LLM)の訓練にしばしば必要となります。

実際のアプリケーション

分散学習は、これまで計算上不可能だった問題を解決することを可能にし、産業を変革しました。

  • 自動運転: 安全な自律走行車を開発するには、ペタバイト規模のビデオおよびセンサーデータを分析する必要があります。自動車エンジニアは、リアルタイムのセマンティックセグメンテーションと車線検出のためのビジョンモデルをトレーニングするために、大規模な分散クラスターを使用します。この大規模なスケールにより、自動車におけるAIシステムが多様な道路状況に確実に反応できるようになります。
  • 医療画像: ヘルスケア分野では、MRIのような高解像度3Dスキャンの解析には、かなりのメモリと処理能力が必要です。分散学習は、腫瘍detectやその他の重要なタスクのための高性能診断ツールを研究者が構築することを可能にします。NVIDIA MONAIのようなフレームワークを使用することで、病院はメモリボトルネックに遭遇することなく多様なデータセットでモデルを訓練でき、ヘルスケアAIの成果を向上させます。

Ultralyticsで分散学習を活用する

について ultralytics ライブラリは、分散データ並列 (DDP) トレーニングの実装を容易にします。最先端のトレーニングをスケールアップできます。 YOLO26 トレーニング引数でデバイスインデックスを指定するだけで、複数のGPUにわたってモデルを動作させることができます。

from ultralytics import YOLO

# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")

# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])

関連概念と比較

分散学習を機械学習エコシステムにおける類似の用語と区別することは、それぞれの特定の役割を理解する上で役立ちます。

  • Vs. 連合学習: どちらも複数のデバイスを伴いますが、その目標は異なります。分散訓練は通常、速度を最大化するためにデータを高性能クラスターに集中させます。対照的に、連合学習は、ユーザーデバイス(スマートフォンなど)上でデータを分散化させ、データプライバシーを優先し、生データがソースから離れることなくグローバルモデルを更新します。
  • Vs. ハイパフォーマンスコンピューティング (HPC): HPCは、気象予測のような科学シミュレーションのためのスーパーコンピューティングを含む広範な分野です。分散学習は、ディープラーニングにおける最適化アルゴリズムに適用されるHPCの特定の応用です。これは、GPU間のレイテンシを最小限に抑えるために、しばしばNVIDIA NCCLのような特殊な通信ライブラリに依存します。

クラウドプラットフォームでのスケーリング

分散トレーニングのインフラストラクチャの管理は複雑になる可能性があります。最新のプラットフォームは、マネージド環境を提供することでこれを簡素化します。例えば、Ultralytics Platformは、ユーザーがデータセットを管理し、クラウド環境またはローカルクラスターにデプロイできるトレーニング実行を開始することを可能にします。この統合により、データアノテーションから最終的なモデルデプロイメントまでのワークフローが合理化され、複数のGPUへのスケールアップが可能な限りシームレスであることを保証します。同様に、Google Cloud Vertex AIAmazon SageMakerのようなクラウドプロバイダーは、エンタープライズ規模で分散トレーニングジョブを実行するための堅牢なインフラストラクチャを提供します。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。