Teknik KILAVUZ

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.

2 min readSon güncelleme

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ı

1

Uygulamadan önce gecikmeyi, kaliteyi ve maliyet hedeflerini tanımlayın.

2

Gerçekçi yük ve veri koşulları altında kıyaslama yapın.

3

Hatalar, sapmalar ve kullanıcı etkisi için cihaz izleme.

4

Ö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.

Testi başlat

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.