Dağıtık Eğitim
Dağıtılmış eğitimin, yapay zeka iş yüklerini birden fazla GPU'ya nasıl ölçeklendirdiğini keşfedin. Daha hızlı ve doğru sonuçlar için DDP ile Ultralytics eğitimini hızlandırmayı öğrenin.
Dağıtılmış eğitim, makine öğreniminde bir modeli eğitmenin iş yükünün birden fazla
işlemci veya makineye bölündüğü bir yöntemdir. Bu yaklaşım, tek bir cihazda eğitmek için pratik olmayan bir süre gerektiren büyük ölçekli veri kümelerini ve karmaşık sinir ağı
mimarilerini işlemek için gereklidir. Birden fazla
Grafik İşlem Birimi (GPU) veya
Tensor Birimlerinin (TPU'lar) birleşik hesaplama gücünden yararlanarak, dağıtılmış eğitim geliştirme döngüsünü önemli ölçüde hızlandırır ve
araştırmacıların ve mühendislerin daha hızlı yineleme yapmalarını ve modellerinde daha yüksek
doğruluk elde etmelerini sağlar.
Dağıtılmış Eğitim Nasıl Çalışır?
Dağıtılmış eğitimin temelinde yatan fikir, paralelleştirmedir. Verileri tek bir çip üzerinde sırayla işlemek yerine,
görev daha küçük parçalara bölünür ve bu parçalar aynı anda işlenir. Bunu başarmak için iki temel strateji vardır
:
-
Veri Paralelliği: Bu
nesne algılama gibi görevler için en yaygın yaklaşımdır.
Bu kurulumda,
tüm modelin bir kopyası her cihaza yerleştirilir. Küresel
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 (modele yapılan güncellemeler)
tüm cihazlarda senkronize edilerek
model ağırlıklarının tutarlı kalması sağlanır.
-
Model Paralelliği: Bir
sinir ağı (NN) tek GPU 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ı yongalarda bulunur ve veriler bunlar arasında akar. Bu, genellikle büyük
temel modellerin ve
Büyük Dil Modellerinin (LLM) eğitimi için gereklidir.
Gerçek Dünya Uygulamaları
Dağıtılmış eğitim, daha önce
hesaplama açısından imkansız olan 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 için
petabaytlarca video ve sensör verisinin analiz edilmesi gerekir. Otomotiv mühendisleri, gerçek zamanlı anlamsal segmentasyon ve şerit
algılama için görme modellerini eğitmek üzere büyük dağıtılmış kümeler kullanır.
Bu devasa ölçek, otomotiv sistemlerindeki
yapay zekanın çeşitli yol koşullarına güvenilir bir şekilde
tepk verebilmesini sağlar.
-
Tıbbi Görüntüleme: Sağlık sektöründe, MRG gibi yüksek çözünürlüklü 3D taramaları analiz etmek için
önemli miktarda bellek ve işlem gücü gerekir. Dağıtılmış eğitim, araştırmacıların tümör tespiti
ve diğer kritik görevler için
yüksek performanslı
tanı araçları geliştirmelerine olanak tanır.
NVIDIA gibi çerçeveleri kullanarak, hastaneler bellek darboğazlarına takılmadan ç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ılmış Eğitimi Kullanma
Bu ultralytics kütüphanesi, Dağıtılmış Veri Paralelliği (DDP) eğitimini uygulamayı kolaylaştırır.
En son teknolojiye sahip eğitiminizi ölçeklendirebilirsiniz.
YOLO26 eğitim argümanlarınızda cihaz indekslerini belirtmek suretiyle
birden fazla GPU'da modeller oluşturun.
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
Dağıtılmış eğitimi, makine öğrenimi ekosistemindeki benzer terimlerden ayırarak
bunların belirli rollerini anlamak yararlıdır:
-
Federatif Öğrenme ile Karşılaştırma: Her ikisi de birden fazla cihazı içerse de, amaçları farklıdır. Dağıtılmış
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,
federatif öğrenme, veri gizliliğine öncelik vermek için verileri
kullanıcı cihazlarında (akıllı telefonlar gibi) merkezi olmayan bir şekilde tutar
ve ham veriler kaynağı hiç terk etmeden küresel modeli günceller.
.
-
Yüksek Performanslı Hesaplama (HPC) ile karşılaştırıldığında: HPC, hava tahmini gibi bilimsel simülasyonlar için süper hesaplamayı içeren geniş bir alandır.
Dağıtılmış eğitim, derin öğrenmedeki optimizasyon algoritmalarına uygulanan HPC'nin özel bir uygulamasıdır.
Genellikle, GPU'lar arasındaki gecikmeyi en aza indirmek için NVIDIA gibi özel iletişim kütüphanelerine dayanır.
HPC, GPU'lar arasında veri aktarımı için çok daha yüksek bant genişliği gerektirir.
Bulut Platformlarıyla Ölçeklendirme
Dağıtılmış eğitimin altyapısını yönetmek karmaşık olabilir. Modern platformlar,
yönetilen ortamlar sunarak bunu basitleştirir. Örneğin, Ultralytics ,
kullanıcıların veri kümelerini yönetmelerine ve bulut ortamlarına veya yerel kümelere dağıtılabilen eğitim çalıştırmaları başlatmalarına olanak tanır. Bu
entegrasyon, veri
ek açıklamalarından nihai
model dağıtımına kadar iş akışını kolaylaştırarak,
birden fazla GPU'ya ölçeklendirmenin mümkün olduğunca sorunsuz olmasını sağlar. Benzer şekilde, Google Vertex AI ve
Amazon SageMaker gibi bulut sağlayıcıları,
kurumsal ölçekte dağıtılmış
eğitim işlerini yürütmek için sağlam bir altyapı sağlar.