Memulai pelatihan terdistribusi di Amazon SageMaker - Amazon SageMaker

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

Halaman berikut memberikan informasi tentang langkah-langkah yang diperlukan untuk memulai pelatihan terdistribusi di Amazon SageMaker. 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 belajar tentang pelatihan terdistribusi secara umum, lihatKonsep pelatihan terdistribusi.

Perpustakaan pelatihan SageMaker terdistribusi dioptimalkan untuk lingkungan SageMaker pelatihan, membantu menyesuaikan pekerjaan pelatihan terdistribusi Anda SageMaker, 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 simpul, dan memperluas SageMaker kemampuan pelatihan 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 instance, sehingga Anda dapat menjalankan berbagai ukuran pelatihan dalam skala besar. Kami menyarankan Anda untuk menggunakan kelas estimator kerangka kerja seperti PyTorchdan TensorFlowdi SageMaker SDK Python, yang merupakan peluncur pekerjaan pelatihan dengan berbagai opsi pelatihan terdistribusi. Saat Anda membuat objek estimator, objek menyiapkan infrastruktur pelatihan terdistribusi, menjalankan backend, menemukan Wilayah tempat sesi Anda saat ini berjalan, dan menarik salah satu wadah pembelajaran AWS mendalam yang telah dibuat sebelumnya yang dikemas dengan sejumlah pustaka termasuk kerangka kerja pembelajaran mendalam, kerangka kerja pelatihan terdistribusi, dan driver. CreateTrainingJob API EFA Jika Anda ingin memasang sistem FSx file ke instance pelatihan, Anda harus meneruskan VPC subnet dan ID grup keamanan Anda ke estimator. Sebelum menjalankan pekerjaan pelatihan terdistribusi Anda di SageMaker, 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, bagaimana 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, VPC subnet, dan penyimpanan data di Availability Zone yang sama Wilayah AWS .

GPUinstans 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 pekerjaan pelatihan terdistribusi multi-node untuk melatih model besar, seperti model bahasa besar (LLMs) dan model difusi, yang memerlukan pergantian antar-simpul yang lebih cepat, kami merekomendasikan instance berkemampuan -didukung oleh. EFA GPU SageMaker Khususnya, untuk mencapai pekerjaan pelatihan terdistribusi yang paling berkinerja di SageMaker, kami merekomendasikan instans P4d dan P4de yang dilengkapi dengan A100. NVIDIA GPUs 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 untuk Lustre yang menyediakan throughput tinggi untuk menyimpan kumpulan data pelatihan dan pos pemeriksaan model.

Gunakan SageMaker pustaka paralelisme data terdistribusi () SMDDP

SMDDPPustaka meningkatkan komunikasi antar node dengan implementasi AllReduce dan operasi komunikasi AllGather kolektif yang dioptimalkan untuk infrastruktur AWS jaringan dan topologi instans Amazon SageMaker ML. Anda dapat menggunakan SMDDPpustaka sebagai backend paket pelatihan terdistribusi PyTorch berbasis: PyTorch distributeddata parallel (DDP), PyTorch full sharded data parallelism (FSDP), DeepSpeeddan Megatron-. DeepSpeed Contoh kode berikut menunjukkan cara mengatur PyTorch estimator untuk meluncurkan pekerjaan pelatihan terdistribusi pada dua ml.p4d.24xlarge instance.

from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=2, instance_type="ml.p4d.24xlarge", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather )

Untuk mempelajari cara menyiapkan skrip pelatihan Anda dan meluncurkan pekerjaan pelatihan paralel data terdistribusi SageMaker, lihat. Jalankan pelatihan terdistribusi dengan SageMaker pustaka paralelisme data terdistribusi

Gunakan perpustakaan paralelisme SageMaker model () SMP

SageMaker menyediakan SMP perpustakaan 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 SMP perpustakaan, lihatFitur Inti dari Perpustakaan Paralelisme SageMaker Model.

