Gunakan estimator PyTorch kerangka kerja di Python SageMaker SDK - Amazon SageMaker

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

Gunakan estimator PyTorch kerangka kerja di Python SageMaker SDK

Anda dapat meluncurkan pelatihan terdistribusi dengan menambahkan distribution argumen ke estimator SageMaker kerangka kerja, PyTorchatau TensorFlow. Untuk detail selengkapnya, pilih salah satu kerangka kerja yang didukung oleh pustaka paralelisme data SageMaker terdistribusi (SMDDP) dari pilihan berikut.

PyTorch

Opsi peluncur berikut tersedia untuk meluncurkan pelatihan PyTorch terdistribusi.

  • pytorchddp— Opsi ini menjalankan mpirun dan mengatur variabel lingkungan yang diperlukan untuk menjalankan pelatihan PyTorch terdistribusi SageMaker. Untuk menggunakan opsi ini, teruskan kamus berikut ke distribution parameter.

    { "pytorchddp": { "enabled": True } }
  • torch_distributed— Opsi ini menjalankan torchrun dan mengatur variabel lingkungan yang diperlukan untuk menjalankan pelatihan PyTorch terdistribusi SageMaker. Untuk menggunakan opsi ini, teruskan kamus berikut ke distribution parameter.

    { "torch_distributed": { "enabled": True } }
  • smdistributed— Opsi ini juga berjalan mpirun tetapi dengan smddprun itu mengatur variabel lingkungan yang diperlukan untuk menjalankan pelatihan PyTorch terdistribusi SageMaker.

    { "smdistributed": { "dataparallel": { "enabled": True } } }

Jika Anda memilih untuk mengganti NCCL AllGather ke SMDDPAllGather, Anda dapat menggunakan ketiga opsi. Pilih satu opsi yang sesuai dengan kasus penggunaan Anda.

Jika Anda memilih untuk mengganti NCCL AllReduce dengan SMDDPAllReduce, Anda harus memilih salah satu opsi mpirun berbasis: smdistributed ataupytorchddp. Anda juga dapat menambahkan MPI opsi tambahan sebagai berikut.

{ "pytorchddp": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } }
{ "smdistributed": { "dataparallel": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } } }

Contoh kode berikut menunjukkan struktur dasar PyTorch estimator dengan opsi pelatihan terdistribusi.

from sagemaker.pytorch import PyTorch pt_estimator = PyTorch( base_job_name="training_job_name_prefix", source_dir="subdirectory-to-your-code", entry_point="adapted-training-script.py", role="SageMakerRole", py_version="py310", framework_version="2.0.1",     # For running a multi-node distributed training job, specify a value greater than 1     # Example: 2,3,4,..8 instance_count=2,     # Instance types supported by the SageMaker data parallel library: # ml.p4d.24xlarge, ml.p4de.24xlarge 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 ) pt_estimator.fit("s3://bucket/path/to/training/data")
catatan

PyTorch Lightning dan perpustakaan utilitasnya seperti Lightning Bolts tidak diinstal sebelumnya di file. SageMaker PyTorch DLCs Buat requirements.txt file berikut dan simpan di direktori sumber tempat Anda menyimpan skrip pelatihan.

# requirements.txt pytorch-lightning lightning-bolts

Misalnya, direktori terstruktur pohon akan terlihat seperti berikut.

├── pytorch_training_launcher_jupyter_notebook.ipynb └── sub-folder-for-your-code ├── adapted-training-script.py └── requirements.txt

Untuk informasi selengkapnya tentang menentukan direktori sumber untuk menempatkan requirements.txt file bersama dengan skrip pelatihan dan pengiriman pekerjaan, lihat Menggunakan pustaka pihak ketiga dalam dokumentasi Amazon Python SageMaker . SDK

Pertimbangan untuk mengaktifkan operasi SMDDP kolektif dan menggunakan opsi peluncur pelatihan terdistribusi yang tepat
  • SMDDPAllReducedan SMDDP AllGather tidak saling kompatibel saat ini.

  • SMDDPAllReducediaktifkan secara default saat menggunakan smdistributed ataupytorchddp, yang merupakan peluncur mpirun berbasis, dan NCCL AllGather digunakan.

  • SMDDPAllGatherdiaktifkan secara default saat menggunakan torch_distributed peluncur, dan AllReduce kembali keNCCL.

  • SMDDPAllGatherjuga dapat diaktifkan saat menggunakan peluncur mpirun berbasis dengan variabel lingkungan tambahan yang ditetapkan sebagai berikut.

    export SMDATAPARALLEL_OPTIMIZE_SDP=true
TensorFlow
penting

SMDDPPustaka menghentikan dukungan untuk TensorFlow dan tidak lagi tersedia di TensorFlow lebih dari DLCs v2.11.0. Untuk menemukan sebelumnya TensorFlow DLCs dengan SMDDP perpustakaan yang diinstal, lihatTensorFlow (usang).

from sagemaker.tensorflow import TensorFlow tf_estimator = TensorFlow( base_job_name = "training_job_name_prefix", entry_point="adapted-training-script.py", role="SageMakerRole", framework_version="2.11.0", py_version="py38",     # For running a multi-node distributed training job, specify a value greater than 1 # Example: 2,3,4,..8 instance_count=2,     # Instance types supported by the SageMaker data parallel library: # ml.p4d.24xlargeml.p3dn.24xlarge, and ml.p3.16xlarge instance_type="ml.p3.16xlarge",     # Training using the SageMaker data parallel distributed training strategy distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } ) tf_estimator.fit("s3://bucket/path/to/training/data")