View a markdown version of this page

Memulai pelatihan terdistribusi di Amazon 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.

Memulai pelatihan terdistribusi di Amazon SageMaker AI

Halaman berikut memberikan informasi tentang langkah-langkah yang diperlukan untuk memulai pelatihan terdistribusi di Amazon SageMaker AI. Jika Anda sudah terbiasa dengan pelatihan terdistribusi, pilih salah satu opsi berikut yang sesuai dengan strategi atau kerangka kerja pilihan Anda untuk memulai. Jika Anda ingin mempelajari tentang pelatihan terdistribusi secara umum, lihatKonsep pelatihan terdistribusi.

Perpustakaan pelatihan terdistribusi SageMaker AI dioptimalkan untuk lingkungan SageMaker pelatihan, membantu menyesuaikan pekerjaan pelatihan terdistribusi Anda dengan SageMaker AI, dan meningkatkan kecepatan dan throughput pelatihan. Perpustakaan menawarkan strategi pelatihan paralel data dan model paralel. Mereka menggabungkan teknologi perangkat lunak dan perangkat keras untuk meningkatkan komunikasi antar GPU dan antar node, dan memperluas kemampuan pelatihan SageMaker AI dengan opsi bawaan yang memerlukan perubahan kode minimal pada skrip pelatihan Anda. 

Sebelum Anda memulai

SageMaker Pelatihan mendukung pelatihan terdistribusi pada satu instans serta beberapa instans, sehingga Anda dapat menjalankan berbagai ukuran pelatihan dalam skala besar.

Kami menyarankan Anda untuk menggunakan ModelTrainer kelas dengan PyTorch dan TensorFlow di SageMaker Python SDK, yang merupakan peluncur pekerjaan pelatihan dengan berbagai opsi pelatihan terdistribusi. Saat Anda membuat ModelTrainer objek, objek menyiapkan infrastruktur pelatihan terdistribusi, menjalankan CreateTrainingJob API di backend, menemukan Wilayah tempat sesi Anda saat ini berjalan, dan menarik salah satu wadah pembelajaran AWS mendalam yang sudah dibuat sebelumnya yang dikemas dengan sejumlah pustaka termasuk kerangka kerja pembelajaran mendalam, kerangka pelatihan terdistribusi, dan driver EFA. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html Jika Anda ingin memasang sistem file FSx ke instans pelatihan, Anda harus meneruskan subnet VPC dan ID grup keamanan ke. ModelTrainer

Sebelum menjalankan pekerjaan pelatihan terdistribusi Anda di SageMaker AI, baca panduan umum berikut tentang pengaturan infrastruktur dasar.

Zona ketersediaan dan backplane jaringan

Saat menggunakan beberapa instance (juga disebut node), penting untuk memahami jaringan yang menghubungkan instance, cara mereka membaca data pelatihan, dan bagaimana mereka berbagi informasi di antara mereka sendiri. Misalnya, saat Anda menjalankan tugas pelatihan paralel data terdistribusi, sejumlah faktor, seperti komunikasi antara node cluster komputasi untuk menjalankan AllReduce operasi dan transfer data antara node dan penyimpanan data di Amazon Simple Storage Service atau Amazon FSx for Lustre, memainkan peran penting untuk mencapai penggunaan sumber daya komputasi yang optimal dan kecepatan pelatihan yang lebih cepat. Untuk mengurangi overhead komunikasi, pastikan Anda mengonfigurasi instance, subnet VPC, dan penyimpanan data di Zona Ketersediaan yang sama Wilayah AWS .

Instans GPU dengan jaringan yang lebih cepat dan penyimpanan throughput tinggi

