Distributed Training
Dağıtık eğitimin yapay zekâ iş yüklerini birden fazla GPU'ya nasıl ölçeklendirdiğini keşfet. Daha hızlı ve doğru sonuçlar için Ultralytics YOLO26 eğitimini DDP ile nasıl hızlandıracağını öğren.
Dağıtık eğitim, makine öğreniminde bir modeli eğitme iş yükünün birden fazla işlemci veya makineye bölündüğü bir yöntemdir. Bu yaklaşım, büyük ölçekli veri kümelerini ve tek bir cihazda eğitilmesi pratik olmayacak kadar uzun sürecek karmaşık sinir ağı mimarilerini işlemek için gereklidir. Birden fazla Grafik İşleme Biriminin (GPUs) veya Tensor İşleme Biriminin (TPUs) birleşik hesaplama gücünden yararlanan dağıtık eğitim, geliştirme döngüsünü önemli ölçüde hızlandırarak araştırmacıların ve mühendislerin daha hızlı yineleme yapmasına ve modellerinde daha yüksek doğruluk elde etmesine olanak tanır.
Dağıtık Eğitim Nasıl Çalışır#
Dağıtık eğitimin temelindeki fikir paralelleştirmedir. Verileri tek bir çipte sıralı olarak işlemek yerine görev, aynı anda işlenen daha küçük parçalara bölünür. Bunu gerçekleştirmenin iki temel stratejisi vardır:
- Veri Paralelliği: Bu, nesne algılama gibi görevler için en yaygın yaklaşımdır. Bu düzende, modelin tamamının bir kopyası her cihazda bulunur. Genel eğitim verileri daha küçük gruplara bölünür ve her cihaz aynı anda farklı bir grubu işler. Her adımdan sonra gradyanlar (model güncellemeleri), model ağırlıklarının tutarlı kalmasını sağlamak için tüm cihazlar arasında senkronize edilir.
- Model Paralelliği: Bir sinir ağı (NN) tek bir GPU'nun belleğine sığmayacak kadar büyük olduğunda modelin kendisi birden fazla cihaza bölünür. Modelin farklı katmanları veya bileşenleri farklı çiplerde bulunur ve veriler bunlar arasında akar. Bu, büyük temel modelleri ve Büyük Dil Modellerini (LLMs) eğitmek için çoğu zaman gereklidir.
Gerçek Dünya Uygulamaları#
Dağıtık eğitim, daha önce hesaplama açısından uygulanabilir olmayan sorunların çözülmesini mümkün kılarak endüstrileri dönüştürmüştür.
- Otonom Sürüş: Güvenli otonom araçlar geliştirmek, petabaytlarca video ve sensör verisinin analiz edilmesini gerektirir. Otomotiv mühendisleri, gerçek zamanlı semantik segmentasyon ve şerit algılama için görsel modelleri eğitmek üzere büyük dağıtık kümeler kullanır. Bu büyük ölçek, otomotivdeki yapay zeka sistemlerinin çeşitli yol koşullarına güvenilir şekilde tepki verebilmesini sağlar.
- Tıbbi Görüntüleme: Sağlık sektöründe, MRI gibi yüksek çözünürlüklü 3B taramaları analiz etmek önemli miktarda bellek ve işlem gücü gerektirir. Dağıtık eğitim, araştırmacıların tümör algılama ve diğer kritik görevler için yüksek performanslı tanı araçları geliştirmesini sağlar. Hastaneler, NVIDIA MONAI gibi çerçeveleri kullanarak bellek darboğazlarıyla karşılaşmadan çeşitli veri kümeleri üzerinde modeller eğitebilir ve sağlık hizmetlerinde yapay zeka sonuçlarını iyileştirebilir.
Ultralytics ile Dağıtık Eğitim Kullanımı#
ultralytics kütüphanesi, Dağıtık Veri Paralelliği (DDP) eğitimini uygulamayı kolaylaştırır. Eğitim bağımsız değişkenlerinde cihaz dizinlerini belirtmen yeterlidir; böylece en yeni YOLO26 modelleriyle yaptığın eğitimi birden fazla GPU'ya ölçeklendirebilirsin.
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])İlgili Kavramlar ve Karşılaştırmalar#
Özel rollerini anlamak için dağıtık eğitimi makine öğrenimi ekosistemindeki benzer terimlerden ayırmak yararlıdır:
- Birleştirilmiş Öğrenmeyle Karşılaştırma: Her ikisi de birden fazla cihazı içerse de amaçları farklıdır. Dağıtık eğitim genellikle hızı en üst düzeye çıkarmak için verileri yüksek performanslı bir kümede merkezileştirir. Buna karşılık birleştirilmiş öğrenme, veri gizliliğine öncelik vermek amacıyla verileri kullanıcı cihazlarında (akıllı telefonlar gibi) merkeziyetsiz tutar ve ham veriler kaynağından hiç ayrılmadan genel modeli günceller.
- Yüksek Performanslı Hesaplamayla (HPC) Karşılaştırma: HPC, hava tahmini gibi bilimsel simülasyonlar için süper bilgisayar kullanımını da kapsayan geniş bir alandır. Dağıtık eğitim, derin öğrenmedeki optimizasyon algoritmalarına uygulanan özel bir HPC kullanım alanıdır. GPU'lar arasındaki gecikmeyi en aza indirmek için çoğu zaman NVIDIA NCCL gibi özel iletişim kütüphanelerine dayanır.
Bulut Platformlarıyla Ölçeklendirme#
Dağıtık eğitim için altyapıyı yönetmek karmaşık olabilir. Modern platformlar, yönetilen ortamlar sunarak bu süreci basitleştirir. Örneğin Ultralytics Platform, kullanıcıların veri kümelerini yönetmesine ve bulut ortamlarına veya yerel kümelere dağıtılabilecek eğitim çalıştırmaları başlatmasına olanak tanır. Bu entegrasyon, veri açıklamasından son model dağıtımına kadar iş akışını kolaylaştırır ve birden fazla GPU'ya ölçeklendirmenin mümkün olduğunca sorunsuz olmasını sağlar. Benzer şekilde Google Cloud Vertex AI ve Amazon SageMaker gibi bulut sağlayıcıları, kurumsal ölçekte dağıtık eğitim işlerini çalıştırmak için güçlü altyapı sunar.









