SelanjutnyaPanduan berikutnya
Gradien yang Hilang dan Meledak
Teknis
PANDUAN Teknis
Akumulasi gradien memungkinkan Anda menyimulasikan ukuran batch besar pada memori GPU terbatas dengan menjumlahkan gradien pada beberapa mini-batch kecil sebelum memperbarui bobotnya.
Dengarkan panduan iniDiceritakan oleh AI · ~2 min
Ini adalah solusi standar untuk melatih model besar ketika memori menjadi penghambatnya.
Biasanya langkah pelatihan memproses satu batch, menghitung gradien, dan segera memperbarui parameter. Dengan akumulasi gradien, Anda menjalankan beberapa lintasan maju dan mundur pada kumpulan mikro yang lebih kecil, menambahkan gradiennya bersama-sama dalam buffer parameter, dan hanya memanggil langkah pengoptimal (dan menghilangkan gradien) setelah N kumpulan mikro. Ukuran batch efektif menjadi ukuran batch mikro dikalikan N, meskipun memori puncak hanya menampung satu batch mikro aktivasi. Hal ini penting karena banyak resep pelatihan mengasumsikan batch besar untuk statistik yang stabil, dan karena model seperti transformator besar tidak dapat memuat batch target penuh pada satu perangkat. Tangkapannya: statistik normalisasi batch dihitung per mikro-batch, jadi norma lapisan atau norma grup berpasangan lebih baik dengan akumulasi, dan Anda harus menskalakan kerugian dengan benar untuk menjaga kecepatan pemelajaran efektif tetap tepat.
Menyempurnakan model bahasa besar pada satu GPU konsumen dengan mengumpulkan lebih dari 8 atau 16 mikro-batch untuk mencapai ratusan batch efektif.
Melatih visi resolusi tinggi atau model segmentasi yang dapat menampung 2 batch, namun resepnya memerlukan 32 batch yang efektif.
Hugging Face Trainer dan PyTorch Lightning mengekspos pengaturan gradien_accumulation_steps yang digunakan secara rutin dalam pengaturan VRAM terbatas.
Mereproduksi hasil kumpulan besar makalah pada perangkat keras yang lebih kecil dengan mencocokkan ukuran kumpulan efektif melalui akumulasi.
Akumulasi gradien akan tetap menjadi tuas default karena ukuran model melebihi memori satu perangkat. Ini semakin dikombinasikan dengan presisi campuran, pos pemeriksaan aktivasi, sharding ZeRO, dan paralelisme saluran pipa dalam kerangka kerja seperti DeepSpeed dan FSDP. Harapkan otomatisasi yang lebih ketat di mana perpustakaan menyesuaikan langkah-langkah akumulasi secara otomatis sesuai anggaran memori, dan pentingnya penyempurnaan model besar pada perangkat keras sederhana, termasuk GPU konsumen yang akan membuka pelatihan yang sebelumnya tidak mungkin dilakukan.
Buletin gratis
Tiga cerita AI terverifikasi setiap pagi hari kerja, ditulis dalam bahasa Inggris sederhana. Gratis selamanya, tanpa iklan.
Satu email setiap hari kerja. Berhenti berlangganan dalam satu klik. Kami tidak pernah menjual atau membagikan alamat Anda.
Uji diri Anda sendiri
Umpan balik instan untuk setiap jawaban, dan sertifikat yang dapat dibagikan dengan ID yang dapat diverifikasi setelah Anda lulus kursus.
Mendukung pendidikan AI gratis. AI Understanding adalah organisasi nirlaba 501(c)(3) — tanpa iklan, tanpa paywall, selamanya. Berikan sumbangan
Akumulasi gradien memungkinkan Anda menyimulasikan ukuran batch besar pada memori GPU terbatas dengan menjumlahkan gradien pada beberapa mini-batch kecil sebelum memperbarui bobotnya. Ini adalah solusi standar untuk melatih model besar ketika memori menjadi penghambatnya.
Dengan menjumlahkan gradien pada beberapa kumpulan mikro sebelum memperbarui, Anda meniru kumpulan besar tanpa menyimpan semuanya di memori sekaligus.
Akumulasi gradien di N kumpulan mikro, panggil optimizer.step() sekali untuk kumpulan efektif, lalu hapus gradien sebelum jendela berikutnya; mulai pelatihan dengan buffer yang dibersihkan.
Norma batch menghitung statistik per batch mikro, sehingga norma lapisan atau grup menghindari ketidakcocokan dengan batch mikro kecil.
Perhitungan maju yang bergantung pada batch mematahkan kesetaraan yang tepat.
Teruslah belajar
Panduan lainnya dipilih untuk topik ini
SelanjutnyaPanduan berikutnya
Gradien yang Hilang dan Meledak
Teknis