Deep Learning Academy · Ders

Eşzamanlı Toplu Normalleştirme ve Parçalı Durum

İstatistikleri ve ağırlıkları tutarlı tutun.

3. ders / 413 adım

Eşzamanlı Toplu Normalleştirme ve Parçalı Durum, CoddyKit'te ücretsiz bir Deep Learning Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Deep Learning Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Deep Learning Academy kursu toplamda 4 dersten oluşur.

Küçük Yığın Sorunu

Yığın normalizasyonu istatistikleri her GPU'nun yerel yığınından hesaplar. Birçok GPU'ya bölündüğünde her aygıt başına yığın küçülür ve bu istatistikler gürültülü hâle gelir.

SyncBatchNorm ile Tanışın

SyncBatchNorm, ortalamayı ve varyansı tüm GPU'lar arasında birlikte hesaplayarak bu sorunu çözer; böylece tam küresel yığını görmüş gibi davranır.

Tek Çağrıyla Dönüştürün

Katmanları elle yeniden yazmanız gerekmez. Tek bir yardımcı, modelinizdeki her BatchNorm katmanını eşitlenen sürümüne dönüştürür.

import torch.nn as nn
model = nn.SyncBatchNorm.convert_sync_batchnorm(model)

Sarmalamadan Önce Dönüştürün

Sıra önemlidir: modeli DDP ile sarmalamadan önce dönüştürmeyi çağırın; böylece DDP eşitlenen katmanları yönetir.

model = nn.SyncBatchNorm.convert_sync_batchnorm(model)
model = DDP(model, device_ids=[local_rank])

İletişim Maliyeti Vardır

İstatistikleri eşitlemek, her yığın normalizasyonu katmanında ek bir tümüne indirgeme işlemi anlamına gelir. Bunu varsayılan olarak değil, GPU başına küçük yığınlar doğruluğu düşürdüğünde kullanın.

Bellek Duvarı

Standart DDP, modelin tamamını, gradyanları ve eniyileyici durumunu her GPU'ya kopyalar. Çok büyük modellerde bu tekrarlar belleği hızla tüketir.

Durumu Parçalara Ayırın

Parçalama, bu tensörleri GPU'lar arasında böler; böylece her aygıt yalnızca bir parçayı saklar. GPU'lar birlikte hâlâ modelin tamamını barındırır.

FSDP ile Tanışın

PyTorch'un FullyShardedDataParallel yapısı parametreleri, gradyanları ve eniyileyici durumunu parçalar. Böylece tek bir GPU'nun belleğinden çok daha büyük modelleri eğitebilirsiniz.

from torch.distributed.fsdp import FullyShardedDataParallel as FSDP
model = FSDP(model)

Tam Gerektiği Anda Birleştirin

FSDP, her katmanın tüm ağırlıklarını hesaplama için yalnızca gerektiği anda birleştirir ve ardından yeniden serbest bırakır. Bu, en yüksek bellek kullanımını düşük tutar.

ZeRO Aşamaları

Parçalama, ZeRO aşamaları olarak adlandırılan düzeylerde yapılır: önce eniyileyici durumu, sonra gradyanları, ardından parametreleri parçalarsınız. Daha fazla parçalama, daha fazla bellek tasarrufu sağlar.

Doğru Aracı Seçin

Modeliniz GPU başına sığıyorsa standart DDP en basit seçenektir. Sığmıyorsa durumu parçalamak ve devam etmek için FSDP'yi kullanın.

Hızlı Kontrol

Her tekniğin gerçekte ne amaçla kullanıldığını belirleyin.

Özet

İki tutarlılık aracı gördünüz: SyncBatchNorm, istatistikleri GPU'lar arasında küresel tutar; FSDP ise durumu parçalayarak dev modellerin sığmasını sağlar. Her birini yalnızca gerektiğinde kullanın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Python öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
30
Dersler
120

Sıkça Sorulan Sorular

“Eşzamanlı Toplu Normalleştirme ve Parçalı Durum” dersi ücretsiz mi?

Evet — “Eşzamanlı Toplu Normalleştirme ve Parçalı Durum” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Deep Learning Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Deep Learning Academy kursu toplamda 4 dersten oluşur.

“Eşzamanlı Toplu Normalleştirme ve Parçalı Durum” dersinde ne öğreneceğim?

İstatistikleri ve ağırlıkları tutarlı tutun. Deep Learning Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Deep Learning Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Deep Learning Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Eşzamanlı Toplu Normalleştirme ve Parçalı Durum” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Deep Learning Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Deep Learning Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Veri ve Model Paralelliği
  2. DistributedDataParallel Temelleri
  3. Eşzamanlı Toplu Normalleştirme ve Parçalı Durum
  4. torchrun ile İş Başlatma
← Deep Learning Academy Sayfasına Dön