Anda secara teknis dapat menggunakan instance apa pun untuk pelatihan terdistribusi. Untuk kasus di mana Anda perlu menjalankan tugas pelatihan terdistribusi multi-node untuk melatih model besar, seperti model bahasa besar (LLM) dan model difusi, yang memerlukan pergantian antar node lebih cepat, kami merekomendasikan instans EFA-enabled GPU yang didukung oleh AI. SageMaker Terutama, untuk mencapai pekerjaan pelatihan terdistribusi yang paling berkinerja di SageMaker AI, kami merekomendasikan instans P4d dan P4de yang dilengkapi dengan GPU NVIDIA A100. Ini juga dilengkapi dengan penyimpanan instans lokal latensi rendah throughput tinggi dan jaringan intra-node yang lebih cepat. Untuk penyimpanan data, kami merekomendasikan Amazon FSx for Lustre yang menyediakan throughput tinggi untuk menyimpan kumpulan data pelatihan dan pos pemeriksaan model.

Gunakan pustaka paralelisme data terdistribusi SageMaker AI (SMDDP)

Pustaka SMDDP meningkatkan komunikasi antar node dengan implementasi AllReduce dan operasi komunikasi AllGather kolektif yang dioptimalkan untuk infrastruktur AWS jaringan dan topologi instance Amazon SageMaker AI ML. Anda dapat menggunakan pustaka SMDDP sebagai backend paket pelatihan terdistribusi: paralel data PyTorch-based ter PyTorch distribusi (DDP), paralelisme data tersharded PyTorch penuh (FSDP),, dan. DeepSpeed Megatron-DeepSpeed Contoh kode berikut menunjukkan cara mengatur PyTorch estimator untuk meluncurkan pekerjaan pelatihan terdistribusi pada dua ml.p4d.24xlarge instance.

from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), # Activate distributed training with SMDDP distributed=Torchrun() )

Untuk mempelajari cara menyiapkan skrip pelatihan Anda dan meluncurkan pekerjaan pelatihan paralel data terdistribusi di SageMaker AI, lihatJalankan pelatihan terdistribusi dengan perpustakaan paralelisme data terdistribusi SageMaker AI.

Gunakan perpustakaan paralelisme model SageMaker AI (SMP)

SageMaker AI menyediakan pustaka SMP dan mendukung berbagai teknik pelatihan terdistribusi, seperti paralelisme data sharded, pipelining, paralelisme tensor, sharding status pengoptimal, dan banyak lagi. Untuk mempelajari lebih lanjut tentang apa yang ditawarkan perpustakaan SMP, lihatFitur Inti dari Perpustakaan Paralelisme SageMaker Model.

Untuk menggunakan perpustakaan paralelisme model SageMaker AI, konfigurasikan distribution parameter estimator kerangka kerja SageMaker AI.

ModelTrainer Kelas mendukung PyTorch dan TensorFlow. Contoh kode berikut menunjukkan bagaimana membangun pelatihan terdistribusi ModelTrainer dengan pustaka paralelisme model pada dua ml.p4d.24xlarge contoh.

from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() )

Untuk mempelajari cara mengadaptasi skrip pelatihan Anda, mengonfigurasi parameter distribusi di estimator kelas, dan meluncurkan pekerjaan pelatihan terdistribusi, lihat pustaka paralelisme model SageMaker AI (lihat juga API Pelatihan Terdistribusi dalam dokumentasi SageMaker Python SDK).

Gunakan kerangka pelatihan terdistribusi sumber terbuka

