分散学習がいかに複数のGPUにわたってAIワークロードをスケールさせるかを探ります。DDPを用いてUltralytics YOLO26のトレーニングを高速化し、より速く正確な結果を得る方法を学びましょう。
分散学習は、モデルの学習ワークロードを複数のプロセッサやマシンに分割する機械学習の手法です。このアプローチは、単一デバイスでは学習に非現実的な時間がかかるような大規模なデータセットや複雑なニューラルネットワークアーキテクチャを処理するために不可欠です。複数のGraphics Processing Units (GPUs)やTensor Processing Units (TPUs)の結合された計算能力を活用することで、分散学習は開発サイクルを大幅に加速させ、研究者やエンジニアがより迅速に反復し、モデルでより高い精度を達成できるようにします。
分散学習の核となる考え方は並列化です。1つのチップでデータを順次処理する代わりに、タスクはより小さなチャンクに分割され、同時に処理されます。これを実現するための主要な戦略は2つあります。
分散学習は、これまで計算上不可能だった問題を解決することを可能にし、産業を変革しました。
について 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])
分散学習を機械学習エコシステムにおける類似の用語と区別することは、それぞれの特定の役割を理解する上で役立ちます。
分散トレーニングのインフラストラクチャの管理は複雑になる可能性があります。最新のプラットフォームは、マネージド環境を提供することでこれを簡素化します。例えば、Ultralytics Platformは、ユーザーがデータセットを管理し、クラウド環境またはローカルクラスターにデプロイできるトレーニング実行を開始することを可能にします。この統合により、データアノテーションから最終的なモデルデプロイメントまでのワークフローが合理化され、複数のGPUへのスケールアップが可能な限りシームレスであることを保証します。同様に、Google Cloud Vertex AIやAmazon SageMakerのようなクラウドプロバイダーは、エンタープライズ規模で分散トレーニングジョブを実行するための堅牢なインフラストラクチャを提供します。

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