Deep Learning Academy · Pelajaran

Norm Batch Tersinkronisasi dan State Terpecah

Jaga agar statistik dan bobot tetap konsisten

Pelajaran 3 dari 413 langkah

Norm Batch Tersinkronisasi dan State Terpecah adalah pelajaran Deep Learning Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Deep Learning Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Deep Learning Academy mencakup 4 pelajaran total.

Masalah Batch Kecil

Normalisasi batch menghitung statistik dari batch lokal setiap GPU. Jika dibagi ke banyak GPU, batch per perangkat menjadi lebih kecil dan statistiknya menjadi bising.

Perkenalkan SyncBatchNorm

SyncBatchNorm mengatasi hal ini dengan menghitung rata-rata dan varians di semua GPU secara bersamaan, seolah-olah melihat seluruh batch global.

Konversi dalam Satu Panggilan

Anda tidak perlu menulis ulang lapisan secara manual. Satu pembantu mengonversi setiap BatchNorm dalam model Anda menjadi versi yang disinkronkan.

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

Konversi Sebelum Membungkus

Urutannya penting: panggil konversi sebelum membungkus model dalam DDP, agar lapisan yang disinkronkan menjadi lapisan yang dikelola DDP.

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

Ada Biaya Komunikasi

Menyinkronkan statistik berarti ada operasi all-reduce tambahan di setiap lapisan normalisasi batch. Gunakan ini ketika batch kecil per GPU menurunkan akurasi, bukan sebagai pengaturan bawaan.

Batas Memori

DDP biasa menyalin seluruh model, gradien, dan keadaan pengoptimal ke setiap GPU. Untuk model yang sangat besar, duplikasi ini dengan cepat menghabiskan memori.

Bagi Keadaan

Sharding membagi tensor tersebut ke seluruh GPU sehingga setiap perangkat hanya menyimpan sebagian. Jika digabungkan, semua GPU tetap menyimpan keseluruhan model.

Perkenalkan FSDP

FullyShardedDataParallel milik PyTorch membagi parameter, gradien, dan keadaan pengoptimal. Dengan ini, Anda dapat melatih model yang jauh lebih besar daripada kapasitas memori satu GPU.

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

Kumpulkan Tepat Saat Dibutuhkan

FSDP mengumpulkan bobot lengkap setiap lapisan hanya saat dibutuhkan untuk komputasi, lalu membebaskannya kembali. Dengan begitu, penggunaan memori puncak tetap rendah.

Tahapan ZeRO

Sharding memiliki beberapa tingkat yang disebut tahapan ZeRO: membagi keadaan pengoptimal, lalu gradien, kemudian parameter. Semakin banyak yang dibagi, semakin besar penghematan memori.

Pilih Alat yang Tepat

Jika model Anda muat di setiap GPU, DDP biasa adalah pilihan yang paling sederhana. Jika tidak, gunakan FSDP untuk membagi keadaan dan melanjutkan pelatihan.

Pemeriksaan Singkat

Tentukan tujuan sebenarnya dari setiap teknik.

Ringkasan

Anda telah mempelajari dua alat konsistensi: SyncBatchNorm menjaga statistik tetap global di seluruh GPU, sedangkan FSDP membagi keadaan agar model raksasa dapat dimuat. Gunakan masing-masing hanya saat diperlukan.

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Norm Batch Tersinkronisasi dan State Terpecah” gratis?

Ya — teks lengkap “Norm Batch Tersinkronisasi dan State Terpecah” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Deep Learning Academy, upgrade ke CoddyKit PRO. Kursus Deep Learning Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Norm Batch Tersinkronisasi dan State Terpecah”?

Jaga agar statistik dan bobot tetap konsisten Kamu berlatih Deep Learning Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Deep Learning Academy?

Tidak diperlukan pengalaman sebelumnya. Deep Learning Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Norm Batch Tersinkronisasi dan State Terpecah” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Deep Learning Academy ini?

Ya. Setiap pelajaran Deep Learning Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Paralelisme Data vs Model
  2. Dasar-Dasar DistributedDataParallel
  3. Norm Batch Tersinkronisasi dan State Terpecah
  4. Luncurkan Pekerjaan dengan torchrun
← Kembali ke Deep Learning Academy