Usa la libreria SMDDP nello script di addestramento Lightning PyTorch - 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 nello script di addestramento Lightning PyTorch

Se desideri utilizzare lo script di formazione PyTorchLightning 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.

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

    import lightning as pl import smdistributed.dataparallel.torch.torch_smddp
  2. LightningEnvironmentIstanzia 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 DDPStrategyclasse con "smddp" for process_group_backend e "gpu" foraccelerator, e passalo alla classe 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 )

    Per PyTorch FSDP: crea un oggetto della FSDPStrategyclasse (con la politica di wrapping preferita) con "smddp" for process_group_backend e "gpu" for accelerator e passalo alla classe 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 )

Dopo aver completato l'adattamento dello script di addestramento, procedi con Avvio di lavori di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker .

Nota

Quando costruisci uno strumento di PyTorch valutazione dell' SageMaker intelligenza artificiale e invii una richiesta di lavoro di formazione inAvvio di lavori di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker , 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 di Amazon AI SageMaker Python SDK.