Untuk menggunakan SageMaker pustaka paralelisme model, konfigurasikan distribution parameter estimator SageMaker kerangka kerja. Estimator kerangka kerja yang didukung adalah PyTorchdan TensorFlow. Contoh kode berikut menunjukkan bagaimana membangun estimator kerangka kerja untuk pelatihan terdistribusi dengan pustaka paralelisme model pada dua instance. ml.p4d.24xlarge

from sagemaker.framework import Framework distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # enter parameter key-value pairs here } }, }, "mpi": { "enabled" : True, ... # enter parameter key-value pairs here } } estimator = Framework( ..., instance_count=2, instance_type="ml.p4d.24xlarge", distribution=distribution )

Untuk mempelajari cara mengadaptasi skrip pelatihan Anda, mengonfigurasi parameter distribusi di estimator kelas, dan meluncurkan tugas pelatihan terdistribusi, lihat SageMakerperpustakaan paralelisme model (lihat juga Pelatihan Terdistribusi APIs dalam dokumentasi SageMaker SDKPython).

Gunakan kerangka kerja pelatihan terdistribusi open source

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

  • Untuk menggunakan PyTorch DistributedDataParallel (DDP) SageMaker dengan mpirun backend, tambahkan distribution={"pytorchddp": {"enabled": True}} ke estimator Anda PyTorch. Untuk informasi selengkapnya, lihat juga distribution argumen Pelatihan PyTorch Terdistribusi dan SageMaker PyTorch Estimator dalam dokumentasi SageMaker SDKPython.

    catatan

    Opsi ini tersedia untuk PyTorch 1.12.0 dan yang lebih baru.

    from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=2, instance_type="ml.p4d.24xlarge", distribution={"pytorchddp": {"enabled": True}} # runs mpirun in the backend )
  • SageMaker mendukung PyTorch torchrunpeluncur untuk pelatihan terdistribusi pada EC2 instans Amazon GPU berbasis, seperti P3 dan P4, serta Trn1 yang didukung oleh perangkat Trainium.AWS

    Untuk menggunakan PyTorch DistributedDataParallel (DDP) SageMaker 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 membangun SageMaker PyTorch estimator untuk menjalankan pelatihan terdistribusi pada dua ml.p4d.24xlarge instance dengan opsi distribusi. torch_distributed

    from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=2, instance_type="ml.p4d.24xlarge", distribution={"torch_distributed": {"enabled": True}} # runs torchrun in the backend )

    Untuk informasi selengkapnya, lihat distribution Argumen PyTorch Pelatihan Terdistribusi dan SageMaker PyTorch Estimator dalam dokumentasi SageMaker SDKPython.

    Catatan untuk pelatihan terdistribusi di Trn1

    Sebuah instance 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 Neuron.AWS

    Untuk melatih instance yang didukung Trainium, Anda hanya perlu menentukan kode instance Trn1ml.trn1.*, dalam string ke argumen kelas estimator. instance_type SageMaker PyTorch Untuk menemukan jenis instance Trn1 yang tersedia, lihat Arsitektur AWS Trn1 dalam dokumentasi Neuron.AWS

    catatan

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

    Saat Anda meluncurkan pekerjaan pelatihan pada instance Trn1 menggunakan SageMaker PythonSDK, SageMaker secara otomatis mengambil dan menjalankan wadah yang tepat dari Neuron Containers yang disediakan oleh Deep Learning Containers. AWS Neuron Container dikemas dengan pengaturan lingkungan pelatihan dan dependensi untuk memudahkan adaptasi pekerjaan pelatihan Anda ke SageMaker platform Pelatihan dan instans Amazon Trn1. EC2

    catatan

    Untuk menjalankan pekerjaan PyTorch pelatihan Anda pada instance Trn1 dengan SageMaker, Anda harus memodifikasi skrip pelatihan Anda untuk menginisialisasi grup proses dengan xla backend dan menggunakan/. PyTorch XLA Untuk mendukung proses XLA adopsi, AWS Neuron SDK menyediakan PyTorch Neuron yang digunakan XLA untuk melakukan 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 lebih lanjut, lihat Pelatihan Terdistribusi dengan PyTorch Neuron pada instance Trn1 dan argumen SageMaker PyTorch Estimator distribution dalam dokumentasi Python. SageMaker SDK

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

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

    Tip

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