View a markdown version of this page

Usa la libreria SMDDP nel tuo PyTorch script di formazione Lightning - Amazon SageMaker AI

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 nel tuo PyTorch script di formazione Lightning

Se desideri utilizzare il tuo script di formazione PyTorch Lightning ed eseguire un job di training parallelo con dati distribuiti in SageMaker AI, puoi eseguire il processo di formazione apportando modifiche minime allo script di training. Le modifiche necessarie includono quanto segue: importazione dei PyTorch moduli della smdistributed.dataparallel libreria, impostazione delle variabili di ambiente in modo che PyTorch Lightning accetti 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 successive.

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

    import lightning as pl import smdistributed.dataparallel.torch.torch_smddp
  2. LightningEnvironmentIstanziare 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"])
  3. Per PyTorch DDP: crea un oggetto della classe DDPStrategy 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: create un oggetto della classe FSDPStrategy (con policy di wrapping a scelta) con "smddp" for process_group_backend e for e "gpu" passatelo alla classe Trainer. accelerator 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 processi di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker.

Nota

Quando costruisci un' SageMaker intelligenza artificiale PyTorch ModelTrainer e invii una richiesta di lavoro di formazione inAvvio di processi di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker, devi provvedere requirements.txt all'installazione e all'interno del contenitore di formazione per l'intelligenza artificiale. pytorch-lightning lightning-bolts 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 del lavoro, consulta Utilizzo di librerie di terze parti nella documentazione di Amazon SageMaker AI Python SDK.