Pengantar perpustakaan paralelisme data terdistribusi SageMaker AI - Amazon SageMaker AI

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

Pengantar perpustakaan paralelisme data terdistribusi SageMaker AI

Pustaka paralelisme data terdistribusi SageMaker AI adalah perpustakaan komunikasi kolektif yang meningkatkan kinerja komputasi pelatihan paralel data terdistribusi. SMDDP SMDDPPerpustakaan menangani overhead komunikasi dari operasi komunikasi kolektif utama dengan menawarkan yang berikut ini.

  1. Perpustakaan menawarkan AllReduce dioptimalkan untuk AWS. AllReduceadalah operasi kunci yang digunakan untuk menyinkronkan gradien GPUs di akhir setiap iterasi pelatihan selama pelatihan data terdistribusi.

  2. Perpustakaan menawarkan AllGather dioptimalkan untuk AWS. AllGatheradalah operasi kunci lain yang digunakan dalam pelatihan paralelisme data sharded, yang merupakan teknik paralelisme data hemat memori yang ditawarkan oleh perpustakaan populer seperti perpustakaan paralelisme model SageMaker AI (), DeepSpeed Zero Redundancy Optimizer (ZeroSMP), dan Fully Sharded Data Parallelism (). PyTorch FSDP

  3. Pustaka melakukan node-to-node komunikasi yang dioptimalkan dengan sepenuhnya memanfaatkan infrastruktur AWS jaringan dan topologi EC2 instans Amazon.

SMDDPPustaka dapat meningkatkan kecepatan pelatihan dengan menawarkan peningkatan kinerja saat Anda menskalakan klaster pelatihan Anda, dengan efisiensi penskalaan hampir linier.

catatan

Perpustakaan pelatihan terdistribusi SageMaker AI tersedia melalui wadah pembelajaran AWS mendalam untuk PyTorch dan Hugging Face dalam platform SageMaker Pelatihan. Untuk menggunakan pustaka, Anda harus menggunakan SageMaker SDK Python atau SageMaker APIs melalui SDK untuk Python (Boto3) atau. AWS Command Line Interface Sepanjang dokumentasi, instruksi dan contoh berfokus pada cara menggunakan pustaka pelatihan terdistribusi dengan SageMaker PythonSDK.

SMDDPoperasi komunikasi kolektif dioptimalkan untuk sumber daya AWS komputasi dan infrastruktur jaringan

SMDDPPerpustakaan menyediakan implementasi operasi AllGather kolektif yang AllReduce dioptimalkan untuk sumber daya AWS komputasi dan infrastruktur jaringan.

SMDDPAllReduceoperasi kolektif

SMDDPPerpustakaan mencapai tumpang tindih AllReduce operasi yang optimal dengan backward pass, secara signifikan meningkatkan pemanfaatan. GPU Ini mencapai efisiensi penskalaan hampir linier dan kecepatan pelatihan yang lebih cepat dengan mengoptimalkan operasi kernel antara dan. CPUs GPUs Library bekerja AllReduce secara paralel saat GPU menghitung gradien tanpa menghilangkan GPU siklus tambahan, yang membuat perpustakaan mencapai pelatihan lebih cepat.

  • Leverages CPUs: Pustaka menggunakan CPUs AllReduce gradien, membongkar tugas ini dari file. GPUs

  • Peningkatan GPU penggunaan: GPUs Fokus cluster pada gradien komputasi, meningkatkan pemanfaatannya selama pelatihan.

Berikut ini adalah alur kerja tingkat tinggi dari operasi. SMDDP AllReduce

  1. Perpustakaan memberikan peringkat ke GPUs (pekerja).

  2. Pada setiap iterasi, perpustakaan membagi setiap batch global dengan jumlah total pekerja (ukuran dunia) dan memberikan batch kecil (pecahan batch) kepada pekerja.

    • Ukuran batch global adalah(number of nodes in a cluster) * (number of GPUs per node) * (per batch shard).

    • Batch shard (batch kecil) adalah subset dari dataset yang ditetapkan untuk masing-masing GPU (pekerja) per iterasi.

  3. Perpustakaan meluncurkan skrip pelatihan pada setiap pekerja.

  4. Pustaka mengelola salinan bobot model dan gradien dari pekerja di akhir setiap iterasi.

  5. Pustaka menyinkronkan bobot dan gradien model di seluruh pekerja untuk menggabungkan satu model terlatih.

