Veri Paralelliği
Veri paralelliği, her bir GPU'nun veri kümesinin farklı bir dilimini işlemesi ile birçok GPU'da çoğaltılarak bir modeli daha hızlı eğitir.
Genel Bakış
It is the workhorse technique that lets teams scale to dozens or thousands of accelerators.
Derin Dalış
Veri paralelliğinde, her GPU modelin ağırlıklarının özdeş bir kopyasını tutar ancak farklı bir mini grup eğitim örneğini işler. Her cihaz ileri ve geri geçişi bağımsız olarak hesaplayarak kendi gradyan setini üretir. Ağırlıklar güncellenmeden önce, tümünü azaltan bir iletişim işlemi kullanılarak tüm GPU'lardaki gradyanların ortalaması alınır, böylece her kopya senkronize kalır ve büyük bir birleşik grup üzerinde eğitilmiş gibi davranır. Bu, verimi etkili bir şekilde artırır: 8 GPU, adım başına kabaca 8 kat daha fazla veri işleyebilir. İşin püf noktası, her GPU'nun modelin tamamına, gradyanlarına ve optimize edici durumuna belleğe sığması gerektiğidir; bu nedenle, bir model tek bir cihaz için çok büyük olduğunda düz veri paralelliği yardımcı olmaz.
Teknik Bilgi
Anahtar işlem, cihazlar arasındaki gradyanları toplayan ve sonucu yeniden dağıtan all-reduce işlemidir. NCCL ve Horovod gibi kitaplıklar tarafından kullanılan halka tamamen azaltma, degrade parçalarını mantıksal bir halka etrafında geçirir, böylece toplam iletişim GPU sayısından bağımsız olur. PyTorch'un DistributedDataParallel özelliği, bu iletişimi geri geçişle örtüştürerek, daha sonraki katmanlar hala hesaplama yaparken ilk katmanlar için degrade senkronizasyonunu etkinleştirerek ağ gecikmesinin çoğunu gizler.
Stratejik Etki
Maliyet ve bütçe
Mimari kararlar yıllarca performansı ve işletme maliyetini etkiler.
Daha net kararlar
Teknik eğitim, ekiplerin yalnızca en yenisini değil, doğru yığını seçmesine de yardımcı olur.
Quality control
Daha iyi mühendislik seçenekleri, üretimdeki güvenilirlik olaylarını azaltır.
Veri Paralelliğinin Geleceği
Saf veri paralelliği, trilyon parametreli modeller için hibrit 'nD paralellik' stratejilerine dönüştürmek üzere parçalama ve model paralelliğiyle giderek daha fazla bir araya getiriliyor. Bir düğüm içinde hızlı NVLink'ten ve düğümler arasında daha yavaş InfiniBand'dan yararlanan, daha akıllı gradyan sıkıştırma, eşzamansız ve örtüşen iletişim ve topolojiye duyarlı, tamamen azaltıcı özellikler bekleyebilirsiniz. Kümeler büyüdükçe, binlerce GPU'yu meşgul tutmak için iletişim-hesaplama oranının azaltılması temel mühendislik sorunu olmaya devam ediyor.
Gerçek Dünya Uygulaması
PyTorch DistributedDataParallel kullanarak tek bir sunucudaki 8 GPU'da bir ResNet görüntü sınıflandırıcıyı eğitme; her bir GPU, 256 görüntüden oluşan bir grubun 32'sini işliyor.
Her adımda degradeleri senkronize etmek için ring all-reduce kullanarak Horovod ile BERT ön eğitimini yüzlerce GPU'da ölçeklendirme.
Her düğümün farklı kullanıcı etkileşimi parçalarını işlediği çok düğümlü bir kümede bir öneri modeline ince ayar yapma.
Minimum kod değişikliğiyle bir görüntü modelinin eğitimini tek bir iş istasyonunda birden fazla GPU'ya yaymak için TensorFlow'un MirroredStrategy'sini kullanma.
Riskler ve Korkuluklar
Bir kıyaslamayı optimize etmek daha geniş sistem zayıflıklarını gizleyebilir.
Altyapı ve bakım maliyetleri genellikle hafife alınır.
Sistemler karmaşıklaştıkça güvenlik ve gözlemlenebilirlik boşlukları büyüyebilir.
Uygulama Yol Haritası
Uygulamadan önce gecikmeyi, kaliteyi ve maliyet hedeflerini tanımlayın.
Gerçekçi yük ve veri koşulları altında kıyaslama yapın.
Hatalar, sapmalar ve kullanıcı etkisi için cihaz izleme.
Ölçeklendirmeden önce geri alma ve olay müdahale yollarını hazırlayın.
Keşfetmeye Devam Edin
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Data Parallelism quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Next guide
Yapay Zeka Veri Yönetişimi
Sık sorulan sorular
What is Data Parallelism?
Veri paralelliği, her bir GPU'nun veri kümesinin farklı bir dilimini işlemesi ile birçok GPU'da çoğaltılarak bir modeli daha hızlı eğitir. Ekiplerin düzinelerce veya binlerce hızlandırıcıya ölçeklenmesine olanak tanıyan güçlü bir tekniktir.
Standart veri paralelliğinde her GPU ne tutar?
Her GPU, modelin tam bir kopyasını tutar ve veri kümesinin farklı bir bölümünü işler; bu da onu model paralelliğinden ziyade 'veri' paralelliği yapar.
Hangi iletişim işlemi model kopyalarını her adımda senkronize halde tutar?
Her geri geçişten sonra, degradeler tümünü azaltma yoluyla cihazlar arasında birleştirilir (genellikle önce toplanır, sonra ortalaması alınır), böylece her kopya aynı güncellemeyi uygular.
Düz veri paralelliğinin ana sınırlaması nedir?
Her GPU her şeyin tam bir kopyasını barındırdığından, bir model tek bir cihaza sığmayacak kadar büyük olduğunda veri paralelliği hiçbir işe yaramaz.
Büyük GPU sayıları için halkanın tamamen azaltılması neden caziptir?
Ring all-reduce, degrade parçaları mantıksal bir halka çevresinden geçirir, böylece her bir GPU'nun gönderdiği toplam bant genişliği, kaç GPU'nun katıldığına bakılmaksızın sabit kalır.
PyTorch DistributedDataParallel iletişim gecikmesini nasıl gizler?
DDP, daha sonraki katmanlar hâlâ hesaplanırken, önceki katmanlar için degradeleri senkronize etmeye başlar ve ağ iletişimini hesaplamayla çakıştırır.