

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Usa la libreria SMDDP nello script di addestramento Lightning PyTorch
<a name="data-parallel-modify-sdp-pt-lightning"></a>

Se desideri utilizzare lo script di formazione [PyTorchLightning](https://pytorch-lightning.readthedocs.io/en/latest/starter/introduction.html) ed eseguire un processo di formazione parallela con dati distribuiti in SageMaker AI, puoi eseguire il processo di formazione con modifiche minime allo script di formazione. Le modifiche necessarie includono quanto segue: importazione dei PyTorch moduli della `smdistributed.dataparallel` libreria, impostazione delle variabili di ambiente per PyTorch Lightning in modo che accettino le variabili di ambiente SageMaker AI preimpostate dal toolkit di SageMaker formazione e attivazione della libreria SMDDP impostando il backend del gruppo di processi su. `"smddp"` Per ulteriori informazioni, segui le seguenti istruzioni che descrivono le fasi con esempi di codice.

**Nota**  
Il supporto PyTorch Lightning è disponibile nella libreria parallela di dati SageMaker AI v1.5.0 e versioni successive.

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

1. Importa la libreria `pytorch_lightning` e i moduli `smdistributed.dataparallel.torch`.

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

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

   ```
   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. **Per PyTorch DDP**[: crea un oggetto della [DDPStrategy](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.strategies.DDPStrategy.html)classe con `"smddp"` for `process_group_backend` e `"gpu"` for`accelerator`, e passalo alla classe 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
   )
   ```

   **Per PyTorch FSDP**[: crea un oggetto della [FSDPStrategy](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.strategies.FSDPStrategy.html)classe (con la [politica di wrapping](https://pytorch.org/docs/stable/fsdp.html) preferita) con `"smddp"` for `process_group_backend` e `"gpu"` for `accelerator` e passalo alla classe 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
   )
   ```

Dopo aver completato l’adattamento dello script di addestramento, procedi con [Avvio di lavori di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker](data-parallel-use-api.md). 

**Nota**  
Quando costruisci uno strumento di PyTorch valutazione dell' SageMaker intelligenza artificiale e invii una richiesta di lavoro di formazione in[Avvio di lavori di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker](data-parallel-use-api.md), devi provvedere all'installazione `pytorch-lightning` e `lightning-bolts` all'inserimento nel contenitore di formazione `requirements.txt` AI. SageMaker PyTorch   

```
# requirements.txt
pytorch-lightning
lightning-bolts
```
Per ulteriori informazioni su come specificare la directory di origine in cui inserire il `requirements.txt` file insieme allo script di formazione e all'invio di un lavoro, consulta la sezione [Utilizzo di librerie di terze parti nella documentazione](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#id12) di *Amazon AI SageMaker Python SDK*.