View a markdown version of this page

Mekanisme Peringkat saat Menggunakan Kombinasi Paralelisme Pipa dan Paralelisme Tensor - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mekanisme Peringkat saat Menggunakan Kombinasi Paralelisme Pipa dan Paralelisme Tensor

Bagian ini menjelaskan bagaimana mekanisme peringkat paralelisme model bekerja dengan paralelisme tensor. Ini diperluas dari Dasar-Das ar Per ingkat untukFitur Inti dari Perpustakaan Paralelisme SageMaker Model. Dengan paralelisme tensor, pustaka memperkenalkan tiga jenis API peringkat dan grup proses: smp.tp_rank() untuk peringkat paralel tensor, untuk peringkat paralel pipeline, dan smp.pp_rank() smp.rdp_rank() untuk peringkat paralel data yang dikurangi. Kelompok proses komunikasi yang sesuai adalah grup paralel tensor (TP_GROUP), grup paralel pipa (PP_GROUP), dan grup paralel data tereduksi (). RDP_GROUP Kelompok-kelompok ini didefinisikan sebagai berikut:

  • G ugus paralel tensor (TP_GROUP) adalah subset yang dapat dibagi secara merata dari kelompok paralel data, di mana distribusi modul paralel tensor berlangsung. Ketika derajat paralelisme pipa adalah 1, sama TP_GROUP dengan kelompok paralel model ()MP_GROUP.

  • Grup paralel pipa (PP_GROUP) adalah kelompok proses di mana paralelisme pipa terjadi. Ketika derajat paralelisme tensor adalah 1, sama PP_GROUP dengan. MP_GROUP

  • Grup paralel data tereduksi (RDP_GROUP) adalah sekumpulan proses yang memegang partisi paralelisme pipa yang sama dan partisi paralel tensor yang sama, dan melakukan paralelisme data di antara mereka sendiri. Ini disebut kelompok paralel data tereduksi karena merupakan bagian dari seluruh kelompok paralelisme data,. DP_GROUP Untuk parameter model yang didistribusikan di dalamTP_GROUP, allreduce operasi gradien dilakukan hanya untuk grup paralel data yang dikurangi, sedangkan untuk parameter yang tidak didistribusikan, gradien allreduce berlangsung di seluruh. DP_GROUP

  • Grup paralel model (MP_GROUP) mengacu pada sekelompok proses yang secara kolektif menyimpan seluruh model. Ini terdiri dari penyatuan PP_GROUP s dari semua jajaran yang berada dalam TP_GROUP proses saat ini. Ketika derajat paralelisme tensor adalah 1, MP_GROUP setara dengan. PP_GROUP Hal ini juga konsisten dengan definisi yang ada MP_GROUP dari smdistributed rilis sebelumnya. Perhatikan bahwa arus TP_GROUP adalah bagian dari arus DP_GROUP dan arus. MP_GROUP

Untuk mempelajari lebih lanjut tentang API proses komunikasi di pust SageMaker aka paralelisme model, lihat Com mon API dan PyTorch-specific API dalam dokumentasi SageMaker Python SDK.

Mekanisme peringkat, distribusi parameter, dan AllReduce operasi terkait paralelisme tensor.

Misalnya, pertimbangkan kelompok proses untuk satu node dengan 8 GPU, di mana tingkat paralelisme tensor adalah 2, derajat paralelisme pipa adalah 2, dan tingkat paralelisme data adalah 4. Bagian tengah atas dari gambar sebelumnya menunjukkan contoh model dengan 4 lapisan. Bagian kiri bawah dan kanan bawah gambar menggambarkan model 4-lapisan yang didistribusikan di 4 GPU menggunakan paralelisme pipa dan paralelisme tensor, di mana paralelisme tensor digunakan untuk dua lapisan tengah. Kedua angka yang lebih rendah ini adalah salinan sederhana untuk menggambarkan garis batas kelompok yang berbeda. Model yang dipartisi direplikasi untuk paralelisme data di seluruh GPU 0-3 dan 4-7. Gambar kiri bawah menunjukkan definisiMP_GROUP,PP_GROUP, danTP_GROUP. Gambar kanan bawah menunjukkanRDP_GROUP,DP_GROUP, dan WORLD di atas set GPU yang sama. Gradien untuk lapisan dan irisan lapisan yang memiliki warna yang sama adalah allreduce d bersama-sama untuk paralelisme data. Misalnya, lapisan pertama (biru muda) melakukan allreduce operasiDP_GROUP, sedangkan irisan oranye gelap di lapisan kedua hanya mendapatkan allreduce operasi dalam RDP_GROUP prosesnya. Panah merah tua tebal mewakili tensor dengan kumpulan keseluruhannya. TP_GROUP

GPU0: pp_rank 0, tp_rank 0, rdp_rank 0, dp_rank 0, mp_rank 0 GPU1: pp_rank 1, tp_rank 0, rdp_rank 0, dp_rank 0, mp_rank 1 GPU2: pp_rank 0, tp_rank 1, rdp_rank 0, dp_rank 1, mp_rank 2 GPU3: pp_rank 1, tp_rank 1, rdp_rank 0, dp_rank 1, mp_rank 3 GPU4: pp_rank 0, tp_rank 0, rdp_rank 1, dp_rank 2, mp_rank 0 GPU5: pp_rank 1, tp_rank 0, rdp_rank 1, dp_rank 2, mp_rank 1 GPU6: pp_rank 0, tp_rank 1, rdp_rank 1, dp_rank 3, mp_rank 2 GPU7: pp_rank 1, tp_rank 1, rdp_rank 1, dp_rank 3, mp_rank 3

Dalam contoh ini, paralelisme pipeline terjadi di seluruh pasangan GPU (0,1); (2,3); (4,5) dan (6,7). Selain itu, paralelisme data (allreduce) terjadi di seluruh GPU 0, 2, 4, 6, dan secara independen melalui GPU 1, 3, 5, 7. Paralelisme tensor terjadi pada himpunan bagian dari DP_GROUP s, melintasi pasangan GPU (0,2); (1,3); (4,6) dan (5,7).