Dağıtık Eğitim
Dağıtık eğitim ile AI eğitimini hızlandırın! Eğitim süresini nasıl kısaltacağınızı, modelleri nasıl ölçeklendireceğinizi ve karmaşık ML projeleri için kaynakları nasıl optimize edeceğinizi öğrenin.
Dağıtılmış eğitim şu alanlarda güçlü bir tekniktir
hızlandıran makine öğrenimi (ML)
Hesaplama iş yükünü birden fazla işlemciye bölerek model oluşturma süreci, örneğin
Grafik İşleme Birimleri (GPU'lar) veya
Tensor İşleme Birimleri (TPU'lar). Eşzamanlı cihazların birleşik gücünden yararlanarak - ister tek bir
iş istasyonu veya geniş bir küme genelinde ağa bağlı olarak geliştiriciler karmaşık eğitimler için gereken süreyi önemli ölçüde azaltabilir
derin öğrenme (DL) mimarileri. Bu yaklaşım
büyük veri kümelerini işlemek ve en son teknolojiyi geliştirmek için gereklidir
yapay zeka (AI) sistemleri,
daha hızlı yineleme döngüleri ve daha kapsamlı deneyler yapılmasına olanak tanır.
Paralelleştirme için Temel Stratejiler
İş yükünü etkin bir şekilde dağıtmak için mühendisler genellikle iki temel stratejiden birini veya karma bir yaklaşım kullanır
verimliliği en üst düzeye çıkarmak için tasarlanmıştır:
-
Veri Paralelliği: Bu, aşağıdaki gibi görevler için en yaygın yöntemdir
nesne tespiti. Bu kurulumda, tam bir kopya
her cihazda bulunur. Bu
eğitim verileri daha küçük parçalara bölünür ve
her cihaz aynı anda farklı bir alt kümeyi işler. sırasında
geriye yayılım aşamasında, gradyanlar hesaplanır
gibi iletişim protokolleri kullanılarak tüm cihazlar arasında senkronize edilir.
güncellemek için Mesaj Geçirme Arayüzü (MPI)
model ağırlıkları tutarlı bir şekilde.
-
Model Paralelliği: Ne zaman bir
sinir ağı (NN) içine sığamayacak kadar büyüktür
Tek bir GPU'nun belleği için model paralelliği gereklidir. Modelin katmanları veya bileşenleri bölümlere ayrılır
farklı cihazlar arasında. Veriler ağdan geçerken cihazlar arasında sıralı veya eş zamanlı olarak akar.
Bu teknik, kitlesel eğitim için kritik öneme sahiptir
temel modelleri ve
Büyük Dil Modelleri (LLM'ler), burada
gibi özel araçlar gerektiren parametre sayıları trilyonlara ulaşabilir.
Belleği yönetmek için Microsoft DeepSpeed.
Gerçek Dünya Uygulamaları
Dağıtılmış eğitim, endüstrilerin daha önce zaman nedeniyle hesaplama açısından mümkün olmayan problemleri çözmesini sağlar
veya bellek kısıtlamaları.
-
Otonom Sürüş: Güvenilir sürücüsüz araçlar geliştirmek için petabaytlarca videonun işlenmesi gerekiyor
ve sensör verileri. Otomotiv şirketleri, gerçek zamanlı görüş modellerini eğitmek için büyük ölçekli dağıtılmış kümeler kullanıyor
semantik segmentasyon ve nesne takibi.
Otomotiv iş akışlarında yapay zekadan yararlanarak,
Mühendisler, performansı artırmak için güvenlik açısından kritik modeller üzerinde hızla yineleme yapabilirler.
-
Tıbbi Görüntüleme: İçinde
Sağlık Hizmetlerinde Yapay Zeka, yüksek çözünürlüklü 3D analiz
MRI veya CT gibi taramalar önemli hesaplama kaynakları gerektirir. Dağıtılmış eğitim araştırmacıların şunları yapmasına olanak tanır
çeşitli yüksek doğruluklu teşhis modellerini eğitin,
gizlilikle uyumlu veri kümeleri. Gibi çerçeveler
NVIDIA CLARA genellikle dağıtılmış tekniklere dayanır
Bu karmaşık tıbbi görüntüleri verimli bir şekilde işlemek için.
YOLO ile Dağıtılmış Eğitimin Uygulanması
Bu ultralytics kütüphanesi, Dağıtılmış Veri Paralel (DDP) eğitiminin uygulanmasını basitleştirir. Sen
eğitiminizi kolayca ölçeklendirebilir YOLO11 genelinde modeller
cihaz endekslerini belirterek birden fazla GPU'yu kullanabilirsiniz.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])
Dağıtılmış Eğitim ve İlgili Kavramlar
Dağıtılmış eğitimi yapay zeka ekosistemindeki diğer ilgili terimlerden ayırmak önemlidir:
-
vs. Federe Öğrenme: Her ikisi de birden fazla cihaz içermekle birlikte, temel hedefleri farklıdır.
Dağıtılmış eğitim, hızı ve verimi en üst düzeye çıkarmak için genellikle verileri yüksek performanslı bir kümede merkezileştirir. İçinde
aksine, birleştirilmiş öğrenme verileri
önceliklendirmek için kullanıcı cihazlarında (akıllı telefonlar gibi) merkezi olmayan
veri gizliliği, model güncellemelerinin
ham verilerin kaynak cihazdan hiç ayrılmaması.
-
Yüksek Performanslı Hesaplamaya (HPC) karşı: HPC, aşağıdakiler için süper hesaplamayı kapsayan geniş bir alandır
hava tahmini gibi bilimsel simülasyonlar. Dağıtılmış eğitim, HPC'nin özel bir uygulamasıdır
nöral sistemlerde optimizasyon algoritmalarına
gibi özel iletişim kütüphanelerini kullanarak ağları
GPU'lar arasındaki gecikmeyi azaltmak için NVIDIA NCCL.
Araçlar ve Ekosistem
Açık kaynaklı araçlar ve platformlardan oluşan sağlam bir ekosistem, dağıtılmış eğitimin uygulanmasını destekler:
-
Çerçeveler: PyTorch yerli teklifler
dağıtılmış paketi aracılığıyla desteklerken
TensorFlow gibi stratejiler sağlar
MirroredStrategy sorunsuz ölçeklendirme için.
-
Orkestrasyon: Büyük bir kümedeki kaynakları yönetmek genellikle konteyner düzenlemesini içerir
Kubernetes gibi araçlar veya
Eğitim işlerinin dağıtımını ve ölçeklendirilmesini otomatikleştiren Kubeflow.
-
Bulut Altyapısı: Başlıca sağlayıcılar aşağıdaki gibi yönetilen hizmetler sunar
AWS SageMaker ve
Dağıtık sistemler için optimize edilmiş altyapı sağlayan Google Cloud TPU 'lar
iş yükleri, donanım bakım yükünü ortadan kaldırır.
-
Evrensel Ölçeklenebilirlik: Horovod gibi kütüphaneler ve
Ray, ölçeklendirme için çerçeveden bağımsız yaklaşımlar sağlayarak geliştiricilerin
kodlarını minimum değişiklikle dağıtılmış ortamlar için kullanabilirler.