Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Paralelisme model adalah metode pelatihan terdistribusi di mana model pembelajaran mendalam (DL) dipartisi di beberapa dan contoh. GPUs SageMaker Model parallel library v2 (SMP v2) 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 satu GPU. Saat melatih model DL, batasan memori GPU 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 batch per GPU selama pelatihan, menurunkan pemanfaatan GPU dan efisiensi pelatihan.
Untuk mengatasi keterbatasan yang terkait dengan pelatihan model pada satu GPU, SageMaker AI menyediakan 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 didukung EFA, 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 pelatihan model DL besar.
Untuk pekerjaan pelatihan yang menggunakan presisi campuran otomatis seperti float16
(FP16) atau bfloat16
(BF16) dan pengoptimal Adam, memori GPU 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
-
FP32 Salinan parameter ~ 4 byte (diperlukan untuk operasi
optimizer apply
(OA)) -
FP32 Salinan 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 GPU biasa (misalnya, NVIDIA A100 dengan memori 40GB/80GB) yang tersedia pada 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, kami menyarankan Anda menggunakan instans Amazon EC2 P4 dan P5 yang masing-masing memiliki NVIDIA A100 dan H100 Tensor Core. GPUs Untuk detail selengkapnya tentang spesifikasi seperti inti CPU, RAM, 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
Anda dapat menerapkan paralelisme data sharded ke model Anda sebagai strategi mandiri. Selain itu, jika Anda menggunakan instans GPU paling berkinerja yang dilengkapi dengan NVIDIA A100 Tensor Core GPUs, ml.p4d.24xlarge
danml.p4de.24xlarge
, Anda dapat memanfaatkan peningkatan kecepatan pelatihan dari AllGather
operasi yang ditawarkan oleh perpustakaan paralelisme SageMaker data (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
SMP v2 terintegrasi dengan NVIDIA Megatron
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, lihat. Paralelisme 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 perpustakaan SMP 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 menyimpan memori GPU, pustaka mendukung checkpointing aktivasi untuk menghindari penyimpanan aktivasi internal dalam memori GPU 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 memori CPU dan mengambilnya kembali ke 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.