0Pricing
Deep Learning Academy · Ders

Büyük Gruplar için Gradyan Biriktirme

Küçük GPU'larda büyük grupları benzetin.

Büyük Gruplar için Gradyan Biriktirme, CoddyKit'te ücretsiz bir Deep Learning Academy dersidir. Bu, 4 dersinin 2. 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.

Büyük Toplu İş Sorunu

Büyük toplu işler genellikle daha kararlı eğitim sağlar, ancak çok fazla GPU belleğine ihtiyaç duyar. Küçük bir ekran kartı devasa bir toplu işi tek seferde tutamaz.

Temel Yöntem

Gradyan biriktirme, tek bir büyük toplu işi küçük parçalara böler. Gradyanlarını toplar ve tüm toplu iş birlikte çalıştırılmış gibi yalnızca bir kez güncelleme yaparsınız.

Gradyanlar Zaten Biriktirilir

PyTorch her backward geçişini değiştirmek yerine .grad içine ekler. Bu varsayılan davranış, biriktirme işleminin tam olarak dayandığı özelliktir.

Biriktirme Sayısını Belirleme

Tek bir güncellemeyi oluşturacak küçük toplu iş sayısını seçin. accum_steps değeri dört olduğunda, dört küçük toplu iş dört kat daha büyük tek bir toplu iş gibi davranır.

accum_steps = 4

Her Adımda Sıfırlamayın

Temel değişiklik zamanlamadır: zero_grad işlemini her küçük toplu işten sonra değil, yalnızca bir biriktirme döngüsünün başında çağırın.

if step % accum_steps == 0:
    optimizer.zero_grad()

Kaybı Ölçeklendirme

backward işleminden önce her küçük toplu işin kaybını accum_steps değerine bölün. Böylece ortalama gradyan, tüm toplu işi tek seferde çalıştırdığınız durumdakiyle aynı kalır.

loss = loss_fn(model(x), y) / accum_steps
loss.backward()

Yalnızca Tamamlandığında Adım Atın

Yeterli sayıda küçük toplu iş biriktiğinde optimizer.step çağırın. Biriktirilen gradyanlar artık tüm büyük toplu işi temsil eder.

if (step + 1) % accum_steps == 0:
    optimizer.step()

Tam Uygulama Şablonu

Hepsini birleştirin: kaybı ölçeklendirin, her adımda backward çalıştırın; ancak döngü başına yalnızca bir kez step ve zero çağırın. Döngü basit kalır.

for step, (x, y) in enumerate(loader):
    loss = loss_fn(model(x), y) / accum_steps
    loss.backward()
    if (step + 1) % accum_steps == 0:
        optimizer.step()
        optimizer.zero_grad()

Bellek Küçük Kalır

Bellekte aynı anda yalnızca bir küçük toplu iş tutarsınız. Bu nedenle mütevazı bir GPU, gerçek kapasitesinin birçok katı büyüklüğündeki bir toplu işi taklit edebilir.

Ödünleşim

Biriktirme, bellek karşılığında zamandan ödün verir: her güncellemede daha fazla ileri ve geri geçiş yapılması, her etkili toplu işin tamamlanmasının biraz daha uzun sürmesi anlamına gelir.

Toplu İş Normalizasyonuna Dikkat

Toplu iş normalizasyonu yalnızca küçük toplu işi görür; bu nedenle istatistikleri, gerçek büyük bir toplu işin üreteceği istatistiklerden daha gürültülüdür. Bunu göz önünde bulundurun.

Hızlı Kontrol

4 küçük toplu iş üzerinde biriktirme yapıyorsunuz. optimizer.step() çağrısını ne zaman yapmalısınız?

Özet

Büyük bir toplu işi parçalara bölün, kaybı accum_steps değerine bölün, her parçada backward çalıştırın ve küçük bellekte büyük bir toplu işi taklit etmek için döngü başına yalnızca bir kez adım atın. 🧮

Sıkça Sorulan Sorular

“Büyük Gruplar için Gradyan Biriktirme” dersi ücretsiz mi?

Evet — “Büyük Gruplar için Gradyan Biriktirme” 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.

“Büyük Gruplar için Gradyan Biriktirme” dersinde ne öğreneceğim?

Küçük GPU'larda büyük grupları benzetin. 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 2. dersidir.

“Büyük Gruplar için Gradyan Biriktirme” 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. autocast ve GradScaler ile Karma Hassasiyet
  2. Büyük Gruplar için Gradyan Biriktirme
  3. Darboğazı Profilleme
  4. GPU Belleği Kullanımını Azaltma
← Deep Learning Academy Sayfasına Dön