

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

# Gunakan perpustakaan SMDDP dalam skrip pelatihan PyTorch Lightning Anda
<a name="data-parallel-modify-sdp-pt-lightning"></a>

Jika Anda ingin membawa skrip pelatihan [PyTorchLightning](https://pytorch-lightning.readthedocs.io/en/latest/starter/introduction.html) dan menjalankan pekerjaan pelatihan paralel data terdistribusi di SageMaker AI, 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 lingkungan SageMaker AI yang telah ditetapkan oleh toolkit SageMaker pelatihan, dan mengaktifkan perpustakaan SMDDP dengan menyetel backend grup proses ke. `"smddp"` Untuk mempelajari lebih lanjut, ikuti instruksi berikut yang memecah langkah-langkah dengan contoh kode.

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

## PyTorch Petir == v2.1.0 dan == 2.0.1 PyTorch
<a name="smddp-pt-201-lightning-210"></a>

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

   ```
   import lightning as pl
   import smdistributed.dataparallel.torch.torch_smddp
   ```

1. Instantiate. [LightningEnvironment](https://pytorch-lightning.readthedocs.io/en/stable/api/pytorch_lightning.plugins.environments.LightningEnvironment.html)

   ```
   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"])
   ```

1. **Untuk PyTorch DDP** — Buat objek [DDPStrategy](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.strategies.DDPStrategy.html)kelas dengan `"smddp"` for `process_group_backend` dan `"gpu"` for`accelerator`, dan berikan itu ke kelas [Trainer](https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.html).

   ```
   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 [FSDPStrategy](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.strategies.FSDPStrategy.html)kelas (dengan [kebijakan pembungkus](https://pytorch.org/docs/stable/fsdp.html) pilihan) dengan `"smddp"` for `process_group_backend` dan `"gpu"` for`accelerator`, dan teruskan ke kelas Trainer.](https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.html)

   ```
   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 ke[Meluncurkan pekerjaan pelatihan terdistribusi dengan SMDDP menggunakan Python SageMaker SDK](data-parallel-use-api.md). 

**catatan**  
Saat Anda membuat PyTorch estimator SageMaker AI dan mengajukan permintaan pekerjaan pelatihan[Meluncurkan pekerjaan pelatihan terdistribusi dengan SMDDP menggunakan Python SageMaker SDK](data-parallel-use-api.md), Anda perlu menyediakan `requirements.txt` untuk menginstal `pytorch-lightning` dan `lightning-bolts` dalam wadah PyTorch pelatihan SageMaker AI.  

```
# 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](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#id12) dalam dokumentasi Amazon *AI SageMaker Python* SDK.