Gunakan SMDDP perpustakaan dalam skrip pelatihan PyTorch Lightning Anda - Amazon SageMaker

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

Gunakan SMDDP perpustakaan dalam skrip pelatihan PyTorch Lightning Anda

Jika Anda ingin membawa skrip pelatihan PyTorchLightning dan menjalankan pekerjaan pelatihan paralel data terdistribusi SageMaker, Anda dapat menjalankan pekerjaan pelatihan dengan sedikit perubahan dalam skrip pelatihan Anda. Perubahan yang diperlukan meliputi: mengimpor PyTorch modul smdistributed.dataparallel perpustakaan, mengatur variabel lingkungan untuk PyTorch Lightning untuk menerima variabel SageMaker lingkungan yang telah ditetapkan oleh toolkit SageMaker pelatihan, dan mengaktifkan SMDDP perpustakaan dengan menyetel backend grup proses. "smddp" Untuk mempelajari lebih lanjut, ikuti instruksi berikut yang memecah langkah-langkah dengan contoh kode.

catatan

Dukungan PyTorch Lightning tersedia di perpustakaan paralel SageMaker data v1.5.0 dan yang lebih baru.

  1. Impor pytorch_lightning perpustakaan dan smdistributed.dataparallel.torch modul.

    import lightning as pl import smdistributed.dataparallel.torch.torch_smddp
  2. Instantiate. LightningEnvironment

    from lightning.fabric.plugins.environments.lightning import LightningEnvironment env = LightningEnvironment() env.world_size = lambda: int(os.environ["WORLD_SIZE"]) env.global_rank = lambda: int(os.environ["RANK"])
  3. Untuk PyTorch DDP — Buat objek DDPStrategykelas dengan "smddp" for process_group_backend dan "gpu" foraccelerator, dan berikan itu ke kelas Trainer.

    import lightning as pl from lightning.pytorch.strategies import DDPStrategy ddp = DDPStrategy( cluster_environment=env, process_group_backend="smddp", accelerator="gpu" ) trainer = pl.Trainer( max_epochs=200, strategy=ddp, devices=num_gpus, num_nodes=num_nodes )

    Untuk PyTorch FSDP — Buat objek FSDPStrategykelas (dengan kebijakan pembungkus pilihan) dengan "smddp" for process_group_backend dan "gpu" foraccelerator, dan teruskan ke kelas Trainer.

    import lightning as pl from lightning.pytorch.strategies import FSDPStrategy from functools import partial from torch.distributed.fsdp.wrap import size_based_auto_wrap_policy policy = partial( size_based_auto_wrap_policy, min_num_params=10000 ) fsdp = FSDPStrategy( auto_wrap_policy=policy, process_group_backend="smddp", cluster_environment=env ) trainer = pl.Trainer( max_epochs=200, strategy=fsdp, devices=num_gpus, num_nodes=num_nodes )

Setelah Anda selesai mengadaptasi skrip pelatihan Anda, lanjutkan keMeluncurkan pekerjaan pelatihan terdistribusi dengan SMDDP menggunakan SageMaker Python SDK.

catatan

Ketika Anda membangun SageMaker PyTorch estimator dan mengajukan permintaan pekerjaan pelatihan diMeluncurkan pekerjaan pelatihan terdistribusi dengan SMDDP menggunakan SageMaker Python SDK, Anda perlu menyediakan requirements.txt untuk menginstal pytorch-lightning dan lightning-bolts dalam wadah SageMaker PyTorch pelatihan.

# requirements.txt pytorch-lightning lightning-bolts

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