SageMaker AI juga mendukung opsi berikut untuk beroperasi mpirun dan torchrun di backend.

  • Untuk menggunakan PyTorch DistributedDataParallel (DDP) di SageMaker AI dengan mpirun backend, tambahkan distribution={"pytorchddp": {"enabled": True}} ke estimator Anda PyTorch. Untuk informasi selengkapnya, lihat juga PyTorch distribution Argumen Pel atihan SageMaker Ter PyTorch distribusi dan AI Estimator dalam dokumentasi SageMaker Python SDK.

    catatan

    Opsi ini tersedia untuk PyTorch 1.12.0 dan yang lebih baru.

    from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() # runs torchrun in the backend )
  • SageMaker AI mendukung PyTorch torchrun peluncur untuk pelatihan terdistribusi pada instans GPU-based Amazon EC2, seperti P3 dan P4, serta Trn1 yang didukung oleh perangkat Trainium. AWS

    Untuk menggunakan PyTorch DistributedDataParallel (DDP) di SageMaker AI dengan torchrun backend, tambahkan distribution={"torch_distributed": {"enabled": True}} ke estimator. PyTorch

    catatan

    Opsi ini tersedia untuk PyTorch 1.13.0 dan yang lebih baru.

    Cuplikan kode berikut menunjukkan contoh pembuatan PyTorch estimator SageMaker AI untuk menjalankan pelatihan terdistribusi pada dua ml.p4d.24xlarge contoh dengan opsi torch_distributed distribusi.

    from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() # runs torchrun in the backend )

    Untuk informasi selengkapnya, lihat distribution Argum PyTorch en Pelatihan SageMaker Ter PyTorch distribusi dan AI Estimator dalam dokumentasi SageMaker Python SDK.

    Catatan untuk pelatihan terdistribusi di Trn1

    Instans Trn1 terdiri dari hingga 16 perangkat Trainium, dan setiap perangkat Trainium terdiri dari dua. NeuronCores Untuk spesifikasi perangkat AWS Trainium, lihat Arsitektur Trainium di Dokumentasi AWS Neuron.

    Untuk melatih Trainium-powered instance, Anda hanya perlu menentukan kode instance Trn1,ml.trn1.*, dalam string ke instance_type argumen kelas PyTorch estimator SageMaker AI. Untuk menemukan jenis instans Trn1 yang tersedia, lihat Arsit AWS ektur Trn1 dalam dokumentasi N AWS euron.

    catatan

    SageMaker Pelatihan tentang instans Amazon EC2 Trn1 saat ini hanya tersedia untuk PyTorch kerangka kerja di AWS Deep Learning Containers for N PyTorch euron mulai v1.11.0. Untuk menemukan daftar lengkap versi PyTorch Neuron yang didukung, lihat Kontainer Neuron di GitHub repositori AWS Deep Learning Containers.

    Saat Anda meluncurkan pekerjaan pelatihan pada instans Trn1 menggunakan SageMaker Python SDK, SageMaker AI secara otomatis mengambil dan menjalankan wadah yang tepat dari N euron Container yang disediakan oleh AWS Deep Learning Containers. Kontainer Neuron sudah dikemas dengan pengaturan lingkungan pelatihan dan dependensi untuk memudahkan adaptasi pekerjaan pelatihan Anda ke platform Pelatihan dan inst SageMaker ans Amazon EC2 Trn1.

    catatan

    Untuk menjalankan pekerjaan PyTorch pelatihan Anda pada instans Trn1 dengan SageMaker AI, Anda harus memodifikasi skrip pelatihan Anda untuk menginisialisasi grup proses dengan xla backend dan penggunaan. PyTorch/XLA Untuk mendukung proses adopsi XLA, AWS Neuron SDK menyediakan N PyTorch euron yang menggunakan XLA untuk membuat konversi PyTorch operasi ke instruksi Trainium. Untuk mempelajari cara memodifikasi skrip pelatihan Anda, lihat Panduan Pengembang untuk Pelatihan dengan PyTorch Neuron (torch-neuronx) di Dokumentasi AWS Neuron.

    Untuk informasi selengkapnya, lihat Pelatihan Terdistribusi dengan N PyTorch euron pada instance Trn1 dan distribution argum SageMaker en PyTorch AI Estimator dalam dokumentasi SageMaker Python SDK.

  • Untuk menggunakan MPI di SageMaker AI, tambahkan distribution={"mpi": {"enabled": True}} ke estimator Anda. Opsi distribusi MPI tersedia untuk kerangka kerja berikut: MXnet, PyTorch, dan TensorFlow.

  • Untuk menggunakan server parameter di SageMaker AI, tambahkan distribution={"parameter_server": {"enabled": True}} ke estimator Anda. Opsi server parameter tersedia untuk kerangka kerja berikut: MXnet, PyTorch, dan TensorFlow.

    Tip

    Untuk informasi selengkapnya tentang menggunakan opsi server MPI dan parameter per kerangka kerja, gunakan tautan berikut ke dokumentasi SageMaker Python SDK.