PANDUAN Teknis
Paralel Data Terpecah Sepenuhnya
Fully Sharded Data Parallel (FSDP) adalah teknik pelatihan terdistribusi yang membagi parameter model, gradien, dan status pengoptimal di banyak GPU sehingga setiap perangkat hanya menampung satu irisan.
Dengarkan panduan iniDiceritakan oleh AI · ~2 min
Di halaman ini2 menit membaca
Ikhtisar
Hal ini memungkinkan pelatihan model berukuran besar pada perangkat keras yang tidak akan pernah dapat memuat keseluruhan model dalam satu memori GPU.
Menyelam Lebih Dalam
Paralelisme data tradisional menyimpan salinan lengkap model di setiap GPU, sehingga membuang-buang memori dan membatasi ukuran model. FSDP, yang dipopulerkan oleh PyTorch Meta dan terinspirasi oleh ZeRO Microsoft, malah membagi tiga hal di seluruh perangkat: parameter, gradien, dan status pengoptimal. Selama forward pass, setiap GPU untuk sementara mengumpulkan bobot penuh untuk lapisan yang dikomputasinya melalui all-gather, menjalankan komputasi, lalu segera membebaskan salinan yang dikumpulkan. Proses backward pass bekerja dengan cara yang sama, diikuti dengan pengurangan-penyebaran yang mendistribusikan irisan gradien kembali ke GPU pemiliknya. Karena setiap perangkat hanya menyimpan sebagian kecil model secara permanen, penggunaan memori menurun secara linear seiring dengan jumlah GPU, sehingga tim dapat melatih model dengan puluhan atau ratusan miliar parameter.
Implementasi Dunia Nyata
Menyempurnakan model Llama dengan 70 miliar parameter pada 8 GPU yang masing-masing tidak dapat menahan beban penuh.
Melatih model bahasa besar di laboratorium AI dengan membagi status pengoptimal (yang mendominasi memori dengan Adam) di ratusan akselerator.
Para peneliti menggunakan pembungkus FSDP PyTorch untuk melatih transformator visi di cluster universitas tanpa membeli GPU unggulan 80GB.
Menggabungkan FSDP dengan bfloat16 presisi campuran untuk mengurangi separuh memori dan mempercepat hasil pelatihan pada model multimodal.
Masa Depan Paralel Data yang Dipecah Sepenuhnya
FSDP menjadi default untuk pelatihan model besar terbuka, dengan FSDP2 di PyTorch meningkatkan kegunaan dan sharding per parameter. Harapkan integrasi yang lebih erat dengan paralelisme tensor dan pipeline untuk model triliunan parameter, dukungan yang lebih baik untuk presisi campuran dan fp8, serta pembungkusan otomatis yang lebih cerdas yang memilih batasan sharding untuk Anda. Seiring dengan semakin cepatnya interkoneksi antar-GPU seperti NVLink dan InfiniBand, biaya komunikasi sharding terus menyusut, sehingga praktis dalam skala yang semakin besar.
Mempraktikkannya
Mengapa itu penting
- Biaya dan anggaran. Keputusan arsitektur mendorong kinerja dan biaya pengoperasian selama bertahun-tahun.
- Keputusan yang lebih jelas. Pendidikan teknis membantu tim memilih tumpukan yang tepat, bukan hanya yang terbaru.
- Kontrol kualitas. Pilihan teknik yang lebih baik mengurangi insiden keandalan dalam produksi.
Hati-hati
- Mengoptimalkan satu tolok ukur dapat menyembunyikan kelemahan sistem yang lebih luas.
- Biaya infrastruktur dan pemeliharaan sering kali diremehkan.
- Kesenjangan keamanan dan kemampuan observasi dapat tumbuh seiring dengan semakin kompleksnya sistem.
Langkah selanjutnya
- Tentukan target latensi, kualitas, dan biaya sebelum penerapan.
- Tolok ukur dalam kondisi beban dan data yang realistis.
- Pemantauan instrumen untuk kesalahan, penyimpangan, dan dampak pengguna.
- Siapkan jalur rollback dan respons insiden sebelum melakukan penskalaan.
Terus Menjelajah
Buletin gratis
Dapatkan pengarahan AI harian
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
Take the Fully Sharded Data Parallel quiz
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
Pertanyaan yang sering diajukan
Apa itu Paralel Data yang Dipecah Sepenuhnya?
Fully Sharded Data Parallel (FSDP) adalah teknik pelatihan terdistribusi yang membagi parameter model, gradien, dan status pengoptimal di banyak GPU sehingga setiap perangkat hanya menampung satu irisan. Hal ini memungkinkan pelatihan model berukuran besar pada perangkat keras yang tidak akan pernah dapat memuat keseluruhan model dalam satu memori GPU.
Apa yang dilakukan FSDP di seluruh GPU yang TIDAK dimiliki oleh paralelisme data standar?
FSDP memecah parameter model, gradien, dan status pengoptimal di seluruh perangkat, sedangkan paralelisme data standar mereplikasi model lengkap di setiap GPU.
Operasi kolektif manakah yang digunakan FSDP untuk merekonstruksi seluruh bobot lapisan sebelum menghitungnya?
Sebelum lapisan dijalankan, FSDP melakukan pengumpulan semua untuk mengumpulkan sementara parameter lengkap dari semua pecahan, lalu membebaskannya setelahnya.
Mengapa FSDP membebaskan bobot penuh yang dikumpulkan segera setelah penghitungan lapisan?
Hanya memegang pecahan secara permanen dan mengumpulkan bobot penuh secara sementara adalah hal yang menjaga penggunaan memori tetap rendah dan kira-kira sebanding dengan satu pecahan model.
FSDP sebagian besar terinspirasi oleh pendekatan optimasi memori sebelumnya?
Pecahan parameter, gradien, dan status pengoptimal FSDP mengikuti ide yang diperkenalkan di ZeRO Microsoft dari perpustakaan DeepSpeed.
Bagaimana cara FSDP menyembunyikan sebagian besar latensi jaringan agar tidak mengumpulkan bobot?
FSDP mengambil terlebih dahulu parameter lapisan berikutnya sementara lapisan saat ini masih melakukan komputasi, sehingga tumpang tindih komunikasi semua pengumpulan dengan pekerjaan yang berguna.
Teruslah belajar
Panduan terkait
Panduan lainnya dipilih untuk topik ini