Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konsep paralelisme model
Paralelisme model adalah metode pelatihan terdistribusi di mana model pembelajaran mendalam (DL) dipartisi di beberapa dan contoh. GPUs SageMaker Model parallel library v2 (SMPv2) kompatibel dengan native PyTorch APIs dan kemampuan. Ini memudahkan Anda untuk menyesuaikan skrip pelatihan PyTorch Fully Sharded Data Parallel (FSDP) Anda ke platform SageMaker Pelatihan dan memanfaatkan peningkatan kinerja yang disediakan SMP v2. Halaman pengantar ini memberikan gambaran tingkat tinggi tentang paralelisme model dan deskripsi tentang bagaimana hal itu dapat membantu mengatasi masalah yang muncul saat melatih model pembelajaran mendalam (DL) yang biasanya berukuran sangat besar. Ini juga memberikan contoh apa yang ditawarkan perpustakaan paralel SageMaker model untuk membantu mengelola strategi paralel model dan konsumsi memori.
Apa itu paralelisme model?
Meningkatkan ukuran model pembelajaran mendalam (lapisan dan parameter) menghasilkan akurasi yang lebih baik untuk tugas-tugas kompleks seperti visi komputer dan pemrosesan bahasa alami. Namun, ada batasan untuk ukuran model maksimum yang dapat Anda muat dalam memori tunggalGPU. Saat melatih model DL, keterbatasan GPU memori dapat menjadi hambatan dengan cara berikut:
-
Mereka membatasi ukuran model yang dapat Anda latih, karena jejak memori model berskala proporsional dengan jumlah parameter.
-
Mereka membatasi ukuran per GPU batch selama pelatihan, menurunkan GPU pemanfaatan dan efisiensi pelatihan.
Untuk mengatasi keterbatasan yang terkait dengan pelatihan model pada satu modelGPU, SageMaker sediakan perpustakaan paralel model untuk membantu mendistribusikan dan melatih model DL secara efisien pada beberapa node komputasi. Selain itu, dengan perpustakaan, Anda dapat mencapai pelatihan terdistribusi yang dioptimalkan menggunakan perangkat yang EFA didukung, yang meningkatkan kinerja komunikasi antar-node dengan latensi rendah, throughput tinggi, dan bypass OS.
Perkirakan kebutuhan memori sebelum menggunakan paralelisme model
Sebelum Anda menggunakan perpustakaan paralel SageMaker model, pertimbangkan hal berikut untuk memahami persyaratan memori untuk melatih model DL besar.
Untuk pekerjaan pelatihan yang menggunakan presisi campuran otomatis seperti float16
(FP16) atau bfloat16
(BF16) dan pengoptimal Adam, GPU memori yang diperlukan per parameter adalah sekitar 20 byte, yang dapat kita uraikan sebagai berikut:
-
Sebuah FP16 atau BF16 parameter ~ 2 byte
-
Sebuah FP16 atau BF16 gradien ~ 2 byte
-
Status FP32 pengoptimal ~ 8 byte berdasarkan pengoptimal Adam
-
FP32Salinan parameter ~ 4 byte (diperlukan untuk operasi
optimizer apply
(OA)) -
FP32Salinan gradien ~ 4 byte (diperlukan untuk operasi OA)
Bahkan untuk model DL yang relatif kecil dengan 10 miliar parameter, dapat memerlukan setidaknya 200GB memori, yang jauh lebih besar daripada memori biasa (misalnya, NVIDIA A100 dengan GPU memori 40GB/80GB) yang tersedia dalam satu. GPU Di atas persyaratan memori untuk status model dan pengoptimal, ada konsumen memori lain seperti aktivasi yang dihasilkan dalam pass maju. Memori yang dibutuhkan bisa jauh lebih besar dari 200GB.
Untuk pelatihan terdistribusi, sebaiknya gunakan instans Amazon EC2 P4 dan P5 yang masing-masing memiliki NVIDIA A100 dan H100 Tensor Core. GPUs Untuk detail selengkapnya tentang spesifikasi seperti CPU intiRAM, volume penyimpanan terlampir, dan bandwidth jaringan, lihat bagian Komputasi Akselerasi di halaman Jenis EC2 Instans Amazon
Bahkan dengan instans komputasi yang dipercepat, model dengan sekitar 10 miliar parameter seperti Megatron-LM dan T5, dan bahkan model yang lebih besar dengan ratusan miliar parameter seperti GPT -3, tidak dapat memuat replika model di setiap perangkat. GPU
Bagaimana perpustakaan menggunakan paralelisme model dan teknik penghematan memori
Pustaka terdiri dari berbagai jenis fitur paralelisme model dan fitur hemat memori seperti sharding status pengoptimal, checkpointing aktivasi, dan pembongkaran aktivasi. Semua teknik ini dapat digabungkan untuk melatih model besar secara efisien yang terdiri dari ratusan miliar parameter.
Topik
Paralelisme data yang dibagikan
Paralelisme data sharded adalah teknik pelatihan terdistribusi hemat memori yang membagi keadaan model (parameter model, gradien, dan status pengoptimal) di dalam grup data-paralel. GPUs
SMPv2 mengimplementasikan paralelisme data yang dibagi melaluiFSDP, dan memperluasnya untuk mengimplementasikan strategi sharding hibrida sadar skala yang dibahas dalam posting blog Penskalaan hampir
Anda dapat menerapkan paralelisme data sharded ke model Anda sebagai strategi mandiri. Selain itu, jika Anda menggunakan GPU instans berkinerja terbaik yang dilengkapi dengan NVIDIA A100 Tensor CoreGPUs, ml.p4d.24xlarge
danml.p4de.24xlarge
, Anda dapat memanfaatkan peningkatan kecepatan pelatihan dari AllGather
operasi yang ditawarkan oleh pustaka SageMaker data parallelism (). SMDDP
Untuk menyelam jauh ke dalam paralelisme data sharded dan mempelajari cara mengaturnya atau menggunakan kombinasi paralelisme data sharded dengan teknik lain seperti paralelisme tensor dan pelatihan presisi campuran, lihat. Paralelisme data sharded hibrida
Paralelisme ahli
SMPv2 terintegrasi dengan NVIDIAMegatron
Model MoE adalah jenis model transformator yang terdiri dari beberapa ahli, masing-masing terdiri dari jaringan saraf, biasanya jaringan feed-forward (). FFN Jaringan gerbang yang disebut router menentukan token mana yang dikirim ke ahli mana. Para ahli ini mengkhususkan diri dalam memproses aspek-aspek spesifik dari data input, memungkinkan model untuk melatih lebih cepat, mengurangi biaya komputasi, sambil mencapai kualitas kinerja yang sama dengan model padat mitranya. Dan paralelisme ahli adalah teknik paralelisme yang menangani para ahli pemisahan model MoE di seluruh perangkat. GPU
Untuk mempelajari cara melatih model MoE dengan SMP v2, lihatParalelisme ahli.
Paralelisme tensor
Paralelisme tensor membagi lapisan individu, ataunn.Modules
, di seluruh perangkat untuk berjalan secara paralel. Gambar berikut menunjukkan contoh paling sederhana tentang bagaimana SMP perpustakaan membagi model dengan empat lapisan untuk mencapai paralelisme tensor dua arah (). "tensor_parallel_degree": 2
Pada gambar berikut, notasi untuk grup paralel model, grup paralel tensor, dan grup paralel data adalahMP_GROUP
,TP_GROUP
, dan DP_GROUP
masing-masing. Lapisan setiap replika model dibagi dua dan didistribusikan menjadi dua. GPUs Perpustakaan mengelola komunikasi di seluruh replika model terdistribusi tensor.
Untuk menyelam jauh ke dalam paralelisme tensor dan fitur hemat memori lainnya untuk PyTorch, dan untuk mempelajari cara mengatur kombinasi fitur inti, lihat. Paralelisme tensor
Titik pemeriksaan aktivasi dan pembongkaran
Untuk menghemat GPU memori, pustaka mendukung checkpointing aktivasi untuk menghindari penyimpanan aktivasi internal dalam GPU memori untuk modul yang ditentukan pengguna selama forward pass. Pustaka menghitung ulang aktivasi ini selama pass mundur. Selain itu, dengan pembongkaran aktivasi, ia menurunkan aktivasi yang disimpan ke CPU memori dan mengambilnya kembali GPU selama lintasan mundur untuk lebih mengurangi jejak memori aktivasi. Untuk informasi selengkapnya tentang cara menggunakan fitur ini, lihat Pos pemeriksaan aktivasi danPembongkaran aktivasi.
Memilih teknik yang tepat untuk model Anda
Untuk informasi selengkapnya tentang memilih teknik dan konfigurasi yang tepat, lihatSageMaker praktik terbaik paralelisme model terdistribusi.