Diagram arsitektur berikut menunjukkan contoh bagaimana perpustakaan mengatur paralelisme data untuk cluster 3 node.

SMDDP AllReduce dan diagram arsitektur paralelisme data

SMDDPAllGatheroperasi kolektif

AllGatheradalah operasi kolektif di mana setiap pekerja memulai dengan buffer input, dan kemudian menggabungkan atau mengumpulkan buffer input dari semua pekerja lain ke dalam buffer output.

catatan

Operasi SMDDP AllGather kolektif tersedia di smdistributed-dataparallel>=2.0.1 dan AWS Deep Learning Containers (DLC) untuk PyTorch v2.0.1 dan yang lebih baru.

AllGatherbanyak digunakan dalam teknik pelatihan terdistribusi seperti paralelisme data sharded di mana setiap pekerja individu memegang sebagian kecil dari model, atau lapisan sharded. Para pekerja memanggil AllGather sebelum umpan maju dan mundur untuk merekonstruksi lapisan yang dipecah. Pass maju dan mundur terus berlanjut setelah semua parameter dikumpulkan. Selama pass mundur, setiap pekerja juga memanggil ReduceScatter untuk mengumpulkan (mengurangi) gradien dan memecah (menyebarkan) mereka menjadi pecahan gradien untuk memperbarui lapisan sharded yang sesuai. Untuk detail lebih lanjut tentang peran operasi kolektif ini dalam paralelisme data sharded, lihat implementasi SMP perpustakaan tentang paralelisme data sharded, Zero dalam DeepSpeed dokumentasi, dan blog tentang Fully Sharded Data Parallelism. PyTorch

Karena operasi kolektif seperti AllGather dipanggil dalam setiap iterasi, mereka adalah kontributor utama untuk GPU overhead komunikasi. Perhitungan yang lebih cepat dari operasi kolektif ini secara langsung diterjemahkan ke waktu pelatihan yang lebih singkat tanpa efek samping pada konvergensi. Untuk mencapai hal ini, SMDDP perpustakaan menawarkan AllGather dioptimalkan untuk instance P4d.

SMDDPAllGathermenggunakan teknik berikut untuk meningkatkan kinerja komputasi pada instance P4d.

  1. Ini mentransfer data antar instance (antar-node) melalui jaringan Elastic Fabric Adapter (EFA) dengan topologi mesh. EFAadalah solusi jaringan AWS latensi rendah dan throughput tinggi. Topologi mesh untuk komunikasi jaringan antar simpul lebih disesuaikan dengan karakteristik dan infrastruktur jaringan. EFA AWS Dibandingkan dengan topologi NCCL ring atau tree yang melibatkan beberapa packet hop, SMDDP hindari akumulasi latensi dari beberapa hop karena hanya membutuhkan satu hop. SMDDPmengimplementasikan algoritma kontrol laju jaringan yang menyeimbangkan beban kerja untuk setiap rekan komunikasi dalam topologi mesh dan mencapai throughput jaringan global yang lebih tinggi.

  2. Ini mengadopsi perpustakaan salinan GPU memori latensi rendah berdasarkan NVIDIA GPUDirect RDMA teknologi (GDRCopy) untuk mengoordinasikan lalu lintas lokal NVLink dan EFA jaringan. GDRCopy, pustaka salinan GPU memori latensi rendah yang ditawarkan olehNVIDIA, menyediakan komunikasi latensi rendah antara CPU proses dan kernel. GPU CUDA Dengan teknologi ini, SMDDP perpustakaan dapat menyalurkan pergerakan data intra-node dan antar-node.

  3. Ini mengurangi penggunaan multiprosesor GPU streaming untuk meningkatkan daya komputasi untuk menjalankan kernel model. Instans P4d dan P4de dilengkapi dengan NVIDIA A100GPUs, yang masing-masing memiliki 108 multiprosesor streaming. Sementara NCCL membutuhkan hingga 24 multiprosesor streaming untuk menjalankan operasi kolektif, SMDDP menggunakan kurang dari 9 multiprosesor streaming. Kernel komputasi model mengambil multiprosesor streaming yang disimpan untuk komputasi yang lebih cepat.